Tuning de performance

Maio 26, 2008

Eu estava escutando um podcast de Wally Dietrich, um Arquiteto de TI da IBM, ministrada no “Technical Leadership Exchange”, um evento interno da IBM que reúne os seus melhores profissionais  para discutir sobre temas de interesse corporativo e compartilhar informações. O podcast é sobre “Performance Tuning”. Achei bem interessante o mesmo e compartilho aqui algumas informações.

Wally mostra alguns estudos de caso, onde fizeram melhorias de performance em aplicativos, e mostra como deve ser feito essa melhora de performance atravéz de tuning.

Um tuning deve ser do tipo “Bottom Up”, ou seja, de baixo para cima, conforme mostra a figura a seguir:

Tunning de performance

Precisamos começar promovendo um tuning no Hardware e no Sistema Operacional, após isso vamos para o banco de dados, servidor web e de aplicação, e finalmente vamos para nosso código fonte.

Algumas ferramentas que podem nos ajudar com o tuning são:

Código fonte: Log4j, ferramentas de profiling
Web Server, Apache: Verificar logs, Webalizer
App Server, no caso, WAS: RPA, TPV e como sempre, os logs
Banco de dados (DB2): Design Advisor, Configuration Advisor, Explain, etc
Hardware e SO: nmon, top, ps, iostat, free, vmstat e os logs.

É importantíssimo deixar bem claro que o uso de boas práticas no desenvolvimento de uma aplicação e o uso da filosofia KISS, também impactam muito na performance de sua aplicação. Conheça as melhores práticas de desenvolvimento de software.

Boa sorte com seu tuning!


O que está no seu DNA?

Maio 21, 2008

No mundo de TI temos várias carreiras possíveis para se seguir. A decisão sobre qual você vai seguir, pode ser tomada basicamente olhando o que está no seu DNA, ou seja, você nasceu para fazer o que?

Com esta abordagem, podemos falar sobre 5 carreiras da seguinte forma:

Um arquiteto de TI – gosta de uma visão do todo
Um gerente de projetos – gosta de gerenciar tempo e dinheiro (budget)
Um consultor – Gosta de mostrar “como poderia ser”
Um desenvolvedor de software – gosta de criar produtos e tecnologias
Um especialista – precisa entender os detalhes

Vemos muitas pessoas fazem comparacões de “valor” que profissionais de carreiras diferentes agregam a um projeto. É importante saber que cada carreira tem seu valor para um projeto. Não se pode falar por exemplo que um arquiteto é mais importante que um Especialista, pois sem o especialista não se tem projeto, e assim por diante!

Um overview dos papéis dos profissionais em um projeto, é mostrado na seguinte figura:

O que está no seu DNA?

Enfim, qual sua característica? Compare os perfis e escolha!

Enjoy!


Criando um Datasource no WAS

Maio 19, 2008

Criando um Datasource no WASResolvi criar um tutorial rápido de como criar um Datasource no WAS (WebSphere Application Server).

O tutorial foi criado com base na versão 6. Mas é muito parecido como se cria na versão 5.

Pode ser baixado aqui -> Criando um Datasource no WAS.

Enjoy!


O modelo de currículo que nós queremos

Maio 14, 2008

UPDATED: criei uma postagem mais recente com um modelo de currículo mais novo, com comentários. Poderá ser baixado a partir de 20 de setembro de 2008 neste link: http://jmmwrite.wordpress.com/2008/09/19/modelo-de-curriculo-em-inglesmodelo-de-curriculo-em-ingles/

O modelo de curriculo que nos queremosEstou devendo para muita gente este modelo de currículo em Inglês e também, sempre que converso com alunos, eu fico de enviar o modelo… para resolver os meus problemas, resolvi criar esta postagem com o modelo de currículo que eu mostro nas palestras, encontros, eventos, etc.

Acho que vale a pena repetir aqui algumas das dicas que eu dou na apresentação:

  • Elabore um currículo enxuto (Objetivo). Os profissionais que vão avaliar seu currículo não tem muito tempo para isso. Se eles percebem “enrolação”, vão logo tratando de enviar o CV para a lixeira. Também não estão interessados em experiências profissionais que não adicionem nada ao candidato.
  • NUNCA minta. Vão te pegar na entrevista.
  • Não precisa carta de referência ou apresentação a não ser que seja solicitado ou ainda, que seja uma carta do PAPA ou do Linus Torvalds. :-)
  • Coloque somente dados relevantes ao emprego desejado. Colocar que você fez um curso de “ponto cruz” não vai agregar muita coisa… acredite!
  • Não use adjetivos: “Criativo, inovador, etc” (quem tem que te avaliar é o entrevistador, e não você mesmo)
  • Sempre use termos formais.
  • Não coloque pretensão salarial a não ser que seja solicitado
  • Em se tratando de uma vaga para uma posição de TI, colocar que você conhece Windows, Word, Winzip e Internet Explorer, ou ainda, colocar aquele cursinho de Windows 98 que você fez, é totalmente dispensável. Parte-se da premissa que você conhece tudo isso. (se não conhecer… tá feio)
  • Normalmente em TI, o currículo deve ser enviado em Inglês, mas na dúvida, envie um em Inglês e um em Português.
  • No nome do arquivo de seu currículo, Identifique-se colocando o seu nome, por exemplo Fulano_da_Silva_Resume.pdf.
  • Ao enviar o currículo por e-mail, identifique-se! Escreva no e-mail quem você é e por que está enviando o currículo.

Fique a vontade para criticar ou adicionar algo as dicas acima!

Faça o download do modelo aqui -> Modelo de currículo .

Enjoy!


Epiphany, um navegador super leve

Maio 13, 2008

Epiphany, um navegador super leve

Eu realmente aprecio softwares leves. Não gosto de ter muitos recursos que eu realmente não vou utilizar. Portanto, mantenho em meu desktop Linux o navegador Epiphany.

Quando atualizei meu Ubuntu para 8.04, o mesmo trouxe o firefox 3 consigo. Sei que o mesmo está na sua versão beta, portanto vai evoluir muito.

Algo que eu percebi, é que na versão 2 o Firefox ja utilizava mais recursos de processamento e memória que o Epiphany. Agora, na versão 3, atravéz da simples observação do comando TOP, percebo que o Firefox está consumindo mais recursos ainda do que o Epiphany.

Em desktops para usuários comuns, a disputa por processamento e memória pode não ser tão acirrada, mas para desenvolvedores que mantem um Eclipse, um banco de dados, e um servidor de aplicação abertos ao mesmo tempo, economizar um pouco seu processador e memória é uma boa idéia.

Conheça o Epiphany, sua página é esta: http://www.gnome.org/projects/epiphany/

Para instalar no Ubuntu:

sudo apt-get install epiphany

Enjoy!


Baixando e instalando o Tomcat 5.5 no Ubuntu 8.04

Maio 12, 2008

Baixando e instalando o Tomcat 5.5 no Ubuntu 8.04Particularmente eu prefiro baixar e instalar manualmente o Tomcat do que utilizar algum gerenciados de pacotes tal como o apt-get. Manualmente, colocamos tudo referente a ele no mesmo local e fica mais fácil de gerenciar nosso ambiente de desenvolvimento.

O primeiro passo é obter o Tomcat, para isso vá para http://tomcat.apache.org/download-55.cgi e procure pelo item “Core”. Selecione o arquivo tar.gz para baixar. Quando concluído você terá obtido o arquivo apache-tomcat-5.5.26.tar.gz.

Como root, vá para /opt , cole o arquivo que você baixou lá e descompacte-o com o comando:

tar -xvzf apache-tomcat-5.5.26.tar.gz

Será criada uma pasta chamada apache-tomcat-5.5.26. Sugiro criar um link para a mesma, em /opt, chamada tomcat com o comando:

ln -s apache-tomcat-5.5.26 tomcat

Em /opt você irá ter:

drwxr-xr-x 11 root root    4096 2008-05-08 19:08 apache-tomcat-5.5.26
lrwxrwxrwx  1 root root      20 2008-05-08 19:08 tomcat -> apache-tomcat-5.5.26

O próximo passo é configurar as variáveis de ambiente CATALINA_HOME e JAVA_HOME. A Catalina deve apontar para o diretório de instalação do Tomcat, e o Java, para o diretório de instalação do JAVA. No meu caso, para testar posso fazer assim:

export CATALINA_HOME=/opt/tomcat
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

Ai vou até o diretório bin do Tomcat (cd /opt/tomcat/bin), e executo o startup.sh com o comando:

./startup.sh

O passo final é ir até o navegador e testar atravéz do link:

http://localhost:8080/

Você deverá ver uma página default do Tomcat.

Para não precisar setar as variáveis de ambiente sempre que for iniciar o Tomcat, você pode proceder de duas formas:
1- Adicionando os comandos de export no script startup.sh
2- Adicionando no arquivo /etc/profile do seu Ubuntu.

Enjoy!


TkCVS – Cliente CVS realmente leve e funcional

Maio 10, 2008

TkCVS - Cliente CVS realmente leve e funcionalContinuando com minha política de utilizar softwares leves, encontrei e testei o TkCVS, que é um cliente para CVS com interface gráfica, muito rápido e eficaz. Tem versões para Linux, Windows e MacOS.

Sua página oficial é: http://tkcvs.sourceforge.net/

Tambem existe uma versão para SVN chamada TkSVN. Super recomendados!


off-topic: Quanta hipocresia no Brasil!

Maio 8, 2008

Quanta hipocresia no Brasil!Este é um post totalmente off-topic no estilo desabafo mesmo! Desculpe por qualquer palavra que faça o leitor se sentir ofendido, mas acho que todos devem concordar comigo.

Ando acompanhando as notícias diariamente e tem se falado muito do envolvimento do Deputado Paulo Pereira da Silva, o conhecido, Paulinho da força sindical num escandalo com o bndes.

O tal deputado estaria envolvido num esquema de beneficiamento para liberação de verbas do bndes para algumas prefeituras que segundo indícios, estavam dando certos “agrados” a ele. A notícia pode ser vista aqui.

O que me choca, e revolta, é o fato de eu ver algumas pessoas, que já se beneficiaram de crédito do BNDES para alguma coisa, criticando o deputado.

De forma alguma estou defendendo o ato do deputado. A questão aqui é: muitos destas pessoas que utilizaram o benefício do bndes, não utilizaram em suas empresas, mas sim, utilizaram na sua moradia, na sua casa de campo, na sua chácara, etc! O dinheiro do bndes deve ser utilizado em empresas, para seu crescimento e sustentabilidade, e não em benefício próprio, para isso existe o Construcard da Caixa por exemplo.

Então, como alguem que “trapaceia”, pode criticar outra pessoa que “trapaceia”?

Me descupem o desabafo, mas o Brasileiro é muito hipócrita mesmo!

Todo mundo critica os políticos, mas se estivessem lá, fariam a mesma coisa!

Viva o Brasil! O país dos espertos!

Don’t enjoy today, but cry. :’(


Instalando e configurando o PostgreSQL 8.3 no Ubuntu

Maio 8, 2008

OBS: Este Blog mudou de endereço, agora está em http://jmmwrite.blogspot.com/ . Veja mais posts sobre BD, TI e Carreira lá!

Instalando e configurando o PostgreSQL 8.3 no UbuntuNo meu ambiente de desenvolvimento, eu sempre utilizo dois bancos: o Postgres e o DB2. Basicamente devido ao fato de minha instalação de DB2 ser pesada pois tenho várias configurações de Data Warehouse e um banco muito carregado, o que torna o banco mais pesado para meu simples desktop. Então, para debugar meus softwares, vou com meu postgres levinho mesmo.

Minha idéia aqui é mostrar como instalar e configurar o PostgreSQL 8.3 no Ubuntu 8.04. As configurações são as mesmas para a instalação em Windows, a única diferença obvia é que você irá ter que ir ao site do postgres e baixar o Installer do Windows.

Vamos lá, iniciamos a instalação com o comando:

$ sudo apt-get install postgresql-8.3 postgresql-client-8.3

Recomendo também instalar o pgAdmin, que é uma ferramenta para administrar o postgres:
$ sudo apt-get install pgadmin3 pgadmin3-data

Algo que aconteceu comigo na migração para o Ubuntu 8.04, foi que tive que remover o Postgres 8.2 (apt-get purge postgresql-8.2) para conseguir iniciar o 8.3 corretamente. Se você concluir meus passos aqui e mesmo assim não conseguir conectar no Postgres, recebendo algum erro, provavelmente terá que dar o purge. (talvez com mais tempo de pesquisa eu poderia descobrir qual era o problema… se alguem passar por isso me diga please).

O próximo passo é setar uma senha para o usuário postgres com os seguintes comandos:

sudo su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD ‘password’;
\q

O primeiro comando chama o utilitário psql com o usuário postgres e conecta no postgres especificamente no database postgres.
O segundo comando altera a senha do usuário postgres.
O terceiro comando finaliza o psql.
Note que a palavra password deve ser substituida pela password que você desejar.

Feito a instalação e mudança de senha do usuário postgres, você estará apto a desenvolver um trabalho no seu computador conectando normalmente ao postgres, porém, se a idéia é disponibilizar o acesso ao banco para receber conexões de outras máquinas, você vai ter que alterar dois arquivos para isso. Para isso, vá para o diretório /etc/postgres/8.3/main

Edite o arquivo postgresql.conf

Na linha listen_addresses, troque o localhost por *, ficando a linha assim:

listen_addresses = ‘*’

Dessa forma seu postgres vai “escutar” não só conexoes provenientes da sua própria máquina.

A próxima configuração no mesmo arquivo é habilitar a encriptação de passwords, para fazer isso descomente a linha abaixo simplesmente removendo o # da frente dela:

password_encryption = on

Finalmente a próxima configuração é no arquivo pg_hba.conf. Neste arquivo você consegue restringir o acesso ao seu banco de dados por IP. Normalmente queremos liberar o acesso para todos os IPs em uma faixa, no meu exeplo, quero liberar para todas as máquinas da rede 10.5.2.*, então eu adiciono a seguinte linha no meu pg_hba.conf:

host    all    all    10.5.2.0    255.255.0.0    md5

Feito isso, basta reiniciar o postgres com o comando:

sudo /etc/init.d/postgresql-8.3 restart

Enjoy!


Um pequeno exemplo de especificação “porca” by Microsoft

Maio 7, 2008

Um pequeno exemplo de especificação porca

Esses dias eu estava brincando com o AMSN, que é um clone de MSN Messenger para Linux que funciona perfeitamente, e percebi que na janela de chat, assim como no MSN tradicional, temos um botão que chama a atenção do nosso contado, fazendo um barulho na janela do mesmo e causando um efeito visual.

O interessante, é pensar como isso foi implementado.

Se você esta utilizando o MS MSN e chama a atenção de um contato, você não consegue chamar novamente aproximadamente pelos próximos 10 segundos.

Se você está utilizando o AMSN, você consegue ficar clicando no botão “Chamar a atênção” sem problemas, e vai realmente ficar chamando a atenção no computador de seu contato.

Ai podemos pensar, como que os engenheiros de software da Microsoft planejaram a implementação do “Chamar a atênção”?

Tudo indica que foi da pior forma possível. Eles resolveram implementar o controle que impossibilita uma pessoa ficar chamando atênçao na sua própria Janela. Ninguem jamais pensou que alguem poderia criar a funcionalidade num outro programa qualquer e se aproveitar dela para pentelhar contatos.

Que especificação “porca” não?