quarta-feira, 5 de outubro de 2011

Para quem gosta de quebrar a cabeça


Puzzle Para quem gosta de quebrar a cabeça

Esse é um pequeno quebra cabeça, quem descobrir alguma solução comente.

Vamos ver quem mata esse problema.
 

 

 
 
 


Vivendo e aprendendo...


 

Vivendo e aprendendo...sempre!
 
 
ASNO  


No Curso de Medicina, o professor se dirige ao aluno e pergunta:
- Quantos rins nós temos?
- Quatro! Responde o aluno.  
- Quatro? Replica o professor, arrogante, daqueles que sentem prazer em tripudiar sobre os erros dos alunos.
- Tragam um feixe de capim, pois temos um asno na sala. Ordena o professor a seu auxiliar.
- E para mim um cafezinho! Replicou o aluno ao auxiliar do mestre.
 O professor ficou irado e expulsou o aluno da sala. O aluno era Aparício Torelly Aporelly (1895-1971), o 'Barão de Itararé'. Ao sair da sala, o aluno ainda teve a audácia de corrigir o furioso mestre:
 - O senhor me perguntou quantos rins 'NÓS TEMOS'. 'NÓS' temos quatro: dois meus e dois seus. 'NÓS' é uma expressão usada para o plural.Tenha um bom apetite e delicie-se com o capim.
                                                                         Moral da História:


A VIDA EXIGE MUITO MAIS COMPREENSÃO DO QUE CONHECIMENTO.  



 


A ROUPA FAZ A DIFERENÇA?  


 Sem maiores preocupações com o vestir, o médico conversava descontraído com o enfermeiro e o motorista da ambulância, quando uma senhora elegante chega e de forma ríspida, pergunta:
- Vocês sabem onde está o médico do hospital?
 Com tranqüilidade o médico respondeu:
- Boa tarde, senhora! Em que posso ser útil?  
Ríspida, retorquiu:
- Será que o senhor é surdo? Não ouviu que estou procurando pelo médico?  
Mantendo-se calmo, contestou:
- Boa tarde, senhora! O médico sou eu, em que posso ajudá-la ?!?!  
- Como?!?! O senhor?!?! Com essa roupa?!?!...
- Ah, Senhora! Desculpe-me! Pensei que a senhora estivesse procurando um médico e não uma vestimenta....
 - Oh! Desculpe doutor! Boa tarde! É que... Vestido assim, o senhor nem parece um médico...
- Veja bem as coisas como são...- disse o médico -... as vestes parecem não dizer muitas coisas, pois quando a vi chegando, tão bem vestida, tão elegante, pensei que a senhora fosse sorrir educadamente para todos e depois daria um simpaticíssimo "boa tarde!"; como se vê, as roupas nem sempre dizem muito...


Moral da História:
UM DOS MAIS BELOS TRAJES DA ALMA É A EDUCAÇÃO.  
 
 




BOA RESPOSTA


 Um mecânico está desmontando o cabeçote de uma moto, quando ele vê na oficina um cirurgião cardiologista muito conhecido. Ele está olhando o mecânico trabalhar. Então o mecânico pára e pergunta:
- 'Ei, doutor, posso lhe fazer uma pergunta?'  
O cirurgião, um tanto surpreso, concorda e vai até a moto na qual o mecânico está trabalhando. O mecânico se levanta e começa:
- "Doutor, olhe este motor. Eu abro seu coração, tiro válvulas, conserto-as, ponho-as de volta e fecho novamente, e, quando eu termino, ele volta a trabalhar como se fosse novo. Como é então, que eu ganho tão pouco e o senhor tanto, quando nosso trabalho é praticamente o mesmo?"  
Então o cirurgião dá um sorriso, se inclina e fala bem baixinho para o mecânico:
- 'Você já tentou fazer como eu faço, com  o motor funcionando?'


Moral da História:
"QUANDO A GENTE PENSA QUE SABE TODAS AS RESPOSTAS, VEM A VIDA E MUDA TODAS AS PERGUNTAS."  
 
 



 
 
MUITA CALMA!


 Entra um senhor desesperado na farmácia e grita:
- Rápido, me dê algo para a diarréia! Urgente!  
O dono da farmácia, que era novo no negócio, fica muito nervoso e lhe dá o remédio errado: um remédio para nervos. O senhor, com muita pressa, pega o remédio e vai embora.  
Horas depois, chega novamente o senhor que estava com diarréia e o farmacêutico lhe diz:
- Mil desculpas senhor. Creio que por engano lhe dei um medicamento para os nervos, ao invés de algum remédio para diarréia. Como o senhor está se sentindo?  
O senhor responde:
- Cagado... mas tô tranquilo.
                                                                         Moral da História:


"POR MAIS DESESPERADORA QUE SEJA A SITUAÇÃO, SE ESTIVER CALMO, AS COISAS SERÃO VISTAS DE OUTRA MANEIRA".  
 
 




PROBLEMA É SÉRIO
 


O sujeito vai ao psiquiatra
- Doutor - diz ele - estou com um problema: Toda vez que estou na cama, acho que tem alguém embaixo. Aí eu vou embaixo da cama e acho que tem alguém em cima. Pra baixo, pra cima, pra baixo, pra cima. Estou ficando maluco!
- Deixe-me tratar de você durante dois anos, diz o psiquiatra. Venha três vezes por semana, e eu curo este problema.
- E quanto o senhor cobra? - pergunta o paciente.
- R$ 120,00 por sessão - responde o psiquiatra.
- Bem, eu vou pensar - conclui o sujeito.  
Passados seis meses, eles se encontram na rua.
- Por que você não me procurou mais? - Pergunta o psiquiatra.
- A 120 paus a consulta, três vezes por semana, durante dois anos, ia ficar caro demais, ai um sujeito num bar me curou por 10 reais.
- Ah é? Como? Pergunta o psiquiatra.
O sujeito responde:
- Por R$ 10 ,00 ele cortou os pés da cama...


Moral da História:
MUITAS VEZES O PROBLEMA É SÉRIO, MAS A SOLUÇÃO PODE SER MUITO SIMPLES!


          HÁ UMA GRANDE DIFERENÇA ENTRE FOCO NO PROBLEMA E FOCO NA SOLUÇÃO. 
 






segunda-feira, 3 de outubro de 2011

Gerenciamento de TI com XGH (eXtreme Go Horse Process)

eXtreme Go Horse Process (XGH)



Finalmente eu encontrei algo que se encaixa perfeitamente na minha experiência profissional, ano após ano escutando uma hipocrisia muito bem tramada e agora eu finalmente achei algo que retrata a realidade da vida de um desenvolvedor.

No blog gohorseprocess.wordpress.com eu consegui encontrar uma definição documentada de como eu trabalhei todos esses anos.

Simplesmente totalmente excelente.

Vejam alguns trechos da definição da eXtreme Go Horse Process:

1- Pensou, não é XGH.

XGH não pensa, faz a primeira coisa que vem à mente. Não existe segunda opção, a única opção é a mais rápida.

4- XGH é totalmente reativo.

Os erros só existem quando aparecem.

5- XGH vale tudo, só não vale dar o toba.

Resolveu o problema? Compilou? Commit e era isso.

7- XGH não tem prazo.

Os prazos passados pelo seu cliente são meros detalhes. Você SEMPRE conseguirá implementar TUDO no tempo necessário (nem que isso implique em acessar o BD por um script malaco).

9- Seja autêntico, XGH não respeita padrões.

Escreva o código como você bem entender, se resolver o problema, commit e era isso.

10- Não existe refactoring, apenas rework.

Se der merda, refaça um XGH rápido que solucione o problema. O dia que o rework implicar em reescrever a aplicação toda, pule fora, o barco irá afundar (Vide Axioma 8).

12- Se iluda sempre com promessas de melhorias.

Colocar TODO no código como uma promessa de melhoria ajuda o desenvolvedor XGH a não sentir remorso ou culpa pela cagada que fez. É claro que o refactoring nunca será feito (Vide Axioma 10).

14- XGH é atemporal.

Scrum, XP… tudo isso é modinha. O XGH não se prende às modinhas do momento, isso é coisa de viado. XGH sempre foi e sempre será usado por aqueles que desprezam a qualidade.

19- Se tiver funcionando, não rela a mão.

Nunca altere, e muito menos questione um código funcionando. Isso é perda de tempo, mesmo porque refactoring não existe (Vide Axioma 10). Tempo é a engrenagem que move o XGH e qualidade é um detalhe desprezível.

20- Teste é para os fracos.

Se você meteu a mão num sistema XGH, é melhor saber o que está fazendo. E se você sabe o que está fazendo, vai testar pra que? Testes são desperdício de tempo, se o código compilar, é o suficiente.

21- Acostume-se ao sentimento de fracasso iminente.

O fracasso e o sucesso andam sempre de mãos dadas, e no XGH não é diferente. As pessoas costumam achar que as chances do projeto fracassar utilizando XGH são sempre maiores do que ele ser bem sucedido. Mas sucesso e fracasso são uma questão de ponto de vista. O projeto foi por água abaixo mas você aprendeu algo? Então pra você foi um sucesso!

Quem um dia já programou em uma empresa com certeza está sentindo uma empatia forte.

Aquele abraço.


quarta-feira, 29 de junho de 2011

Linux DHCP Server atribuindo IP pelo Option-82 Circuit-ID



Instalando o DHCPD no linux (UBUNTU/DEBIAN)

1º ) Instalando DHCPD

# apt-get install dhcp3-server

2º) Configurando syslog

# vi /etc/rsyslog.d/S50default.conf

Inserir as linhas:

#
#  DHCP3-SERVER LOG
#
local7.debug            /var/log/dhcpd.log


3º) Criar arquivo de log

# touch /var/log/dhcpd.log

3º) Reiniciar o SYSLOG:

# service rsyslog restart

4º) Inserir no dhcpd.conf a linha:

log-facility local7;


5º) Iniciar o DHCP Server:

#/etc/init.d/dhcp3-server start


6º) Realizando DEBUG:

Inserir no dhcpd.conf o comando para debug:

log ( info, option agent.circuit-id );


Isso fará com quem apareça no log /var/log/dhcpd.log as informações do client dhcp, mas isso apenas se ocorrer o lease do ip!!!
Então o ideal é criar uma configuração bem básica que atribua um ip para o cliente, apenas para poder ver no log as informaçãos do pedido DHCP do cliente.
 

Exemplo: root@ubuntu:/etc/dhcp3# cat dhcpd.conf
 

ddns-update-style none;
option domain-name "meudomain";
option domain-name-servers 8.8.8.8;

default-lease-time 600;
max-lease-time 7200;

# habilitar local7 como dhcp no syslog
log-facility local7;

subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.10 192.168.20.20;
  option routers 192.168.20.1;
}

# ELE SO LOGA NO OFFER
log( info, option agent.circuit-id);


Verificar no LOG as informações de circuit-id:

# tail –f /var/log/dhcpd.log

Jun 29 10:45:06 ubuntu dhcpd: olt1-gpon xpon 0/1/0/0:0.40.40
Jun 29 10:45:06 ubuntu dhcpd: DHCPREQUEST for 192.168.20.40 from 00:11:11:90:5b:29 (clientpc) via eth0
Jun 29 10:45:06 ubuntu dhcpd: DHCPACK on 192.168.20.10 to 00:11:11:90:5b:29 (clientpc) via eth0




 
Também é possível verificar no leases:

root@ubuntu:/etc/dhcp3# tail -f /var/lib/dhcp3/dhcpd.leases
  starts 3 2011/06/29 13:45:06;
  ends 3 2011/06/29 13:55:06;
  cltt 3 2011/06/29 13:45:06;
  binding state active;
  next binding state free;
  hardware ethernet 00:11:11:90:5b:29;
  uid "\001\000\021\021\220[)";
  option agent.circuit-id "olt1-gpon xpon 0/1/0/0:0.40.40";
  client-hostname "clientpc";

Este circuit-id está sendo inserido como string pelo roteador.


Agora que sabemos qual o circuit-id, podemos criar uma configuração para entregar os IPs baseados no circuit-ID de cada usuário:


ddns-update-style none;
option domain-name "mydomain";
option domain-name-servers 8.8.8.8;

default-lease-time 600;
max-lease-time 7200;

# habilitar local7 como dhcp no syslog
log-facility local7;

subnet 192.168.20.0 netmask 255.255.255.0 {
  option routers 192.168.20.1;

  class "uservlan40" {
        match if option agent.circuit-id = "olt1-gpon xpon 0/1/0/0:0.40.40";
  }

  pool {
        range 192.168.20.40;
        allow members of "uservlan40";
  }

  class "uservlan30" {
        match if option agent.circuit-id = "olt1-gpon xpon 0/1/0/0:0.30.30";
  }

  pool {
        range 192.168.20.30;
        allow members of "uservlan30";
  }
}

# ELE SO LOGA NO OFFER
log( info, option agent.circuit-id);



Também é interessande deixar o WIRESHARK capturando pacotes, e colocar como filtro "bootp" para filtrar apenas os pacotes de DHCP. Pelo wireshark é possível ver todas as options do pacote DHCP, circuit-id e remote-id.




Linux Ubuntu losing static IP address on disconnect

If you are losing the interface static IP address on disconnect in your Linux Ubuntu 9.x , this happens because Ubuntu has its own network manager and probably you're trying to configure the static IP in the usual way, editing the config file /etc/network/interfaces.

There are two solutions:


1) Use the Network-Manager

1.1) Remove all manually configurations from /etc/network/interfaces

The file  /etc/network/interfaces  should be like this:

auto lo
iface lo inet loopback

 1.2) Configure your network interface static IP address through the Network-Manager in Gnome panel.

1.3) Restart Network-Manager service:

# service network-manager restart
 

2) Stop Network-Manager Service

2.1) Stop Network-Manager service with:


# service network-manager stop

2.2) To permanently disable Network-Manager
edit /etc/init/network-manager.conf and comment the line

## exec NetworkManager

2.3) Configure your network in the usual way (manually), editing /etc/network/interfaces

# vi /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1

Restart the network service:


# ./etc/init.d/networking restart

For more information about this issue: 
  1. http://en.kioskea.net/faq/979-having-a-static-ip-address-under-ubuntu-8-10
  2. http://www.cyberciti.biz/faq/setting-up-an-network-interfaces-file/

I hope this information helps.





Atualização DELL INSPIRON 15R com Update para Windows 10 22H2 travado em 61% ou 99%

 Como atualizar notebook DELL INSPIRON 15R com Windows 10 que está com a atualização travada em 61% ou 99%: Processo de atualização manual d...