tecnologia

Script para iniciar o tomcat

O tomcat costuma apresentar um problema chamado PermGen space Exception quando fazemos muitos undeploys e deploys sem reiniciar o processo do tomcat. Isso acontece por uma característica da jvm da Sun. Não chega a ser propriamente um bug.

Quando executamos uma aplicação java uma instância da jvm é criada exclusivamente para aquela aplicação. Na jvm existe um espaço de memória que nunca é reutilizado. Se chama espaço de memória permanente (PermGen space) e serve para guardar objetos do tipo Class. Quando se carrega uma aplicação, cada casse do jar ou war é instanciado como um objeto que fica alocado neste espaço de memória permanente. Se a aplicação tiver muitíssimas classes a jvm vai lançar uma mensagem de erro indicando que esse espaço está repleto e não é possível carregar a aplicação. Mas se as suas classes se encaixarem neste espaço (e em geral cabe) sua aplicação vai rodar sem problemas. Existem dois tipos de casos onde existe um consumo indevido do espaço de memória permanente:

  1. Programas que geram tipos de classe dinamicamente. O hibernate chega a criar algumas classes em tempo de execução, mas não chega a ser um número tão grande a ponto de gerar problemas. Para encher o espaço de memória permanente seria necessário criar centenas ou milhares de classes dinamicamente. Provavelmente um sistema que roda por muitos dias seguidos e criando classes novas possa chegar preencher todo este espaço. Mas seria um sistema mau escrito.
  2. Programas que carregam muitos tipos de classes dinamicamente. É o caso do tomcat que aceita deploy e undeploy de aplicações. Quando um desenvolvedor faz undeploy todos os objetos das classes da aplicação continuam lá no espaço de memória permanente e quando é feito o deploy da nova versão do context outros tantos objetos do tipo classe vão para a memória permanente. Em algum momento a memória acaba.

É por isso que no ambiente de desenvolvimento é comum ter de reiniciar o tomcat várias vezes ao longo do dia de trabalho. Como meu ambiente é para testes, eu limpo logs e o diretório work antes de rodar o tomcat, e coloco o tomcat.log que é o arquivo do log4j que eu configurei para exibir as mensagens do tomcat. Segue abaixo o meu script para iniciar o tomcat:

#!/bin/sh
TOMCAT_HOME="/opt/tomcat"
TOMCAT_LOGFILE="$TOMCAT_HOME/logs/tomcat.log"

cd $TOMCAT_HOME
rm logs/* -rf
rm work/Catalina/localhost/* -rf
bin/catalina.sh jpda start
ps aux|grep tomcat
echo "tomcat iniciado..."

sleep 5

while [ ! -f "$TOMCAT_LOGFILE" ]; do
sleep 1
echo "arquivo de log ainda não foi criado..."
done

echo "log do tomcat existe e será exibido a seguir:"
tail -f logs/tomcat.log

Um cajado e uma túnica

Eu estive enganado por todos esses anos de serviço público. Eu sempre insisti que o trabalho no serviço público é irracional e improdutivo porque o funcionário público não possui um sistema informatizado adequado.

Retiro o que disse.

O funcionário público não precisa de sistemas que tornem o trabalho rápido e eficiente, mas sim de uma túnica e de um cajado.

ps: estou de muito mau humor hoje…

Ubuntu 8.04 LTS

Ontem de noite comecei a atualização do meu Ubuntu 7.10 para a versão nova que saiu ontemd e manhã, a versão 8.04 LTS. Precisei baixar cerca de 1.3 Gb de dados para realizar a atualização que ocorreu muito bem. Até o momento não percebi nenhum perda de dados ou configurações. As impressoras que eu tinha instalado continuam lá e meu ambiente gnome continua com a mesma aparência de antes. Meu teclado brasileiro não teve problemas de configuração, como li em outro blog que relatou a instalação do 8.04 RC por boot de CD…

Não gostei quando soube que viria a versão beta do firefox 3, mas a versão parece estável, e ainda busca as informações de proxy direto do sistema, o que é um ganho para mim que configuro proxy duas vezes por dia.

Uma coisa que não gostei foi ele ter retirado o VMWare que eu tinha instalado. Ele me perguntou se eu queria tirar algumas bibliotecas perdidas onde constava o vmware, e achei melhor tirar e instalar novamente depois da instalação. Foi uma precaução minha, portanto.

No asf@web já saiu um post sobre a atualização do sistema. O Antonio Fonseca também não encontrou problemas na atualização. Aguardo o relato de outros colegas usuáriod e ubuntu, como o Elcio que também estava se arriscando ontem 😉

Celular Sem Operadora

Telefone celular com capa de bananaOntem o Sergio Amadeu escreveu em seu blog um post com um título tentador: “Celular Sem Operadora: Seria Viável a Gratuidade na Comunicação?”. Trata-se de uma idéia que o próprio Sérgio Amadeu já tinha levantado anteriormente ainda que de forma um pouco diferente. Na matéria que publicou ontem ele descreve uma comunicação que seria feita entre o telefone celular e uma rede sem fio pública, oferecida pelo Estado. O Estado ofereceria acesso gratuito ao cidadão que possui um celular com capacidade de se conectar a internet e as ligações seriam feitas sem custos para outros celular ou computador também ligado a internet.

Hoje em dia os celulares com tecnologia suficiente para realizar tal proeza em wi-fi não sai por menos de R$ 950,00 sem o subsídio da operadora de celular. Em outras palavras, se depender do custo de mercado hoje somente uma faixa bem restrita de cidadãos poderia se beneficiar de um serviço como esse. Mas algum dia no futuro os celulares poderão vir com esse recurso por um preço realmente acessível.

Mas o que me chamou a atenção mesmo na matéria foi a seguinte provocação do Sérgio Amadeu:

Aí vêm a turma do Kptal perguntando: quem paga? é gratuito?

Trabalhador usando telefone celularVou responder como colega: ainda que eliminássemos a moeda das relações sociais o oferecimento de tal rede geraria trabalho humano. E quem deveria trabalhar para que todos usufruam do serviço?

Agora com termos um pouco menos marxistas: para montar uma rede dessas, manter o link e os equipamentos em funcionamento é necessário dinheiro. Se esse dinheiro for pago pelo Estado então ou sobrará menos dinheiro para outros serviços públicos ou o contribuinte pagará mais dinheiro ao Estado. Qualquer explicação diferente é quimera. O fato que o dinheiro do Estado que deve ser utilizado para oferecer transporte, saúde e educação passaria a ser gasto também com comunicação.

Agora eu devolvo a bola: é justo que o Estado e o contribuinte custeie a comunicação do cidadão? Minha opinião é que é injusto, pois o maior beneficiário hoje seriam os mais ricos, e eu acho injusto o Estado beneficiar aos ricos em detrimento dos mais pobres.

Celular do Skype é lançado e permite ligações de graça

Um avanço interessante esse telefone celular que permite usar o skype [veja a notícia no Estadão].

O problema é que para usar o skype é necessário assinar internet no celular, e isso tem preço. Até aí tudo bem. Uma vez assinante você pode falar a vontade para outros usuários do skype. Ligações para telefone fixo não podem ser feitas pelo telefone com o skypeout. Ou seja, se fizer uma ligação local, interurbana ou internacional, o que vale é a tarifação da sua operadora, pois o skypeout está desabilitado.

O ideal seria um skype que pudesse ter skypeout e skypein. O skypout permite ligações a preços baratos para telefones convencionais, e o skypein é uma linha fixa que pode ser alugada por um ano a R$80,00.

Note que a tecnologia para utilizar skypein e skypeout estão presentes no telefone, porém bloqueadas. Sabe qual é o problema? O problema esbarra são as operadoras de telefonia, que não estão dispostas a perder terreno para o voz sobre ip (Voip). Mas um dia vão perder. É uma questão de tempo.

wi-fi na cabeça

Faz algumas semanas que eu tenho dor de cabeça como nunca tive antes. Chego a levar comprimidos comigo todos os dias. Hoje quando abri meu leitor de feeds vi a seguinte notícia no blog da Débora Fortes da Info:

Londres vive o pânico do Wi-Fi

A principal acusação contra o wi-fi é justamente, vejam só, a dor de cabeça. Sou particularmente refratário a este tipo de coisa. Nos estados-unidos é muito comum as redes de televisão, especialmente a abc, distribuir medo a todos, como bem demonstrou Michael Moore no seu premiado “Tiros em Columbine“. Aliás as notícias do medo estariam, segundo Moore, associadas a cultura protestante dos imigrantes europeus.

Por isso eu vou preferir a minha postura cética que escolhi espontaneamente ao longo dos anos e deixar meu wi-fi ligado. Vai ficar ligado pelo menos até algum estudo sério provar que ele faz mau a saúde. Uma explicação muito mais factível para a dor de cabeça é o estresse, a alimentação e a falta de consumo de água pura (e não aquelas águas que a Bárbara falou em seu blog) em quantidades adequadas. Depois de arrumar isso e continuar a ter dores de cabeça eu posso pensar em desligar o wi-fi, certo?

Ainda Sobre a Ocupação da Reitoria da USP

A reitoria da USP continua ocupada por alunos da universidade. Se compararmos com outros governo, o governo de José Serra tem um perfil mais firme, ou autoritário como prefere a oposição. A postura radical do movimento estudantil não é novidade, mas a postura mais firme do governo pode gerar uma relação conturbada pela radicalização dos dois lados. Dos manifestantes eu não espero posso esperar muito, pois são jovens. Espero que o governo demonstre sabedoria para negociar e resolver.

O Alexandre Gracioso escreveu em seu blog: Se os alunos não se deixassem levar pelos ardores ideológicos dos professores jurássicos da FFLCH

Não é bem assim, Alexandre. Eu estudei Ciências Sociais na FFLCH, e o perfil médio dos professores não é o professor decadente, barbudo e militante de ultra esquerda. No departamento de Ciência Política, onde tive maior vivência, eu me surpreendi com a quantidade de professores simpáticos à social democracia, por exemplo. Mas a maioria esmagadora não declara apoio a nenhum partido; é o tipo de coisa que não vale a pena para um acadêmico.

O princípio de diminuir a autonomia acadêmica não é tão absurdo assim quanto a universidade faz parecer. Tanto alunos quanto professores protestam, e de certa forma eles têm razão: querem defender um benefício que é a autonomia. Todos os anos o Legislativo aprova um orçamento para o ensino superior no Estado de S. Paulo, e as universidades gastam esta verba como bem entendem, sem consultar e sem prestar contas a ninguém.

Em uma analogia grosseira seria como uma família, em que o pai dá dinheiro para o filho estudar e o filho nunca é cobrado sobre como está gastando o dinheiro. Pior: se o pai aborda o filho sobre como andam os estudos, este reaje de maneira exagerada, dizendo que o pai é controlador e tal.

A Universidade argumenta que somente a própria Universidade pode decidir os rumos da educação superior no Estado e por isso o Legislativo, que representa a vontade da maioria, não deve participar do orçamento interno das universidades. Ou seja, a universidade recebe o dinheiro do contribuinte, e se nega a prestar contas de como este dinheiro é gasto. Parece grosseiro, mas o meio acadêmico acha que deve ser assim mesmo. Aliás o meio acadêmico também acha que o mesmo contribuinte deveria contribuir mais com a Universidade.

A professora Elizabeth Balbachevsky tem uma teoria sobre Ciência e Tecnologia que eu acho interessante. Segundo Balbachevsky quando a universidade investe mais em ciência aplicada os setores produtivos são impulsionados e têm ganho de produção. Logo a produção de bens tende a aumentar. Por outro lado a ciência não aplicada não tem esse tipo de impacto direto na economia.

Se a direção do governo é aumentar a transparência nos gastos do ensino superior, isso por si só já é positivo. Por aí eu já discordo das manifestações que ocorrem hoje na usp.

Se posteriormente o governo, ou o legislativo, decidirem intervir na maneira de destinar dinheiro ao ensino superior, destinando mais verba para a ciência aplicada no Estado de S. Paulo, isso certamente vai aumentar a possibilidade de ganhos produtivos, melhor competitividade do nosso setor produtivo, maior produção, menor desemprego, certamente maior arrecadação.

Esse assunto diz respeito a Universidade, mas diz respeito ao Legislativo decidir os rumos do ensino superior em São Paulo. Afinal a conta é paga pelo contribuinte.

Como é que se fala?

A primeira página do meu livro de português do 2º grau tratava do ruído na comunicação. O ruído é qualquer elemento que prejudique a decifragem da mensagem emitida. Às vezes o sotaque é um ruído.

Navegando pelo multiply encontrei um post de uma música muito chique que eu recomendo a todos. Foi apresentado pelo Tokikawa com o nome de “O Corno do Orkut“, que talvez não seja o nome original, mas eu achei que pegou muito bem. Recomendo a todos e talvez eu coloque em um dos meus podcasts 🙂

Algo que me chamou a atenção é que o Tokikawa reclama da pronúncia do cantor, pois segundo Tokikawa Orkut deveria se pronunciar com o sotaque anglófono e não como lusófono :-S Isso gerou uma rápida troca de mensagens que pode ser vista no própprio site dele, onde eu argumento que Orkut tem origem árabe, ou coisa do gênero, e que poderíamos pronunciar como brasileiros mesmo, e recebi de volta um link do próprio site indicando a “pronúncia correta” para orkut.

Perdi a discussão, mas achei curioso. Eu vou continuar a pronúnciar como todo mundo, mas só para evitar ruídos desnecessários. Quando lançaram o CD-ROM eu li a notícia logo cedo, afinal sempre fui aficionado por tecnologia. E eu li “cidi rom” antes de ouvir algo que me dói ao ouvido demais: “cedê rum”. Eu achei um absurdo o “rum” que todo mundo adotou como pronúncia oficial, e fiz minha batalha individual bravamente: pronunciava a nova sigla diferentemente de todos. Dizia “cedê rom”. Estava certo, eheh! Pena que ninguém ligava, ou pior, corrigia ou pedia para explicar se o meu “cedê rom” era diferente do “cedê rum”.

Discussão sobre padrão Struts

No guj está rolando uma discussão sobre o padrão de desenvolvimento web com struts 1.

http://www.guj.com.br/posts/list/58008.java

Eu não gosto do Struts 1 porque vejo todo mundo confuso com os conceitos dele, e simplesmente ignorando a maior parte das automatizações do framework.

Infelizmente ainda não vejo um novo padrão despontar no lugar do Struts 1. Como “os grandes” devem apontar para o Struts 2 ou jsf, estou estudando para entender melhor estes dois frameworks.