Matando processos zombies no linux

La estava eu, quase agendando uma manutenção em alguns servidores pra eliminar processos zumbis, daqueles que manda um kill -9 e fica preso como <defunct>

Consegui resolver isso com dois comandos, o que me garantiu que vou conseguir dormir as minhas 5 ou 6 horas de sono de todas as noites sem interrupções =P

kill -9 $(ps -A -ostat,ppid | grep -e '[zZ]'| awk '{ print $2 }') #mata todos os processos defuntos
ps aux |grep nomedoscript |awk '{print $2}' |xargs kill -9 #mata os processos que restaram

 

resolvendo mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication

Problema do dia:

Servidor mysql usado a quase 10 anos, que mesmo tendo sido atualizado a versão, os usuários legados continuam com a hash antigamente utilizada (hoje chamada de old_password)

Para estes casos, basta trocar o tipo de autenticação na session, reescrever a senha e um flush nos privilegios.

SET SESSION old_passwords=0;
UPDATE mysql.user SET Password = PASSWORD('minhasenha') WHERE User = 'meuusuario';
FLUSH PRIVILEGES;

 

Internet sem limites

internet ilimitada, internet sem franquia, provedor sem limites, internet livre

Um projeto ao qual orgulhosamente faço parte visa criar uma lista colaborativa de pequenos provedores que não vão aderir a bizarra prática de impor limites de franquia na banda larga fixa.

http://internetsemlimites.github.io/

O código-fonte do site, cms e api de utilização estão disponíveis gratuitamente no github.

https://github.com/InternetSemLimites

Trocando o editor padrão do ubuntu

Não adianta, eu não consigo me acostumar a usar o nano, o vim até pode ser mais complexo no início mas é um verdadeiro canivete suiço.

Quando instalei o ubuntu (eu vivo trocando de distro :P) e fui executar um pull em um repositório git, me aparece aquele editor horrível.

Pra resolver isso, basta utilizar o alternatives pra trocar o editor.

O comando é:

sudo update-alternatives --config editor

ao digitar  a senha do usuário, basta escolher o editor pelo número e apertar enter =)

braz@localhost:~/Projetos/Repositorios/classes$ sudo update-alternatives --config editor
[sudo] senha para braz: ******

Existem 4 escolhas para a alternativa editor (disponibiliza /usr/bin/editor).

  Selecção   Caminho             Prioridade Estado
------------------------------------------------------------
* 0            /bin/nano            40        modo automático
  1            /bin/ed             -100       modo manual
  2            /bin/nano            40        modo manual
  3            /usr/bin/vim.basic   30        modo manual
  4            /usr/bin/vim.tiny    10        modo manual

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: a usar /usr/bin/vim.basic para disponibilizar /usr/bin/editor (editor) em modo manual

Entendendo as certificações para dispoditivos a prova d’agua

“Nos dias atuais contemporâneos de hoje em dia” (não resisti a piada) muito se fala em dispositivos a prova d’agua com certificações ip67, ip68, etc.

Porém uma dúvida comum é o que significam estas siglas.

Este sistema de proteção IP é definido pela norma internacional IEC 60529 que classifica o grau de proteção fornecido por um compartimento de equipamento elétrico/eletrônico contra objetos sólidos (como poeira) e líquidos (água, óleo, etc.).

Seu grau de proteção é definido pela sigla ip, seguido de um número de dois dígitos, aonde o primeiro é o grau de proteção contra sólidos e o segundo contra líquidos.

O primeiro número indica o grau de proteção contra objetos sólidos

O segundo número indica o grau de proteção contra líquidos

X: Não mensurado

X: Não mensurado

0: Sem proteção

0: Sem proteção

1 = protegido contra a entrada de objetos sólidos externos de diâmetro ? 50 mm

1 = Protegido contra gotejamento vertical

2 = protegido contra a entrada de objetos sólidos externos de diâmetro ? 12,5 mm

2 = Protegido contra gotejamento (inclinação de 15%)

3 = protegido contra a entrada de objetos sólidos externos de diâmetro ? 2,5 mm

3 = Protegido contra pulverização (inclinação de 60%)

4 = protegido contra a entrada de objetos sólidos externos de diâmetro ? 1 mm

4 = Protegido contra respingo

5 = protegido contra poeira (entrada limitada, sem depósitos prejudiciais)

5 = Protegido contra jato

6 = à prova de poeira

6 = Protegido contra jato potente
7 = Protegido contra imersão temporária (até 1 metro por 30 minutos)
8 = Protegido contra imersão contínua (acima de 1 metro de profundidade pelo período de tempo especificado pelo fabricante)

OBS: Em alguns casos, no lugar dos algarismos numéricos, podem ser substituídos pela letra X, referenciando que aquela situação não foi testada.

Exemplo: ipX6 significa que, apesar de aguentar jatos potentes de água, não possui qualquer garantia de resistência contra objetos sólidos.

Criar entities baseado no banco

Pra quem, assim como eu, prefere modelar o banco da forma tradicional ao invés de criar através das entities.

Considerando que:
– O namespace aonde vão ser gravadas as entities é Application\\Entity\
– As entities vão ser gravadas em module/Application/src/Application/Entity/

./vendor/doctrine/doctrine-module/bin/doctrine-module orm:convert-mapping --force --namespace="Application\\Entity\\" --from-database annotation ./module/Application/src/Application/Entity/

./vendor/doctrine/doctrine-module/bin/doctrine-module orm:generate-entities ./module/Application/src/Application/Entity/ --generate-annotations=true

 

InnoDB: Fatal : Cannot initialize AIO sub-system

La estava eu configurando um servidor ubuntu e o mysql teimava em não subir.

No log de erro tínhamos o seguinte:

InnoDB: Fatal : Cannot initialize AIO sub-system

Bem, parece que a vps que estou utilizando neste projeto não “gosta” muito do Asynchronous Input Output do kernel sendo necessário forçar o mysql a utilizar lib de terceiros (no meu caso a libaio)

Para isto, basta adicionar ao my.cnf

innodb_use_native_aio = 0

 

 

Como consultar a restituição do imposto de renda

Consultar restituição:

http://www.receita.fazenda.gov.br/aplicacoes/atrjo/consrest/atual.app/index.asp

Cronograma da restituição
http://www.receita.fazenda.gov.br/pessoafisica/restituicao/cronograma.htm