next up previous
Next: Cronograma para o segundo Up: Trabalho de Formatura Estágio Previous: Tarefas impostas a mim

Relatório das atividades realizadas

1a. semana
Aprendi a instalar e configurar um servidor de DNS (Domain Name Server, usado para relacionar nomes da internet, como www.ime.usp.br, com o seu respectivo IP (Internet Protocol), que seria 143.107.45.46, para o exemplo dado). Instalei um servidor de IRC (Internet Relay Chat, usado para ``conversar'' com outras pessoas através da internet, numa interface em modo texto) e comecei a estudar para fazer um chat na web com isso.

2a. semana
Aprendi a instalar e configurar um servidor WWW, o Apache. Configurei o servidor usando virtual hosts, que possibilita a uma única máquina servir vários domínios.

3a. semana
Criei um script em perl para automatizar o processo de adição de novos domínios no mesmo servidor. Aprendi a usar e configurar o webalizer, um aplicativo que analisa o log do Apache para um determinado domínio e mostra informações e estatísticas de acesso ao mesmo. Aprendi a instalar uma rede fisicamente (montagem de cabos etc). Estou começando a instalar o Qmail, usando domínios virtuais.

4a. semana
Estudei e instalei servidores de e-mail POP e IMAP. Estou fazendo a manutenção do servidor de DNS e WWW (Apache) da empresa. Criei scripts em Perl para me ajudar nessa tarefa.

5a. semana
Estou começando o projeto do webcall center. Um webcall center é como se fosse um telemarketing, só que pela web. Entrei em contato com os criadores do APIRC, uma applet Java que na verdade é um cliente IRC, que funciona em um browser como o Netscape, para começar a desenvolver o webcall center a partir de algo já existente, sem ter que começar do zero. O APIRC é uma applet que pode ser rodada em um browser e funciona como um cliente IRC. Estou tentando entrar em contato com os criadores dessa applet, com a finalidade de conseguir o código fonte.

6a. semana
Os criadores do APIRC não entraram em contato comigo, e passei a dar ateção especial ao phpChat, outro chat que funciona em cima de um servidor IRC, e é feito em PHP. Havia algum tempo tentei instalar o phpChat no servidor da empresa mas não funcionou. Agora descobri que existe um comando ``mágico'' no MySQL que o fez funcinar (esse comando é chamado de flush privileges). O criador do phpChat já entrou em contato com a empresa, pois está afim de vender o seu projeto. Se tudo correr bem, essa poderá ser uma boa alternativa.

Finalmente terminei de instalar o servidor de e-mail IMAP com contas virtuais. Agora temos um gateway POP2 e POP3 para o IMAP, ou seja, o acesso POP é ``traduzido'' para o IMAP. Dessa forma, funcionam acessos POP2, POP3, IMAP, e também o webmail, que foi baseado no IMP, para a leitura de e-mail. Os scripts precisam ser testados antes de abrir as contas de e-mail virtuais. Até agora, os únicos problemas de segurança relacionados aos scripts que criei estão sob controle. Eles se relacionavam ao fato do usuário poder acessar a máquina por telnet ou ssh. Outro problema é que existe um script que tive que criar para que o e-mail pudesse ser lido pelo usuário, sem que esse usuário lesse os e-mails dos outros usuários. Esse script acabava com essa falha de segurança, mas criava uma outra, que já foi contornada. Esse outra falha se deve ao fato de esse script ter que ser executado em modo super-usuário. Mas o uso do aplicativo sudo já resolveu o problema.

7a. semana
Criei um script em Perl que traduz a saída em formato texto do PostgreSQL para que os dados possam ser utilizados pelo script de forma fácil e rápida, tupla por tupla. O script é genérico e poderá ser usado para qualquer outra saída dos resultados das tabelas em formato texto do banco de dados PostgreSQL. É possível adaptar o script para algum outro banco de dados, desde que este também mostre a saída em formato texto.

Comecei a procurar por um servidor de fórum. Dentre todos os que encontrei e teste, o melhor (e o único que funcionou direito) foi o HyperNews. Ele é um servidor que pode gerenciar vários fóruns, de forma independente e transparente, algo que os outros que encontrei não fazem.

Acabei por instalar o servidor de fóruns HyperNews no site da empresa. Esse servidor permite mostrar as mensagens usando threads e mandar um e-mail ao autor de alguma mensagem caso ela tenha sido respondida. Ele é todo feito em Perl, que é executado no servidor através do pedido de um browser, usando o esquema de CGI. Não encontrei muitos problemas durante a instalação. Na verdade só encontrei um, que se diz respeito à segurança, onde o invasor poderia ver a senha de todos os membros dos fóruns, mas isso já foi resolvido.

Junto com esse HyperNews, foi instalado um robô (programa que, dada uma página inicial, monta um banco de dados através dos links contidos nessa página, seguindo-os recursivamente). O programa se chama HTDIG, e ele funciona no estilo do AltaVista. Por enquanto foi configurado para somente montar um banco de dados das páginas dos fóruns do HyperNews, mas poderá ser adaptado para fazer uma busca no site inteiro.

Comecei a procurar um programa que execute código PHP através da linha de comando, mas não encontrei nada pronto. Como só usamos o módulo do Apache para executar códigos em PHP, precisei pegar o fonte e compilá-lo de forma a se tornar um executável independente. Mas precisava de suporte a funções do PostgreSQL (gerenciador de banco de dados relacional). Para isso peguei o fonte do PostgreSQL e também compilei, usando depois alguns parâmetros de configuração para que o executável do PHP pudesse ter suporte ao banco de dados citado.

8a. semana
Há a intenção de traduzir o HyperNews do inglês para o português, para ser usado num projeto da empresa. Provavelmente isso levará muito tempo, e será passado para alguém que tenha menos tarefas a serem cumpridas.

A empresa mudou de sede. Agora estamos tendo que reinstalar a rede, a partir do zero. Esta semana não foi muito produtiva, pois tivemos vários problemas relacionados com a rede, tanto nos computadores quanto na infra-estrutura (cabeamento, hubs, etc.), mas aparentemente está tudo funcionando.

9a. semana
A empresa comprou um switch e um roteador, e a partir daí começamos a instalar a rede definitiva. Eu fui o encarregado da instalação da rede interna, afim de que ela ficasse pronta para a instalação do acesso à internet. Tive que configurar um gateway usando firewall. Um gateway é um computador que tem a tarefa de prover acesso para fora da rede local (LAN), e um firewall tem o objetivo de não deixar nenhum computador que estiver fora da rede local acessar as máquinas que estiverem dentro. A instalação do switch (que pode ser definido como um ``hub esperto'') foi fácil. Tive um pouco de trabalho em instalar o gateway, pois decidi usar a distribuição Linux-Debian, que no momento é muito antiga. Ocorreram vários problemas em relação ao kernel do linux, pois o esquema de forward (que é a parte principal do firewall, pois é ele que possibilita as máquinas da LAN acessarem a internet) não queria funcionar com versões antigas do kernel. Mas depois de muito tempo, está tudo funcionando. Falta apenas fazer o roteador (equipamento que liga a rede da Embratel com a nossa rede) funcionar e se comunicar com a central, possibilitando assim o acesso à internet.

10a. semana
Começamos a mudar as instalações linux da rede. Sugeri usarmos a distribuição Debian, que além de conhecer bem, sei que ela é bem confiável e que permite uma manutenção mais simples e fácil. Assim que o roteador começou a funcionar, instalei o Linux-Debian em nosso gateway, afim de termos um acesso a internet compartilhado e seguro (pois o firewall está no gateway). Depois que este estava configurado e funcionando, comecei a mudar a instalação das outras máquinas. O problema foi configurá-las da forma como estavam antes, mas manter o formato da instalação Debian. Fora alguns problemas, como o de que eu teria que fazer isso durante o final de semana, pois todos os fucionários precisam usá-la, e de foram encontradas algumas falhas de segurança antes não percebidas, tudo correu bem.

11a. semana
Nessa semana foi instalada a máquina usada como laboratório linux na empresa. Todos os usuários da rede a usam remotamente para usufruírem dos aplicativos que rodam em ambiente linux. Entre esses aplicativos, temos o Apache (servidor web), o postgresql, o mysql (banco de dados), e o LATEX. O maior dos problemas ocorreu quando fui instalar o servidor de servlets. Um servidor de servlets é um módulo do apache que se preocupa em interpretar programas feitos em Java e mandar a saída do programa para o browser do usuário. Até o momento não consegui colocar um determinado diretório para cada usuário rodar seus aplicativos feitos em servlet.

Outra coisa importante que fiz essa semana foi a leitura de diversos documentos relacionados com sistemas de arquivos NFS, e o aplicativo NIS. O NFS (networking filesystem) é o responsável por fazer a exportação de diretórios de uma determinada máquina para outra. Ainda falta eu entender como funciona esse sistema, e aplicá-lo na rede da empresa. O NIS (network information system) é um sistema que permite exportar alguns arquivos para outras máquinas. É muito útil no caso de uma rede composta de máquinas multi-usuários, onde o arquivo exportado é o de senhas, pois dessa forma o usuário pode mudar a senha numa máquina que o NIS se encarrega de mudá-la no servidor, que espalhará a notícia para todas as outras máquinas da rede, que saberão que aquele usuário agora tem uma senha nova. Quando eu tiver certeza de como funcionam esses dois sistemas implantarei-os na rede da empresa.

12a. semana
Instalei o OpenLDAP (um servidor de diretórios, que quando eu entender o quer dizer eu explico).

Comecei a mexer com o php, usando um programa open-source chamado PHPADS. Esse programa cuida da parte de publicidade em uma página web. Quando clicamos num banner (anúncio) que está numa página, o phpads é chamado e computa o click, indo para algum outro endereço web, gravando quantas vezes o banner foi clicado e quantas vezes o banner foi visto. Cada anunciante tem um login e uma senha para ver quantas vezes o seu banner foi acessado ou clicado. É um programa muito útil para a administração de banners de um site, pois permite também gerenciá-los através de uma interface amigável. Os banners são inseridos na página através de um código em php que chama o phpads, e este coloca o banner na página. Dessa forma, pode-se colocar banners dinâmicos (ou seja, o banner nem sempre é o mesmo) nas páginas, o que é muito interessante para a área de marketing.

Consegui resolver o problema que estava me atormentando havia muito tempo: o computador que servia de laboratório, cujo sistema operacional que estava instalado era o linux, estava dando muitos problemas. Essess problemas sempre estavam relacionados com a perda de dados que estavam gravados no computador. Eu então achava que a solução seria trocar cada um dos componentes encarregados do armazenamento de dados. Fizemos isso, mas não deu certo. Mas, por um ``milagre'', o kernel do linux travou e mostrou algumas informações que me ajudaram a encontrar o problema. Como eu faço iniciação científica sobre com o kernel do linux, pude entender a saída que foi mostrada e identifiquei que o problema era em relação ao alocamento das páginas de memória. Isso quer dizer que o problema estava na transferência dos dados entre os vários componentes do computador e a memória. Com isso conclui que deveria trocar a memória principal do computador. E por um acaso isso resolveu o problema que estava nos atormentando desde há muito tempo.

13a. semana
Ajudei num projeto que está atrasado, fazendo um pouco da parte de alteração do banco de dados relacional. A linguagem usada foi o PHP, que eu não tenho muita prática.

Comecei a me dedicar a outro projeto, que também está em andamento, onde são gerados relatórios em latex, e é necessário usar alguns comandos mais avançados, que eu não conhecia.

14a. semana
Alguns problemas ocorreram durante essa semana. Dentre eles a instalação do VMWARE (usado para simular uma máquina dentro de outra máquina, de forma que funcionem como se fossem duas independentes). O problema é que esse software fez com que eu perdesse toda a instalção do Windows 98 que tinha no meu computador, fazendo com que eu perdesse todo o dia para reinstalar tudo o que havia antes.

Novamente fui ``convocado'' à ajudar noutro projeto atrasado. Tinha que fazer um programa em PHP que enviava um mail com os dados retornados de uma formulário de uma página. Depois de alguns problemas com a linguagem, e com o HTML da página, tudo deu certo.

15a. semana
No início dessa semana fui informado de que um dos funcionários da área de desenvolvimento iria sair, e que o projeto que ele estava encarregado deveria ser entregue na terça-feira da próxima semana. Isso caiu como uma bomba. Tentei ajudar no que pude, já que eu ainda não sei usar a linguagem PHP de uma forma eficiente (pois ainda estou aprendendo). Foram dois dias ajudando no que foi possível no projeto de leilões. Esse projeto é uma automação de várias funções relacionadas com a administração de leilões e sua divulgação na internet. Desde a administração do banco de dados até a geração de relatórios, tudo usando um servidor linux e ambiente web.

Foi pedido para que eu atualizasse o servidor de banco de dados Postgresql, da versão 6.5 para a 7.0. Visto que essa é uma versão beta, ou seja, ainda está em desenvolvimento, encontramos alguns problemas, como o fato da nossa base de dados antiga ser incompatível com a versão nova. Isso pode ser um impecílio no upgrade do nosso servidor web, já que isso traria perda de dados. Ainda estou estudando uma forma de resolver esse problema.

16a. semana
As atualizações realizadas no servidor de Postgresql foram desfeitas, pois ocorreram problemas de compatibilidade com os dados já existentes.

Um dos projetos que eu estava envolvido, o de leilões, teve a sua parte inicial entregue. Ainda existem alguns problemas a serem resolvidos, mas agora nós temos mais tempo para cuidar deles.

Começou a troca de servidores diversos da empresa, devido ao crescimento de mesma. Instalei Linux Debian em todos os servidores que teremos, e vou começar a configurá-los para atender os mais diversos serviços, tais como e-mail, web, banco de dados, etc. Foi atribuída a mim a tarefa de realizar o planejamento de como aproveitar, da melhor forma possível, todos os recursos computacionais disponíveis na empresa. Temos disponível 2 computadores com alto poder de processamento e grande velocidade de disco, 3 com capacidade média de processamento e velocidade de disco boa, 1 com um bom processador, mas com velocidade de disco e rede razoável, e 1 com baixa capacidade de processamento e disco lento. Também temos alguns periféricos disponíveis, como placas de rede ethernet 100BaseT (de alta velocidade), 2 switchs de 24 portas, 1 hub de 8 portas, uma controladora de disco SCSI UltraWide2, que atinge velocidades de até 266MB/s, e uma controladora RAID, que possibilita usar discos redundantes, ou seja, caso ocorra algum erro físico nos discos, os dados poderão ser recuperados. O que eu decidí fazer foi: 1 computador com alto poder de processamento usará uma placa RAID e será o nosso servidor de disco e laboratório ao mesmo tempo. O laboratório é o computador que usamos para testar e armazenar todo o trabalho realizado na empresa. O outro computador com processador rápido será o nosso servidor WEB. Um computador com velocidade média será o nosso gateway, firewall e servidor de e-mails. O outro será o servidor Windows 2000, e o outro talvez será o nosso Proxy, mas isso ainda não está certo. O computador com velocidade baixa de processamento será usado com gateway e firewall da nossa segunda rede de computadores. Essa rede é composta do nosso call-center (várias pessoas atendendo os clientes por meio de telefone, tendo os computadores conectados em rede para acessar rapidamente o nosso banco de dados). As placas de rede rápidas serão colocadas nos nossos gateways, para melhorar o fluxo de dados. Os switchs estão distribuídos da seguinte forma: um é usado na nossa rede principal, tendo como saída física para a internet somento o nosso gateway, o outro está fora do gateway, e é usado para conectar todos os servidores que estão fora do firewall. A saída para a internet desse switch só se dá através do roteador. A rede do call-center será conectada no hub, e o hub terá uma saída para o gateway mais lento, e daí então para o switch que dará acesso à internet.

Creio eu que essa é a melhor forma de distribuir os componentes disponíveis para o aproveitamento máximo dos mesmos.

17a. semana
Começamos a fase de troca de máquinas e servidores. Primeiramente troquei o servidor de e-mails. Implantei um esquema de domínios virtuais. Ou seja, o usuário tem conta de e-mail no servidor, somente para um dado domínio. Dessa forma é possível termos vários usuários com o mesmo nome, desde que estejam em domínios diferentes. Os scripts para isso foram feitos em Perl, usando Qmail como servidor de e-mails. Os scripts para a abertura de contas para os domínios e para os usuários estão quase perfeitos. Falta apenas criar scripts para a remoção de usuários e domínios.

O projeto de leilões está andando, mas para que eu esteja apto a ajudar nos scripts que serão necessários muito em breve, precisamos instalar no servidor, que será colocado no nosso cliente, uma máquina com uma distribuição Linux que eu já esteja familiarizado. Dentre todos problemas encontrados lá no cliente, decidimos resolver o de configurar uma intranet (rede com as mesmas características da internet, mas limitada a uma pequena área). E como o sistema que desenvolvemos foi criado como sendo páginas da web, usando PHP e Postgresql (o que faz com que as páginas sejam geradas no servidor, possibilitando concentrar as informações nele, e não no cliente), ele pode ser acessado através de qualquer computador da rede local.

Algumas coisas que eu percebi sobre como lidar com o cliente: O cliente estava ficando impaciente conosco, pois o sistema estava demorando muito pra ficar pronto, e ele pensava que a gente estava menosprezando-o, pois ele é um cliente pequeno. Foi então que meu chefe decidiu ir visitá-lo para atualizar o que está pronto do sistema toda semana, embora só a parte de cadastro esteja pronta. Isso melhorou o relacionamento com o cliente de uma forma espantosa. Concluo daí que simples atos são suficientes para melhorar o relacionamento entre cliente e empresa.

18a. semana
A troca de servidor de e-mail está quase completa. Os servidores de DNS estão sendo atualizados rapidamente, para que mandem os e-mails pro IP certo. Contas são abertas diariamente. O que falta nos scripts de abertura de contas é a verificação de que um dado usuário já tem uma conta aberta. Isso será feito tão logo eu termine de instalar Debian Linux no computador servidor do cliente leiloeiro.

Comecei a trocar a máquina que servia as páginas web para uma outra, mais potente. Estou usando a distribuição Woody (unstable) da Debian. Essa distribuição está começando a ser formada agora, e talvez nos trará alguma dor de cabeça. Porém, ela usa o que há de mais novo em termos de software para linux.

19a. semana
O computador servidor para o projeto de leilões está pronto para ser instalado no cliente. A instalação foi quase tranqüíla. Quase pois ocorreram alguns problemas de conflito de hardware. Outras pessoas da área de desenvolvimento foram instalar a máquina no cliente. Eu achava que isso iria me ajudar, pois nem sempre estou disponível para resolver todos os problemas que aparecerem com relação às redes e/ou instalações que eu faço. Percebi que isso mais me atrapalhou que me ajudou. Aprendi que se eu começar a fazer alguma coisa, eu é que devo terminá-la, salvo raras excessões, para evitar maiores problemas.

Outra coisa que aprendi, ou melhor, descobri essa semana, é que nunca se deve começar um projeto sem ele ter sido completamente especificado. Infelizmente isso a gente só aprende quando percebe os problemas que ocorrem ao tentar fazer tudo ao mesmo tempo, ou seja, definindo o projeto e ao mesmo tempo já realizando-o.

E com isso também percebi que nenhum projeto deve ser iniciado com poucas pessoas envolvidas nele. É necessário um grupo que se dedica exclusivamente à esse projeto, afim de terminá-lo o quanto antes e com qualidade. Se o projeto demora muito, o cliente sempre tenta colocar coisas novas, fazer modificações, etc. o que sempre atrapalha o andamento do mesmo, sem contar que muitas coisas que já estavam prontas certamente serão descartadas, ou, no melhor caso, terão que ser alteradas. Só que projetos realizados muito rápido têm uma alta chance de apresentarem problemas, ou seja, a qualidade não será tão boa. É por isso que devemos sempre colocar várias pessoas envolvidas num mesmo projeto. Também devemos nos lembrar que cada um tem seu limite, que deve ser respeitado. O ideal é atribuir apenas uma tarefa para cada integrante do grupo, e evitar designar mais de um projeto para cada integrante, pois isso pode degradar a qualidade do produto a ser desenvolvido, e ao mesmo tempo desgastar excessivamente o funcionário.

20a. semana
Essa semana instalei e configurei o novo servidor interno da empresa. Esse servidor será, num futuro próximo, o nosso servidor de dados, usando um esquema RAID (rede redundante de discos). Descobri que a placa SCSI e a placa RAID disponíveis não são compatíveis com linux. Isso nos faz ter que usar de outras formas para atingir nossos objetivos. Vamos usar um esquema RAID por software, para contornar esse problema.

Foi decidido que o sistema de leilões deveria estar pronto até o final dessa semana. Muita coisa ainda não está funcionando, mas foi entregue o suficiente para o cliente começar a entrar com os dados. Como eu não estou envolvido com a parte de programação do projeto, fiquei com a parte de fazer a atualização do site do leiloeiro automaticamente. Como muita coisa já está configurada no servidor instalado no cliente, já é possível atualizar o sistema remotamente, bem como testá-lo sem ter que ir até lá.

Instalei no servidor o Apache com suporte à SSL. Preciso dar uma estudada no material de MAC330 (criptografia) pra poder entender direito como funciona, pois está dando umas mensagens estranhas nos browsers dos clientes.

Tive alguns problemas com relação ao sistema de arquivos do windows, quando tenho que usar compartilhamento. Usei a minha experiência em iniciação científica pra solucioná-lo. O problema era que o computador guardava um cache do arquivo, e impedia que fosse percebida instantaneamente alguma alteração remota. Dei uma olhada na documentação do samba (programa para linux que emula um servidor Windows NT) e descobri como desligar o cache para os computadores clientes. O sistema de arquivos ficou mais lento (algo em torno de 10%), porém o problema com o cache dos arquivos foi resolvido.

21a. semana
Nessa semana descobrimos que algumas das placas compradas para o servidor de disco não são compatíveis com linux, e nem mesmo com a placa mãe do servidor. A placa RAID não tem driver pra linux. Procurei em vários sites que desenvolvem ou participam do desenvolvimento do kernel do linux e não encontrei nada. Outro problema encontrado é que o drive de fita DAT não tem conector na placa SCSI. Em suma, de tudo que a empresa dispunha de recursos para o servidor de disco, quase nada pode ser usado. Tentei usar a solução RAID por software usando módulos do kernel do linux. Usei muito do que aprendi na iniciação científica sobre o sistema de arquivos do linux, mas mesmo assim não consegui fazê-lo funcionar de forma a guardar os dados de forma segura.

Por conta disso, instalei o servidor de disco usando NFS sem RAID, e usando um script que é executado toda noite pra fazer o backup diário dos arquivos pessoais e projetos da empresa. Instalei também o NIS na rede, afim de aprender a usá-lo, pois é muito útil numa rede grande.

Fora isso, tive que cuidar da rede, como sempre, afim de deixá-la funcionando corretamente. O nosso servidor web agora puxa os dados a partir do servidor de disco. Para deixar o acesso ao servidor de disco mais rápido, colocamos uma placa de rede em cada um dos dois servidores, e ligamos as duas placas diretamente, afim de evitar gargalos e congestionamento na rede.

Agora a rede está quase pronta, faltando apenas o proxy (cache da internet). Dessa forma, só terei que me preocupar em realizar a manutenção rotineira da rede, podendo me dedicar aos projetos que estão chegando para mim.

22a. semana
Fiz uma página para ser colocada no servidor que possibilita a alteração da senha de e-mail dos usuários através da web. Para isso, foi necessário criar um CGI em Perl que cria uma interface para o usuário e possibilita a chamada de rotinas de sistema. Essa chamada rotina de sistema é a execução de um programa que usa a linguagem chamada expect. Essa linguagem possibilita mandar dados como se eles estivessem sendo digitados no terminal. Em outras palavras, o problema principal de se alterar a senha é o programa passwd, que serve para mudar a senha do usuário. Esse programa só permite entrada de dados diretamente no terminal. Um programa escrito usando a linguagem expect espera um texto, ou um certo tempo, antes de mandar dados para o terminal como se eles estivessem sendo digitados. Dessa forma, contornamos o problema da troca de senha. Resta apenas cuidar da segurança da rede, de forma que ninguém tente alterar a senha de outros usuários, tal como o usuário root. Isso é feito no próprio CGI, que cuida de não deixar que troquem a senha de usuários especiais pela web. Assim, a senha é digitada na página, assim como o nome da conta do usuário. Ao clicar no botão de ok, o script em expect é executado e a senha do usuário é alterada, caso ela esteja correta. Caso contrário, o usuário é informado desse problema.

Voltei a mexer com o PHPADS, afim de colocá-lo em uso finalmente. Como eu já o descrevi anteriormente, não vou repetí-lo novamente aqui. Depois de tanto tempo estudando e usando programas free-source, descobri que no mercado também existem ferramentas boas, gratuitas e com o código fonte aberto. Algumas dessas ferramentas precisam de uma licença se forem usadas comecialmente, mas nada muito absurdo em termos de custo benefício. Disso eu tiro uma conclusão: Pra que reinventar a roda?

Finalmente apliquei o PHPADS em algum site, e usando todos os recursos. O PHPADS possibilita a internacionalização através de um arquivo com as frases em uma dada língua. Como não havia a língua portuguesa, eu traduzi e a coloquei. E com isso, visualizando o código, consegui aprender a fazer programas de maneira internacionalizada, ou seja, eu crio um arquivo com as frases que serão usadas, tudo em inglês. No início do programa, é lido esse arquivo e colocado cada texto numa variável específica, e, ao invés de simplesmente imprimir um texto durante a execução do programa, é impresso o conteúdo da variável que contém o texto que deve ser exibido na língua que o usuário especificou durante a instalação do programa.

23a. semana
Durante essa semana foi decidido que a responsabilidade de fazer um webmail seria minha. O webmail é uma forma de ler e-mails através de um browser como o netscape. O webmail que eu resolvi utilizar chama-se IMP (Internet Messaging Program), que se utiliza da biblioteca HORDE. O HORDE é um conjunto de funções em linguagem PHP, que são usadas por aplicações voltadas para internet, como o IMP. O IMP, por sua vez, é uma aplicação que possibilita o acesso às caixas postais de e-mail de um usuário usando o protocolo IMAP ou POP3. Ele possui vários recursos, como o de compor e enviar mensagens através de um ``composer'' montado como um formulário numa janela do browser. Possibilita também a administração das pastas da sua conta. O meu trabalho começaria em entender como ele funciona. A partir daí eu teria que ``customizá-lo'' para um novo projeto que chegou essa semana. Nesse projeto está previsto um portal para pessoas de baixa renda, e que teria como uma de suas funcionalidades a possibilidade de criar contas de e-mail para todos os usuários do site.

Uma coisa que eu não concordei foi o fato de apenas eu ter que fazer isso, ou seja, o único desenvolvedor envolvido com o projeto seria eu. Isso faz com que toda a parte de tecnologia fique dependendo de mim, o que faz o site ser literalmente dependente de apenas uma pessoa. Assim, caso eu saia da empresa por algum motivo, quem pegasse o site para alterar ou fazer algum tipo de manutenção certamente encontraria muita dificuldade. Seria praticamente inviável. Isso é uma lição que acabei de aprender, e que certamente não vou me esquecer, para evitar cometer o mesmo erro que cometeram aqui na WebSee.

24a. semana
Fui melhor informado sobre o projeto em que vão usar o webmail. Esse projeto consta de criar um site que contém, além de outras coisas, webmail e e-commerce. Ele é destinado a pessoas de baixa renda, que não têm acesso à internet ainda (pelo que pude entender). Será desenvolvido um computador especial, que será colocado em lugares apropriados para que essas pessoas possam acessar o site a ser desenvolvido. O nome desse projeto é ponto K, e o cliente é a empresa Kaiser.

Para a parte do e-commerce, estou estudando um software free-source chamado MiniVend. É um software feito em linguagem C e Perl, que funciona da seguinte forma: O banco de dados com os produtos a serem colocados à venda foi criado especificamente para esse sistema. Todas as páginas são geradas dinamicamente, através de chamadas feitos pelo servidor WEB a programas CGI. As páginas desenvolvidas para essa aplicação seguem uma linguagem própria, isto é, não é usado somente código html, mas também código MML (MiniVend Markup Language).

Primeiramente eu precisaria entender como funciona o banco de dados (como inserir dados, remover, consultar, etc.), como usar a linguagem MML, para poder construir as páginas que acessam o banco de dados do MiniVend, e finalmente como juntar tudo isso e montar um site que fosse fácil de usar à nivel de usuário.

25a. semana
Durante essa semana tivemos muitos problemas com falta de energia e estive muito ocupado cuidando dos servidores.

Fora isso, pesquisei profundamente o IMP (webmail) afim de poder deixá-lo da forma com que vamos precisar usá-lo. O MiniVend foi deixado de lado um pouco.

Sobre o IMP, foi pedido pra realizar algumas alterações. Como ele tem o código fonte aberto, embora seja difícil entendê-lo, acho que será possível. Foi pedido para alterar o design e esconder qual o webmail usado, que seria IMP. Outras alterações foram pedidas. Eu as descreverei por completo logo abaixo:

26a. semana
Outras coisas foram decididas quanto ao projeto do ponto K. Estão definindo como será o nome da conta de e-mail do usuário. Aparentemente será definido automaticamente, ou seja, o programa se baseará nos dados da pessoa pra criar um login que seja sempre diferente para cada pessoa. A máquina que será usada para acessar a web em locais populares ainda não está pronta, e temos muitas dúvidas de como ela será, embora já exista alguma coisa definida.

O WebMail, que já estava com a interface pronta, terá que ser alterado devido à precipitação dos dirigentes da área de design. Todo o trabalho feito durante um dia foi perdido. A única coisa que não foi perdida é a experiência, pois agora já tenho uma noção de onde estão os arquivos a serem mudados, quando for realmente definido como será a aparência do webmail.

Recriei a interface para a alteração de senhas dos usuários de uma forma mais fácil e segura. Agora uso um cgi em perl todo feito por mim, pensando sempre na segurança, e que não tem nada de HTML no meio, ou seja, o design pode ser mudado sem que a parte programada seja influenciada.

Comecei a estudar um pouco de JSP (Java Server Pages). JSP é uma forma de criar páginas dinâmicas na internet. Ele se utiliza da linguagem java, e é muito parecido com ASP. Aprendi o básico, ou seja, já sei criar páginas dinâmicas simples.

27a. semana
Durante essa semana eu procurei por software para fazer o monitoramento da rede e avisar por celular ou e-mail caso ocorram problemas para que eu possa corrigí-los o mais rápido possível. Entrei alguns e vou testá-los ao longo do tempo.

Criei alguns scripts em Perl para me ajudar a administrar o servidor de e-mails. Scripts para criar e encerrar contas de usuários, além de outros mais simples. Estudei também a hipótese de se criar quota de disco para os usuários de contas de e-mail (um esquema de espaço máximo que cada usuário pode ter no disco do servidor de e-mails, afim de evitar que as pessoas utilizem muito espaço, fazendo com que o disco encha e ninguém mais possa receber e-mails).

Instalei o Squid, um proxy free-software. Ele se encarregará de fazer o cache das páginas mais visitadas da internet, afim de evitar ter que sempre fazer o download das mesmas páginas várias vezes. Isso vai liberar um pouco o nosso gateway, que passará a ter um tráfego mais ``calmo'' entre a rede externa e a interna.

Configurei o firewall para negar acesso a um certo bloco de IP's. Foi pedido que eu bloqueasse o acesso de certas pessoas à internet, e isso me custou algumas horas pra ler e aprender como fazer isso.

Visitei algumas empresas durante essa semana. Uma delas foi a .comDominio, uma empresa de hosting. Ela tem um prédio no centro da cidade e aluga espaço para outras empresas colocarem seus servidores lá. Possui toda a infraestrutura para que os seus clientes fiquem o mais tranqüilos possível. Possui um andar de geradores de energia e um de ar-condicionado, sem contar que possui 3 links de acesso à rede, com roteadores ``inteligentes'', ou seja, eles sempre mandam os dados pelo caminho mais rápido, e não o mais curto.

Visitei a empresa BMZ, que cuida da publicidade do projeto ponto k. Fui lá afim de conversar com o pessoal de outra empresa, Spectrum, que está junto da nossa (WebSee) nesse projeto. Essa empresa cuidará da parte de hardware, enquanto a gente cuida da parte da rede e software em geral, sem contar a parte de publicidade.

Depois ainda fui numa palestra sobre um projeto que está chegando, chamado privacidade online. Esse projeto é uma parceria da WebSee com uma empresa de advocacia chamada Menezes&Lopes. O projeto consiste em criar uma norma para certificar sites com algo do tipo ISO9000, em termos de confiabilidade dos dados que o usuário deixaria no site. Isso significa que o site que tiver esse ``selo'' pode ser considerado ``confiável'' (com relação ao cuidado tomado com os dados dos clientes dele).

28a. semana
Instalei suporte a SSL (Secure Socket Layer) para a leitura de e-mails, afim de evitar que as senhas dos usuários trafeguem pela internet livremente. Dessa forma, tanto os e-mails como o envio da senha para a leitura deles será criptografado, dando mais segurança para nossos usuários.

Começamos a instalar um servidor de servlets chamado tomcat. Esse servidor consiste em rodar aplicações java do lado do servidor e mandar a saída para o browser do cliente. Perdemos muito tempo tentando fazê-lo funcionar, pois a documentação é muito pequena, e muito confusa. Ao final da instalação, não conseguímos, após o dobro do tempo que usamos para fazer a instalação, configurar os servlets que já tinhamos para funcionar da forma que queríamos. Ao final de 3 dias de tentativas, resolvemos voltar à versão antiga dos servlets, pois apareceu um outro projeto mais urgente que atualizar o servidor.

Estudei como fazer um banco de dados funcionar mais eficientemente, e coloquei tudo o que li em prática, afim de melhorar nosso servidor. O accesso ficou muito mais rápido, fazendo com que os pedidos sejam mais rápidos e terminem mais cedo, ou seja, eles ficam menos tempo usando a memória e o processador o que deixa o servidor mais livre pra atender a outros pedidos.

29a. semana
Foi decidido, mesmo que temporariamente, pra eu coordenar a parte de desenvolvimento do projeto ponto k. Paramos todos os outros projetos afim de terminar esse até a terça-feira da semana que vem. Percebi que a falta de organização, metodologia e documentação, bem como o medo de perder clientes e a precipitação de se firmar um negócio faz com que o trabalho seja muito, mas muito mais difícil e demorado do que seria se tudo fosse feito com calma e seguindo um esquema decidido previamente pelos desenvolvedores.

Parece que estou mais aprendendo o que não fazer do que o que fazer durante esse estágio. Como não existe um contrato formal com o cliente, este acha que tem o direito de dar palpites e mudar o projeto durante o seu desenvolvimento, e ainda acha que se não for entregue na data especificada durante o início do projeto então ele deve ser ressarcido do prejuízo que ele mesmo causou ao projeto. A falta do uso de metodologias de engenharia de software causa uma degradação muito forte num projeto que pode ter começado bem.

Comecei a estudar novamente o webmail, afim de aprender a mandar um e-mail com dois arquivos atachados escolhidos previamente. Estamos também estudando uma forma de mudar o design do webmail, afim de atender às expectativas do pessoal de design e do pessoal de marketing.

Fizemos funcionar a captura de som e imagem através do browser Internet Explorer 5, usando um recurso chamado ActiveX, que possibilita a execução de programas que interagem diretamente com o hardware do cliente. Assim, podemos colocar em dois arquivos a fala e a foto da pessoa que está mandando-o como anexos do e-mail, afim de termos um e-mail multimídia conforme nos foi pedido.

Deleguei as tarefas de desenvolvimento de banco de dados e cadastro de usuário, bem como o login. Também desloquei pessoal pra me ajudar com o webmail, afim de entendermos o IMP, pra não termos que fazer tudo do zero, já que teremos que entregar isso tudo na semana que vem.

Entendemos como o IMP faz para anexar arquivos no corpo do e-mail, bem como aprendemos que o formato que os e-mails usam para trafegar na rede é o de base 64, e que o e-mail é traduzido para esse formato pelo programa usado pelo usuário, e não pelo servidor.

30a. semana
Ocorreu um problema com o registro dos nossos domínios. Tive que corrigir quase 100 domínios para que passassem a funcionar corretamente. Isso me tomou muito tempo.

Comecei a pesquisar alguns programas que tenham a finalidade de cuidar de uma intranet, outro com a finalidade de cuidar do conteúdo dos e-mails que passam pelo servidor, outro que cuida de portais e outro que cuida de manter um FAQ sempre atualizado.

Fui até o nosso cliente leiloeiro e tentei descobrir por que o servidor de lá não estava mais aceitando nossa senha. Arrumei isso, e instalei uma nova versão do nosso sistema lá.

Fui à COMDEX pra procurar soluções prontas pra alguns dos nossos problemas, bem como verificar o que nossos concorrentes andam fazendo no mercado. Alguns dos problemas que temos são os seguintes:

As soluções que eu encontrei são as seguintes:

Estudei a possibilidade de se usar um novo software chamado netshift, que tem por objetivo servir como uma ``casca'' para um browser que fica no quiosque. Assim, poderíamos controlar melhor o que os usuários dos quiosques poderiam fazer, de forma a tornar o sistema mais seguro, além de atender às exigências dos nossos clientes, que querem que não se acesse as páginas dos concorrentes, por exemplo.

31a. semana
Testei mais um pouco o netshift, afim de entender melhor seu funcionamento e verificar se ele é realmente útil pro nosso projeto. Testamos junto com o pessoal da Spectrum, uma empresa que está junto nesse projeto (ponto k). Entreguei um servidor com linux instalado pra eles usarem na rede deles.

Estudei um pouco de soquetes em java, assim como conexões ``connection oriented''. Assim eu poderia entender melhor como funcionam os vários serviços disponíveis na internet.

Comecei a criar a documentação da rede, afim de ajudar aos usuários menos experientes, ou qualquer outro usuário que encontre algum problema, ou que queira saber mais um pouco sobre a rede, ou até mesmo aqueles que querem otimizar seu acesso à rede interna ou externa. A documentação consiste de ensinar através de páginas html como usar a rede, e fornece links sobre assuntos relacionados à ela. Junto com essa documentação foram criados alguns scripts que permitem a alteração da senha da conta de e-mail dos usuários.

Esse trabalho todo vai ajudar a diminuir a minha dedicação à rede, pois cada usuário conseguirá resolver a maioria de seus problemas sem precisar me chamar, e novos usuários poderão ser auxiliados pelos usuários mais antigos e pela documentação da rede, que continuará crescendo conforme forem aparecendo dúvidas e suas repectivas soluções.

32a. semana
Pesquisei formas de filtrar virus em e-mails. Embora o sistema operacinal linux seja praticamentente imune a virus, precisamos combatê-los nas máquinas windows, onde os e-mails são lidos. Para fazer isso, encontrei alguns programas que são ``acoplados'' ao qmail e que trabalham quando um e-mail chega. O programa faz o seguinte: ele lê o e-mail, separa o e-mail em suas componentes MIME (isto é, separa os arquivos anexos), daí é chamado um outro programa que verifica para cada componente do e-mail se algum deles tem um vírus, ou se o e-mail é suspeito. Caso existam vírus, o e-mail original é guardado e um e-mail sem vírus é criado e enviado ao destinatário, e uma mensagem de que o e-mail tinha vírus é enviado ao remetente (opcional). Se o e-mail for suspeito, como por exemplo se ele tiver um arquivo executável anexo à ele, ou uma macro (fatores que podem ser extremamente perigosos em máquinas Windows), então esses anexos têm suas extensões de nome de arquivo alterada para alguma que seja inofensiva, afim de evitar qualquer risco.

Descobrimos uma falha de segurança grave em nosso servidor de e-mail, referente ao serviço de transporte de e-mail SMTP. O nosso servidor permitia qualquer pessoa de usar o serviço SMTP para mandar e-mails de qualquer lugar para qualquer lugar. Isso abria uma brecha pra usuários mal intencionados de mandar vários e-mails através de nosso servidor causando uma sobrecarga que poderia acarretar em Denial of Service (DoS), ou seja, nosso servidor cairia por estar atendendo à muitas requisições SMTP, ou pelo menos ficaria muito lento. A solução foi colocar o serviço numa máquina só para isso. Assim, caso essa máquina seja atacada e caia, nossa rede ainda continuaria de pé, pois antes de tomarmos essa atitude, o servidor de SMTP era o servidor central da nossa rede interna.

Fiquei um tempão tentando resolver um problema que não é grave, mas que está dando bastante trabalho pra gente. Ele consiste do seguinte: numa página HTML, qualquer link que tenha como target ``_top'' irá fazer todos os frames atuais sumirem. O que se quer é que mesmo com páginas com esse tipo de link, caso alguém clique nesse link, alguns frames atuais não devem sumir. Dentre as possíveis soluções, pensamos em abrir duas janelas e com JavaScript faríamos com que links numa janela abrissem página noutra. Outra solução seria tentar criar layers (um tipo de objeto flutuante na janela) que ficassem sempre em algum lugar e nunca sumissem, mesmo quando fosse clicado num outro link. E a solução mais provável a se usar, embora fosse a mais inviável, é a de se chamar um programa no servidor que rescreveria todas as páginas tirando a tag ``target=_top'' do código HTML, e modificando todos os links para que cada um deles chamasse o programa do servidor que refaria as páginas tirando tal tag, e assim sucessivamente (de uma forma aparentemente recursiva). Essa solução é inviável pois o servidor seria muito requisitado, de forma a deixar o acesso às páginas muito lento.

33a. semana
Essa semana começou a aparecer alguns problemas referentes à falta de espaço em disco para os servidores. Como não havia esquema de quotas de disco para os usuários, ninguém se preocupava com o quanto de espaço estavam utilizando. Por causa disso fui obrigado a instalar um disco com mais espaço (oito vezes maior que o anterior) e estabelecer um esquema de quotas.

Tive que criar um script em Perl e SH pra cuidar de avisar os usuários que tiverem suas quotas estouradas. O script foi colocado no servidor de e-mails pra rodar uma vez por dia, onde ele verificaria se algum usuário teria passado dos seu limite (que foi estabelecido em 50MB). Caso algum usuário tenha passado disso, então é mandado um e-mail pra esse usuário e é especificado um prazo pra que ele regularize sua situação. O prazo definido é o de 7 dias. Após esse período, a conta estaria bloqueada. Mas por medida de segurança, ele conseguirá receber e-mails, mas não conseguirá fazer nada com eles.

Para isso tudo eu utilizei o esquema de quotas do kernel do linux, usando alguns scripts pra interpretar as saídas dos comandos afim de poder saber quem está usando o disco do servidor mais do que o necessário.

Conforme eu estava testando semana passada, continuei nessa a estudar formas de filtar os e-mails pra detectar virus. Instalei alguns anti-virus shareware pra poder testar. Apenas dois foram satisfatórios, mas pretendo usar somente um. Tentei instalar, mas sem sucesso, filtros que pegam os e-mails que passarem pelo servidor. Semana que vem vou continuar a testar mais filtros.

34a. semana
Passei por um pouco de sufoco nessa semana. Acabou o espaço em disco no servidor de páginas web. Tive que arranjar um novo disco com mais espaço. Estamos agora com falta de equipamentos, e por isso vou ter que começar a economizar recursos.

Instalei linux num servidor que vai ficar numa empresa cliente nossa, a Menezes & Lopes. Nesse computador eu instalei um pacote que nunca tinha usado antes, um NetWare Server. Ele funciona como um servidor Novell, só que em linux, pra rodar aplicações antigas do sistema operacional DOS. Ainda não sei como configurá-lo, pois nunca usei uma rede Novell (que é como uma intranet, só que proprietária, pois ao invés de IP, usa o IPX, e ao invés do TCP, usa o RIP).

Tentei mais um pouco instalar um filtro de virus no servidor de e-mails, porém foi sem sucesso, pois não consegui usar um módulo do perl.

Fiz uma query num banco de dados com um join de três tabelas. Foi algo inédito pra mim, pois até então só havia feito isso nas aulas de Banco de Dados, ou seja, só teoria. Vi que se você não tem uma documentação do banco de dados, o problema pode ser muito maior do que se esperava.

35a. semana
Finalmente apliquei a solução que eu havia encontrado pra filtrar os e-mails dos usuários contra vírus que atacam o windows. O que eu fiz foi trocar o programa que cuida da fila de e-mails do qmail, colocando no lugar um script que além de cuidar da fila ainda roda um anti-virus em cima do e-mail recebido. Na verdade esse script pega todo o e-mail e separa seus arquivos atachados, bem como a mensagem, e verifica individualmente cada pedaço em busca de virus. Se algum for encontrado, um e-mail é enviado avisando que o e-mail está em quarentena. Assim, o e-mail não é perdido, mas fica guardado esperando pela ação de algum administrador.

Falta eu fazer um script pra atualizar o anti-virus automaticamente, ou seja, fazer o download dos arquivos do site do fabricante do anti-virus e colocar os arquivos no lugar certo, afim de poder usá-los.

Instalei (pelo menos fisicamente) dois roteadores e um servidor que vai ser o gateway de um dos nossos clientes, a Menezes & Lopes. A linha de comunicação que ligará os 2 roteadores é chamada de frame relay. Ainda não sei como funciona ou o que é, porém já estou pesquisando. Resolvi dar IPs reais pra essa rede, mas ainda não conseguimos estabelecer comunicação entre essa rede remota e a nossa.

36a. semana
Nessa semana sofri muito pra tentar fazer funcionar, junto com a nossa rede da Web See, a rede da Menezes & Lopes e da Result's, duas empresas que nos contrataram pra provermos acesso à internet pra elas. Tive que instalar mais dois roteadores pra cada uma delas, e dar pelo menos dois IP's reais pra cada.

O problema é que não conseguimos fazer os roteadores que estão nas empresas se comunicarem com os que estão aqui no escritório, e nem acertar as rotas dos roteadores pra eles saberem pra onde mandar os pacotes que estão recebendo. Essa parece ser a parte fácil da definição das rotas. Um problema potencial seria acertar a rota do roteador principal, que dá o acesso à internet pro nosso escritório. Embora nós já a tenhamos acertada, pode ser que ocorram alguns problemas ainda (por exemplo, caso a faixa de IP que demos pra cada empresa mude).

Instalei um novo webmail pra ser testado aqui. Ele se chama TWIG e vêm com suporte à virtual hosts, o que seria muito bom pra gente, já que aqui a gente usa um esquema parecido com o de virtual hosts. A maior vantagem aparentemente é a de ser mais fácil de modificar a interface dele, através de programas como o Dreamweaver (programa usado pra criar documentos HTML de forma gráfica, fácil e rápida).

Encontrei um bug no esquema de virtual hosts do servidor de e-mail. O problema estava na concorrência. Isso só acontecia quando o usuário recebia o e-mail e tentava lê-lo no mesmo instante. O servidor não teria tempo de tratar o arquivo dessa mensagem para que o usuário pudesse ter permissão pra fazer o que quisesse com o e-mail. Isso eu resolvi fazendo o script que roda no servidor mudar as permissões antes de deixar o e-mail disponível pro usuário.

Criei um script que atualiza automaticamente a base de dados do anti-virus que está instalada no servidor de e-mails. Assim, todos os dias o script é rodado e baixa as definições de vírus mais novas que existem na web, deixando assim nossa rede Windows protegida de e-mails infectados. O script é simples: ele faz um download de um arquivo zip do site do anti-virus e, caso o download tenha sido feito corretamente, ele dá um unzip no arquivo e coloca os arquivos resultantes num local onde está nossa base de dados do anti-virus.

Fiz um script que é rodado toda sexta-feira à noite pra fazer um backup dos projetos que estão armazenados no nosso servidor. O script é simples, pois ele faz um arquivo tar.gz e grava-o em CD-R.

37a. semana
Corrigi alguns bugs nos scritps de backup e do atualizador do anti-virus.

Tentei encontrar uma forma de usar páginas ASP (ActiveServer Pages) no nosso servidor Apache. Acho que encontrei algumas formas, mas não tive tempo de testar ainda.

Comecei a fazer um esquema de newsletter dinâmica, ou seja, as notícias são colocadas num banco de dados no servidor, através de uma interface web, e depois são buscadas lá para montar uma página HTML dinâmica com as notícias numa formatação a ser escolhida. Isso é bom pois diminui o trabalho de ter que criar todas as páginas na mão, e se tiver que mudar o design, não será tão trabalhoso assim.

Ainda continuamos com o problema dos roteadores, para provermos acesso à internet para algumas empresas. Descobri uma forma de acertar as rotas de tal forma que os pacotes sigam pelo caminho correto, mas parece que estamos tendo problemas com o link entre as empresas. Se for esse o problema, nada posso fazer.

38a. semana
A empresa precisava colocar um site feito em ASP no ar em pouco tempo, por isso encontrei algumas formas de fazer isso, dado que o módulo ASP do Apache não funciona bem. As formas encontradas foram:

Um técnico da Telefônica veio testar o Frame Relay e disse que está tudo ok. Depois de algum tempo consegui fazê-lo funcionar. O que faltava era configurar as rotas. O roteador dizia que fazia tudo sozinho, mas configurar as rotas na mão ainda é mais confiável.

Continuei fazendo as páginas dinâmicas de notícias da Menezes e Lopes. Falta fazer apenas o front-end, pois a parte de administração já está ok.

Instalei mais uma placa de rede no nosso gateway. Agora ele está roteando pacotes entre 5 redes, 3 dentro da empresa e 2 fora. Perdi algumas horas pra descobrir porque os módulos da placa de rede não estavam conseguindo carregar.

Só falta agora fazer a rede da Result's funcionar. Vou usar minha experiência que adquiri ao fazer os roteadores da Menezes funcionarem para isso.

39a. semana
Essa semana passei muito nervoso. Haviam me pedido pra colocar um site no ar, mas esse site não funcionava bem com o Apache, e a solução que eu encontrei foi colocá-lo numa máquina sozinho onde só estaria o TomCat, já que a gente depende muito do Apache. Depois de pensar muito em como fazer e depois de estar tudo funcionando, quando eu fui falar que estava tudo pronto me disseram que não haviam pedido nada disso. O engraçado foi que semana passada haviam me pedido isso ``urgentemente'', e quando estava tudo pronto as duas pessoas que me pediram disseram que não haviam pedido nada. É engraçado como mesmo com falta de competência e entendimento entre os chefes uma empresa pode ir pra frente.

Terminei de fazer o mapa da rede, de uma forma esquemática, mas muito clara, de forma que a gente possa definir melhor rotas para nossas redes internas e externas, pois no mapa há identificações com os IPs da redes e das máquinas mais importantes.

Instalei um servidor de DHCP e um proxy (Squid) no servidor da Menezes, afim de evitar que o administrador da rede tenha que configurar mais de 100 máquinas pra acessar a internet tudo num dia só. Assim, o DHCP configura as máquinas assim que elas tenham sido ligadas, e dá uma IP pra elas, além de configurar outros detalhes, possibilitando que elas acessem a internet.

O proxy serve pra que eles não usem toda a banda de que dispõe, fazendo um cache dos dados mais requisitados pela empresa.

Instalei um programa chamado IPAC, que faz o chamado IP accounting, isto é, ele registra os pacotes que entraram e saíram de uma interface de rede. Assim, através de regras de contagem de pacotes, podemos saber quando e quanto de internet está sendo usando pela empresa e pelas outras empresas clientes nossas, que receberam um link nosso pra poder acessar a internet. Ele mostra dados em formato gráfico, incluindo estimativas, totais e média.

Implementei a idéia de notícias da menezes usando banco de dados. Fiz tudo num dia só, algo que eu esperava perder a semana inteira pra isso. Isso aconteceu porque não tinha ninguém pra me pedir favores, ou me atrapalhar pedindo pra eu fazer outras coisas e depois ficar perguntando por que que eu não terminei o que eu estava fazendo antes.

40a. semana
Terminei a parte de programação das notícias buscadas em banco de dados. Começamos a implementar e apareceram alguns problemas, que eu corrigi rapidamente. A maioria deles era por causa de zeros à esquerda, que o servidor entendia hora como string, hora como inteiro.

Pediram pra eu tentar fazer um servidor de e-mail Sun dar forward das mensagens para o nosso servidor, mas isso não foi possível, pois nem eu, nem o administrador desse servidor sabíamos como fazer.

Arrumei alguns problemas que aconteceram com nossos servidores devido à constantes quedas de energia. Os nossos servidores MySQL e PostgreSQL não conseguiam funcionar, e isso ficou assim por muito tempo, até eu descobrir que o problema havia sido causado pela perda de arquivos devido às quedas de força. Tentei recriar os arquivos perdidos, mas não foi possível, e a única solução que eu encontrei foi instalar os programas novamente.

Uma empresa cliente nossa pediu pra configurar o servidor de e-mail da seguinte forma: eles queriam que todo e-mail recebido para um determindado domínio fosse guardado numa mesma conta, e que depois todos eles seriam baixados através de um servidor POP, e eles seriam entregues através do servidor local desse cliente para os usuários do serviço de e-mail. Eu consegui configurar mais ou menos o nosso servidor para fazer isso, mas ainda não sei por que não funciona, já que o servidor de e-mail (qmail) não apresenta mais erros durante a entrega das mensagens para esse domínio, mas as mensagens não vão para a caixa postal do domínio.

Comecei a fazer a documentação dos projetos que eu desenvolvi aqui na WebSee, pois em breve estarei saindo dessa empresa, e gostaria de deixar tudo que eu fiz claro para que, além de outras pessoas poderem usar, pois é tudo OpenSource, o administrador da rede que ficar no meu lugar deve saber como usar as ferramentas que eu desenvolvi, sem precisar ficar me perguntando tudo, ou seja, tenho que fazer algo auto-explicatório.

41a. semana
Essa foi minha última semana na empresa. Para não deixar ninguém na mão, eu resolvi documentar todos meus projetos, que incluem os vários scripts e esquemas que fiz para a rede.

Fiz a documentação da rede da menezes e lopes para ficar parecida com a da nossa rede. Essa documentação fica na internet, e pode ser vista em spitfire.websee.com.br e em menezes.websee.com.br. Aproveitei pra mudar os scripts que contam o uso da rede, tanto na menezes quanto na websee. Agora é descontado o acesso aos servidores internos, mostrando apenas o uso da rede depois do nosso roteador, ou seja, a internet em si.

Ensinei quem vai ficar no meu lugar a cuidar da rede e a instalar máquinas na rede, além de lhe entregar as senhas e mostrar o que cada servidor faz na rede.

Tive que arrumar um problema que estava acontecendo no php do apache, no servidor. O problema era um bug no pacote do php3. Reinstalei-o com uma versão mais nova e agora parece que está tudo ok.


next up previous
Next: Cronograma para o segundo Up: Trabalho de Formatura Estágio Previous: Tarefas impostas a mim
Roberto Pires de Carvalho 2000-12-13