<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

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

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

		<guid isPermaLink="false">http://thiago.oxente.org/?p=119</guid>
		<description><![CDATA[Eu sempre tive vontade de ter uma rede wireless em casa, mas nunca tive um motivo para ter, como por exemplo eu não tinha aparelhos wireless e ia ser somente para enfeite hehehehe.
Quando eu comprei um nintendo DS senti a necessiade de ter uma, para poder jogar na WFC, mas não era algo de urgência [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="WBR3600" src="http://ww2.levelonebrasil.com.br/images/stories/img_pictures/wbr-3600low.jpg" alt="" width="200" height="157" />Eu sempre tive vontade de ter uma rede wireless em casa, mas nunca tive um motivo para ter, como por exemplo eu não tinha aparelhos wireless e ia ser somente para enfeite hehehehe.<br />
Quando eu comprei um nintendo DS senti a necessiade de ter uma, para poder jogar na WFC, mas não era algo de urgência e eu podia uasr a rede wireless da casa do meu cunhado, que tinha um Modem/Router/AP da D-Link. Quando meu cunhado foi para Portugal eu fiquei com o Dlink pois ele não levou, e acabei me acostumando com a rede sem fio e poder usar o nintendo pela casa toda hehehe. Quando ele voltou eu tive que devolver o router e voltar a usar meu SpeedStream toscão.</p>
<p>Esses dias meu speedstream começou a travar, então vi que era a hora de trocar de modem, então pensei em investir em um conjunto completo estilo o D-link do meu cunhado, com Modem ADSL / Router / Switch / Wireless.<br />
Pesquisando em vários sites a procura de um produto completo e que não custasse um pedaço do meu fígado acabei encontrando um router da LevelOne o WBR-3600.</p>
<p>Tentei achar um D-Link, mas o unico que achei era importado de uma lojinha no RJ, para evitar dor de cabeça com garantia, pois a D-link Brasil não da garantia para produtos não homologados no Brasil, eu deixei pra la a idéia de comprar um D-link e comprei o LevelOne.</p>
<p><strong>O WBR-3600 Possui:</strong><br />
* ADSL2+ de até 24Mbps<br />
*  802.11g e 802.11b   (até 54Mbps)<br />
* <span class="Apple-style-span" style="line-height: normal; font-family: verdana;">4-portas 10/100Mbps Ethernet com auto-negociação e suporte MDI/MDI-X<br />
* </span><span class="Apple-style-span" style="line-height: normal; font-family: verdana;">Suporte a encriptação WEP, WPA, WPA-PSK e WPA2-PSK e WPA/2-802.1x controle de acesso.<br />
* O básico de um router, DHCP, DNS, Firewall<br />
* QoS (isso eu gostei muito, já que compartilho a internet, agora da pra controlar o tráfego)</span></p>
<p><span class="Apple-style-span" style="line-height: normal; font-family: verdana;">Para configurar a Velox foi facil, peguei as configurações do modem antigo apliquei no novo e pronto já estava na internet, tem tambem um bom manual sobre ele no site da <a href="http://www.abusar.org" target="_blank">Abusar.org</a> que pode ajudar outras pessoas. Eu ainda não tive muito tempo para testar ele porem, testei o wireless com o nintendo DS e funcionou normal, testei o Mario Kart DS e o Gta &#8211; Chinatown Wars e funcionaram normalmente pela WFC.</p>
<p>Recomendo ele para quem tiver ADSL e estiver afim de uma solução completa.<br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2009/03/20/finalmente-wireless-em-casa/feed</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Migrando o servidor de E-mail</title>
		<link>http://thiago.oxente.org/2009/02/17/migrando-o-servidor-de-e-mail</link>
		<comments>http://thiago.oxente.org/2009/02/17/migrando-o-servidor-de-e-mail#comments</comments>
		<pubDate>Tue, 17 Feb 2009 15:29:13 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[imapsync]]></category>
		<category><![CDATA[mta]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[vpopmail]]></category>
		<category><![CDATA[webmail]]></category>

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

		<guid isPermaLink="false">http://thiago.oxente.org/?p=61</guid>
		<description><![CDATA[A VMWare anunciou que distribuirá seu software de virtualização ESXi gratuitamente a partir da próxima segunda-feira, dia 28 de julho.
A ação foi anunciada por Paul Maritz, novo CEO da companhia, e é uma resposta à iniciativa da Microsoft em lançar sua própria máquina virtual, a Hyper-V, que pode ser obtida por usuários do sistema Windows [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" class="texto_corrido">A VMWare anunciou que distribuirá seu software de virtualização ESXi gratuitamente a partir da próxima segunda-feira, dia 28 de julho.</p>
<p>A ação foi anunciada por Paul Maritz, novo CEO da companhia, e é uma resposta à iniciativa da Microsoft em lançar sua própria máquina virtual, a Hyper-V, que pode ser obtida por usuários do sistema Windows Server 2008 por US$ 28.</p>
<p>Através de máquinas virtuais, usuários podem instalar vários sistemas operacionais em um mesmo PC, criando um ambiente seguro para testes. O ESXi, que já foi um dos carros chefe da companhia e era vendido por US$ 495, ainda pode ser incluído em servidores vendidos por fabricantes como Dell, HP e IBM, conforme noticiado no site RedmondMag.</p>
<p>Com o lançamento gratuito a companhia pretende levar novos usuários para suas outras ferramentas, essas pagas. Curiosamente, lembrou o site InformationWeek, Maritz esteve no cargo de vice-presidência sênior da Microsoft durante 14 anos, ajudando no marketing de produtos importantes da companhia como o Windows 95 e Windows NT.</p>
<p>Interessados em conhecer o software poderão fazê-lo a partir do endereço vmware.com/products/esxi, lembrando que a gratuidade só passará a valer a partir da próxima semana.<br />
Fonte: <a href="http://www.geek.com.br/modules/noticias/ver.php?id=37569&amp;sec=6" target="_blank">GeeK</a>.</div>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2008/07/29/vmware-oferecera-esxi-gratuitamente/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Call of Duty 4: Modern Warfare Linux Dedicated Server</title>
		<link>http://thiago.oxente.org/2008/07/04/call-of-duty-4-modern-warfare-linux-dedicated-server</link>
		<comments>http://thiago.oxente.org/2008/07/04/call-of-duty-4-modern-warfare-linux-dedicated-server#comments</comments>
		<pubDate>Fri, 04 Jul 2008 14:19:29 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Call of Duty 4]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[Slackware]]></category>
		<category><![CDATA[cod4]]></category>
		<category><![CDATA[dedicated]]></category>
		<category><![CDATA[icculus]]></category>
		<category><![CDATA[punkbuster]]></category>
		<category><![CDATA[server]]></category>

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

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

		<guid isPermaLink="false">http://thiago.oxente.org/2007/04/20/google-talk-vs-live-messenger/</guid>
		<description><![CDATA[ x  Eu sempre fui um grande usuário do ICQ, mesmo com os avanços de mercado e de tecnologia eu teimei e não larguei o ICQ, mas com o tempo me encontrei sozinho no uso daquela ferramenta, e todos meus contatos estavam migrando para o MSN. Tive que por livre e espontânea pressão migrar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.google.com.br/talk/images/talk_logo.gif" /> <strong>x </strong><img src="http://www.rubenologia.net/imatges/posts/messenger.gif" /> Eu sempre fui um grande usuário do ICQ, mesmo com os avanços de mercado e de tecnologia eu teimei e não larguei o ICQ, mas com o tempo me encontrei sozinho no uso daquela ferramenta, e todos meus contatos estavam migrando para o MSN. Tive que por livre e espontânea pressão migrar também, pois usar o ICQ com 100% dos contatos offline não tinha mais sentido.</p>
<p>O MSN não era uma ferramenta ruim, era fácil de usar, tinha bons recursos e tinha motivos para superar o ICQ e se tornar o líder no mercado. Com o crescimento do Google, eu já esperava que o mesmo lançasse uma ferramenta de mensagens instantâneas para competir no mercado. Com o lançamento do Gtalk, eu não dei muito valor, mas com o tempo fui aderindo a os recursos do google, como o próprio Google (busca), Earth, Maps, Adsense, Pagina Personalizada, Analytics e o famoso Gmail.</p>
<p>O Gmail foi o que me deixou mais interessado, não só pela quantidade de armazenamento mas sim pelos seus recursos, e sua facilidade de uso. Ele é um sistema leve e organizado, a forma que ele organiza as mensagens é realmente fantástico. Eu hoje digo ou você tem E-mail ou você tem G-mail, pois é algo diferente. O Gmail vem com um chat integrado, no qual você pode conversar com seus contatos em tempo real, este chat na verdade é o Gtalk, com isso já tive um certo interesse pela ferramenta, mas ainda estava com o MSN. Até que foi lançado o sistema Live da M$, tudo agora era Live, meu hotmail virou Live, meu msn virou Live, e meu PC do trabalho não aguentou. Com apenas 256Mb de RAM, o MSN demorava uma eternidade para abrir, e abria de cara um programa com zilhões de banners e propagandas, as pessoas com nicks estranhos com cores e fontes e caracteres que nem existem no meu PC. Sem falar dos smiles e outras coisas. Para mim este foi a morte do MSN, engordou e ficou feio, tive que procurar uma solução e então comecei a campanha do Gtalk. Baixei o dito cujo, instalei e gostei. O programa é leve, integrado, tem recurso de voz e voice mail, envia arquivos tudo que um sistema de mensagens instantâneas deveria ter.</p>
<p>Com isso deixei de usar o MSN, e meus contatos reclamavam que eu tava sumido e etc mas eu deixei um recado para todos, se quiser falar comigo me ADD no gtalk (thiago AT oxente DOT org), e muitos foram adicionando ou usando o Gmail para falar comgio, e com isso fui convertendo varios para o Gtalk. Hoje eu não preciso mais entrar no MSN, faz tempo que não entro, e meu Gtalk que antes tinha 1 ou 2 gatos pingados online vive cheio.</p>
<p>Agora umas críticas ao Gtalk no qual considero pecado, o Gtalk não possui recurso a conferencia com vários contatos, nem possui recurso de organizar os contatos em grupo. Espero que isso um dia seja implementado, e que a Google não encha o Talk de recursos desnecessários nem de propagandas (as de texto do Adsense até que são aceitáveis) para não se tornar outro MSN.</p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2007/04/20/google-talk-vs-live-messenger/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Livro: Programação de Rede Unix</title>
		<link>http://thiago.oxente.org/2006/08/29/livro-programacao-de-rede-unix</link>
		<comments>http://thiago.oxente.org/2006/08/29/livro-programacao-de-rede-unix#comments</comments>
		<pubDate>Tue, 29 Aug 2006 19:54:37 +0000</pubDate>
		<dc:creator>Thiago Melo</dc:creator>
				<category><![CDATA[Assuntos Gerais]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Redes]]></category>

		<guid isPermaLink="false">http://thiago.killermonkeys.net/2006/08/29/livro-programacao-de-rede-unix/</guid>
		<description><![CDATA[Recentemente adquiri um livro para me ajudar nos estudo no uso de sockets no unix com C++.
Eu estava meio travado na tentativa de gerenciar as conexões dos clientes no servidor e terminar um simples chat assim como fiz no Delphi.
O livro parece ser excelente, e pelos comentários que vi pela internet é considerado a Biblia [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente adquiri um livro para me ajudar nos estudo no uso de sockets no unix com C++.<br />
Eu estava meio travado na tentativa de gerenciar as conexões dos clientes no servidor e terminar um simples chat assim como fiz no Delphi.</p>
<p>O livro parece ser excelente, e pelos comentários que vi pela internet é considerado a Biblia no desenvolvimento de uma API para soquetes de rede para UNIX.</p>
<p>Informaços do Livro:</p>
<p><span class="txtPretoBoldLivros">Título:</span>         	<span class="txtPretoLivros">Livro &#8211; Programação de Rede UNIX   </span>                                          	<span class="txtPretoBoldLivros"><br />
Título Original: </span><em>UNIX Network Programming</em><span class="txtPretoBoldLivros"><br />
</span>  <span class="txtPretoLivros"></span><span class="txtPretoBoldLivros">Subtítulo:</span>          	<span class="txtPretoLivros">API para Soquetes de Rede  </span>                                         	<span class="txtPretoBoldLivros"><br />
Autor:</span>         	<span class="txtPretoLivros"></span><span class="link-pequenoB">W. Richard Stevens</span>, <span class="link-pequenoB">Bill Fenner</span>, <span class="link-pequenoB">Andrew M. Rudoff</span>                                           	<span class="txtPretoBoldLivros"><br />
</span><span class="txtPretoLivros"> </span><span class="txtPretoBoldLivros">  Editora:</span>             <span class="txtPretoLivros">Artmed </span>                                          	<span class="txtPretoBoldLivros"></span><span class="txtPretoBoldLivros"><br />
ISBN:</span>              <span class="txtPretoLivros">8536304707 </span>                                         	<span class="txtPretoBoldLivros">Idioma:</span>         	<span class="txtPretoLivros">Português<br />
</span><span class="txtPretoBoldLivros">Tipo de Capa: </span>             <span class="txtPretoLivros">BROCHURA </span>                                          	<span class="txtPretoBoldLivros"><br />
Edição:</span>         	<span class="txtPretoLivros">1<br />
</span><span class="txtPretoBoldLivros">Número de Páginas: </span>         	<span class="txtPretoLivros">904 </span>                                <img width="1" height="10" src="http://images.americanas.com.br/Applications/BookStore/spacer.gif" /></p>
<p>Resenha:</p>
<p><em>  Para construir as aplicações e os serviços em rede altamente distribuídos de hoje, é preciso um profundo domínio sobre soquetes e outras APIs de rede fundamentais. Este livro oferece orientação abrangente, do começo ao fim, para construir sistemas de rede robustos e de alto desempenho em qualquer ambiente.<br />
O guia clássico para APIs de redes UNIX&#8230; agora completamente atualizado!</em><img src="http://images.americanas.com.br/produtos/item/184/6/184679g.gif" /></p>
<p>capa original:<br />
<img src="http://www.kohala.com/start/gifs/unpv12e.gif" /></p>
]]></content:encoded>
			<wfw:commentRss>http://thiago.oxente.org/2006/08/29/livro-programacao-de-rede-unix/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
