Mostrando postagens com marcador TTS. Mostrar todas as postagens
Mostrando postagens com marcador TTS. Mostrar todas as postagens

quinta-feira, 13 de janeiro de 2011

How-to: Proteja sua CPU com Python e festival

Você sabe quando o cooler de sua CPU vai falhar?
Nem eu.

Usando um modelo probabilístico adequado, como o Exponencial, podemos ter uma boa noção de quando esse evento ocorrerá,mas que não é nada prático, já que provavelmente você vai trocar o cooler antes do tempo, ou depois que ele queimar. O que quase aconteceu comigo semana passada. A base que prende o cooler quebrou, o dissipador se afastou da CPU, o suficiente para ela chegar à 87°C, quase queimando-a. Soou o alarme e eu desliguei o micro à tempo, evitando maiores danos.

Minha sorte foi ter escrito um script na semana anterior que aproveita as funcionalidades do lm-sensors para avisar verbalmente que algo não está bem. É bem simples e tem espaço para muitas melhorias que irei acrescentando aos poucos. Funciona e tem me atendido bem todo esse tempo.

Tem dois pré-requisitos:
lm-sensors: tutorial de uso e configuração por Carlos Morimoto.
festival: meu tutorial.

Daí, é só baixar esse arquivo, salvá-lo em uma pasta de sua preferência, dar permissão de execução com:

$chmod +x sentinel.py

E depois adicioná-lo ao crontab, com o seguinte comando:

crontab -e

0-59/10 * * * * /home/gama/scripts/sentinel.py 



O que fará o cron rodar o comando a cada 10 minutos.
E pronto, se o cooler falhar ou a CPU sobreaquecer, o sistema vai reclamar.

See ya!

domingo, 14 de fevereiro de 2010

The Dead Link Sketch Reloaded.

Motivação


O script Dead Link na sua versão pré-alfa, apresenta alguns efeitos colaterais:
  • De 5 em 5 minutos ele te avisa que o link caiu. Fica meio chato, para dizer o mínimo.
  • Ele não avisa que o link voltou, simplesmente ele para de avisar que o link está fora.
  • Se alguma aplicação usa o link no talo, ele dá um falso positivo. Essa resolução fica para a próxima versão.
Era só rodar o jDownloader que o nosso HAL disparava a avisar que "The link is no more...", que Deus nos livre.

Agora ele está um pouco mais inteligente, avisando apenas uma vez que o link caiu e avisando novamente quando o link está ok. Melhorou muito, não?

Segue abaixo a nova versão. É só substituir o texto no script anterior e pronto, não precisa nem alterar no crontab.

Implementação


#!/bin/sh
HOST_PING=208.67.222.222
ping $HOST_PING -c 1 &>/dev/null
if [ "$?" != "0" ] ; then
RESP=0
else
RESP=1
fi
if [ $RESP == 0 ]; then
if [ ! -e linkdown.lck ]; then
sh /home/oswaldo/scripts/speak.sh "The link is no more! The link ceased to be! It expired and gone to meet its maker! This is an ex link!"
touch linkdown.lck
fi
else
if [ -e linkdown.lck ]; then
sh /home/oswaldo/scripts/speak.sh "The link is up, sir!"
rm linkdown.lck
fi
fi
exit


Edite o seu script para que ele aponte para o speak.sh em sua máquina.
Pronto. Long life and prosper!

Posts relacionados:

The Dead Link Sketch, ou como saber se o link caiu.
Tenha seu próprio HAL com o festival
Novos arquivos de voz para o festival

sábado, 6 de fevereiro de 2010

The Dead Link Sketch ou como saber se o link caiu.

Idéia e motivação


Como eventualmente meu link cai, achei de bom tom que o micro fizesse o favor de me avisar quando isso ocorresse.

Como seria? Uma sirene? Não, muito ruído para pouca coisa. Um sino? Também não, pois isso não é motivo de comemoração.

Daí lembrei de uma ótima sketch do grupo Monty Python: The Dead Parrot Sketch, onde Mr. Praline, interpretado por John Cleese, tenta de todas as formas convencer o vendedor, vivido por Michael Palin, que o papagaio Norueguês Azul comprado há meia hora atrás está morto.

Implementação


Para que o micro fale, usaremos o bom e velho festival e o script speaker.sh já apresentado nesse post.
Depois criamos um novo script chamado testconn.sh com o seguinte texto.

$nano testconnection.sh

#!/bin/sh
DNS_PING=208.67.222.222
ping $DNS_PING -c 1 &>/dev/null
if [ "$?" != "0" ] ; then
sh /home/gama/scripts/speaker.sh 'The link is no more! The link ceased to be! It expired and gone to meet its maker! This is an ex link!'

fi
exit
^C

$chmod +x testconnection.sh


Daí, é só adicionar essa tarefa no crontab, para que o próprio sistema se encarregue de fazer a verificação, sem que tenhamos que usar os detestáveis loops infinitos (sim, eu os odeio), usando o seguinte comando:

$crontab -e

0-59/5 8-23 * * * /home/gama/scripts/testconn.sh

Para sair do editor, digite Shift + : e depois wq!, para salvar e sair.

Significado de cada campo:
0-59/5 -> O comando será rodado de 5 em 5 minutos
8-23 -> das 8 às 23 horas, porque de madrugada eu não quero saber se o link caiu, azar dele.
E os 3 asteriscos são para que ele rode todos os dias, meses e dias da semana, respectivamente.

E pronto, quando o link cair, "The link is no more..." será ouvido, que pena não ser a voz de Mr. Praline.

Até mais!

P.S. Dalai, este post é pra ver se você toma tento e põe o Linux pra rodar.

Posts relacionados:

Tenha seu próprio HAL com o festival

Novos arquivos de voz para o festival 
The Dead Link Sketch Reloaded

terça-feira, 2 de fevereiro de 2010

Novos arquivos de voz para o festival

Achou pouco ter apenas duas vozes para seu GNU/Linux? Eu, também. Aí, pesquisando pelo Google, achei no site do Instituto de Tecnologia de Nagoya, o projeto de text-to-speech HTS, que tem diversos arquivos de voz, muito menores que os do projeto Festvox, e com desempenho bem semelhante.

Baixe-os com os links abaixo:

http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_awb_arctic_hts-2.1.tar.bz2
http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_bdl_arctic_hts-2.1.tar.bz2
http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_clb_arctic_hts-2.1.tar.bz2
http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_rms_arctic_hts-2.1.tar.bz2
http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_slt_arctic_hts-2.1.tar.bz2
http://hts.sp.nitech.ac.jp/archives/2.1/festvox_nitech_us_jmk_arctic_hts-2.1.tar.bz2


Descompacte-os e salve na pasta /usr/share/festival/voices/us

Pronto, agora é só escolher uma e usá-la com este comando no festival.

festival>(voice_nome_da_voz)

Ou, pode criar um arquivo ~/.festivalrc com o seguinte conteúdo:

(set! voice_default 'voice_voz)


Onde você substitui voz pela sua preferida. Agora é só usar.

Posts relacionados:

Tenha seu próprio HAL com o festival