Peopleware – Parte 5

By paulovittor23, 19 de Setembro de 2009 20:27

Chapter 5: Parkinson’s Law Revisited

Em 1954 o escritor e administrador inglês Cyril Northcote Parkinson introduziu a conceito,  hoje conhecido como Lei de Parkinson, que diz que:

O trabalho se expande de modo a preencher o  tempo disponível para sua conclusão

Se você não soubesse que poucos gerentes recebem treinamento de gestão poderia pensar que  existe uma escola onde todos estudavam intensivamente sobre a Lei de Parkinson e suas ramificações.
Mesmo gerentes que não sabem nada sobre gestão se agarram a uma verdade que rege as pessoas  e suas atitudes em relação ao trabalho: a Lei de Parkinson.
A Lei de Parkinson dá aos gerentes a convicção mais forte possível de que a única maneira de  se concluir um trabalho é definindo uma data de entrega incrivelmente otimista.

A lei de Parkinson e a Lei de Newton

A lei de Parkinson está muito distante de ser evidente. Não é uma Lei no mesmo sentido que A  “Lei de Newton” é uma lei. Newton era um cientista. Ele investigava os efeitos da gravidade  de acordo com métodos estritamente científicos. Sua lei só foi proposta depois de rigorosas  verificações e testes. Continue reading 'Peopleware – Parte 5'»

Peopleware – Parte 4

By paulovittor23, 10 de Fevereiro de 2008 18:47

Chapter 4: Quality – If time permits

O caráter humano é dominado por um pequeno número de instintos básicos: sobrevivência, auto-estima, reprodução, território, entre outros. Estes são fixados diretamente nos “firmwares” de nossos cérebros. Nós podemos considerar estes instintos friamente, sem nenhuma paixão (como estamos fazendo agora), mas quando você os sente, sempre há paixão envolvida. Apenas um pequeno desafio a um desses valores pode ser perturbador.
Qualquer emoção forte em nós despertada é um sinal de que um dos instintos do cérebro foi ameaçado. Um gerente novato pode acreditar que trabalho pode ser realizado sem que as emoções das pessoas sejam envolvidas, mas se você possui alguma experiência como gerente você aprendeu o oposto. Nosso trabalho nos dá plena oportunidade de exercitar as emoções.

Continue reading 'Peopleware – Parte 4'»

Process.waitFor(), corrigindo o deadlock no Windows

By paulovittor23, 6 de Fevereiro de 2008 01:09

Process.waitFor(), corrigindo o deadlock no Windows

Há um tempo atrás eu estava desenvolvendo uma mini biblioteca para trabalhar a execução de comandos no SO de uma forma mais amigável, uma espécie de DSL. Criada a biblioteca realizei alguns testes em ambiente Linux. Tudo funcionamento dentro do planejado, hora de utilizá-la…

Bom, na primeira real utilização da biblioteca, em ambiente Win32 executei um “ipconfig /all”, e para minha surpresa, após todos os testes que havia realizado o comando simplesmente não respondeu.

Voltei ao Linux, mudei o comando para “ifconfig” e o comando executou sem problemas…

Comecei a debugar a biblioteca afim de descobrir o que estava causando o congelamento na execução do comando no SO… Após alguns minutos, cheguei finalmente ao método “waitFor()” da classe “Process”… pela definição esse método faz com que a thread corrente espere, caso necessário, até o processo representado pelo objeto Process terminar.

A questão é que o método “Runtime.exec()” (que devolve a instância do processo criado) cria um pipe para a saída padrão e quando um processo filho escreve uma quantidade grande de dados neste pipe, de modo a deixar o buffer cheio, o pipe é bloqueado pelo Windows até que o processo pai leia esse buffer. Logo, caso o processo pai nunca leia a saída padrão do processo filho teremos um deadlock.

Continue reading 'Process.waitFor(), corrigindo o deadlock no Windows'»

Pegando o Mac Address antes e depois do Mustang (Java 6)

By paulovittor23, 1 de Fevereiro de 2008 21:35

Pegando o Mac Address antes e depois do Mustang (Java 6)

Recentemente tive a necessidade de automatizar o preenchimento de um arquivo de configurações. Nesse arquivo, um dos valores que eram preenchidos era o Mac Address.
Logo me veio na cabeça a necessidade de executar o “ipconfig /all” (win) / “ifconfig” (linux) / “?” (mac)… capturar a saída, tratar o retorno, etc. Sem falar nas dificuldades de se fazer um parser independente do SO, do idioma do SO, ou seja, muitas variáveis que ao qualquer descuido fariam o parser falhar. =/
Bom, uma das novidades do Mustang é que a classe “java.net.NetworkInterface” traz um novo método para pegar o Mac Address de forma transparente. O método se chama “getHardwareAddress”. A seguir vou mostrar um exemplo de como pegar o Mac Address antes e depois do Java 6. Acredito que vá ficar claro a simplicidade e confiabilidade do novo método.

Continue reading 'Pegando o Mac Address antes e depois do Mustang (Java 6)'»

JDBC-LDAP Bridge Driver

By paulovittor23, 27 de Janeiro de 2008 19:05

JDBC-LDAP Bridge Driver

Com a finalidade de facilitar a utilização do serviço de diretórios LDAP a Novell desenvolveu uma ponte JDBC-LDAP. Essa ponte permite a utilização de SQL para fazer consultas ou atualizações em uma árvore de diretórios através de aplicações Java.

O site do projeto é o http://www.openldap.org/jdbcldap/

Eu não encontrei nenhum release do projeto já compilado (se alguém encontrar me avise XD), mas os arquivos fontes podem ser baixados por qualquer cliente CVS. No meu caso utilizei o TortoiseCVS ( http://www.tortoisecvs.org/ ).

Continue reading 'JDBC-LDAP Bridge Driver'»

Panorama Theme by Themocracy