programando no editor nano

O nano é um editor de textos muito leve e simples que funciona no terminal. Assim como outros editores terminal-based, podemos customizá-lo para facilitar a escrita de programas.
O nano já traz um arquivo de configuração como exemplo. Ele se localiza em /usr/share/nano/examples, então, se você quiser usar esse exemplo e modificar (o arquivo já vem bastante comentado), faça o seguinte:
$ cp /usr/share/nano/examples/nanorc.sample ~/.nanorc
$ gedit ~/.nanorc
O meu .nanorc está da seguinte maneira:
set autoindent
set brackets “”‘)>]}”
set matchbrackets “(<[{)>]}”
set mouse
include “/usr/share/nano/nanorc.nanorc”
include “/usr/share/nano/c.nanorc”
include “/usr/share/nano/python.nanorc”
include “/usr/share/nano/java.nanorc”
include “/usr/share/nano/sh.nanorc”
renomear arquivos em massa com shell script
Muitas vezes, obtemos arquivos com nomes bastante estranhos. Se você baixar imagens diretamente de álbums do Orkut, os títulos dos arquivos serão vários caracteres randômicos. Isso pode tornar a identificação do arquivo um pouco difícil. Algumas câmeras digitais também dificultam a identificação do arquivo, pois, em vez de criar prefixos que identificassem circunstâncias relevantes das fotos, elas criam prefixos inúteis. Ex: DSC00845.JPG (Câmeras da Sony).
Através de um pequeno script, podemos renomear em massa arquivos de uma mesma pasta. Veja o script abaixo:
#!/bin/sh
if [ $# -eq 2 ]
then
i=0
files=`ls -1 $1`
for file in $files
do
filename="$file"
fileextension=$(echo $filename | awk -F . '{print $NF}')
echo "$filename will be renamed to $2-$i.$fileextension"
i=$((i+1))
done
echo
echo "Do you really want to rename these files? (y/n)"
read yesno
if [ "$yesno" = "y" ]
then
i=0
files=`ls -1 $1`
cd $1
for file in $files
do
filename="$file"
fileextension=$(echo $filename | awk -F . '{print $NF}')
echo "renaming $filename to $2-$i.$fileextension ..."
mv $filename $2-$i.$fileextension
i=$((i+1))
done
else
exit
fi
elif [ $# -ne 2 ]
then
echo "Usage:"
echo "$0 (dir) (new_prefix)"
echo "(dir) -> directory where the files that will be renamed are located"
echo "(new_name) -> the pattern name"
fi
A usagem desse script é bem simples. Cole o código acima em algum editor de texto e salve o arquivo. Aqui eu o armazenei como massrename.sh. Agora abra um terminal e vá para o diretório onde o script se localiza. Estando no diretório correto, digite:
$ ./massrename.sh <diretório onde se localizam os arquivos a serem renomeados> <prefixo>
Veja um exemplo:
$ ./massrename.sh /home/lucas/pics/aniversario bday_lucas
De acordo com o exemplo, os arquivos da pasta /home/lucas/pics/aniversario serão renomeados para: bday_lucas-0.JPG, bday_locas-1.JPG, etc…
checar atualização em páginas com shell script
Nessa semana, o resultado do vestibular 2010.1 da UFC saiu. Graças a Deus eu passei. Mas, antes disso, eu sempre ficava checando a página da CCV (Comissão Coordenadora de Vestibular) para ver se eu já poderia olhar a lista dos aprovados.
Mas, então, tive uma ideia: “Por que não faço um script que faça esse trabalho pra mim?”. Então pensei em como faria o tal script e assim o fiz:
O script baixa a página sem o resultado e usa ela como um modelo. De 5 em 5 minutos, a página é baixada novamente, sendo, então, comparada com a página modelo. Se houver mudança, o usuário é alertado, senão o processo é reiniciado.
pagina=http://www.ccv.ufc.br/newpage/vtb/vtb2010/vestib2010.php #mude aqui modelo=modelo.php temp=temp.php alerta=acorda.mp3 #mude aqui delay=300 clear wget -q $pagina -O $modelo while [ 1 = 1 ] do echo "Checando a página..." wget -q $pagina -O $temp cmp -s $modelo $temp if [ $? = 0 ] then echo "Não houve mudança. Daqui a $delay segundos haverá uma nova checagem." echo "última checagem: " date echo else echo "HOUVE MUDANÇA!" echo "Para sair, digite CTRL + C" mplayer -loop 0 $alerta exit fi rm $temp sleep $delay done
OBS: Para me alertar, eu abri um sinal sonoro usando o mplayer. Caso você queira apenas um alerta visual, tente usar xdialog.
Introdução ao Zilog Z80
Antes de você ler esse artigo, é bom que você tenha conhecimentos de sistemas numéricos, conversão de bases etc, pois tudo isso será útil ao trabalhar com eletrônica digital e programação em baixo nível.
instalando o lamp no ubuntu karmic koala
Simples e rápido:
Abra o terminal e digite:
sudo apt-get install lamp-server^
Voltando à ativa
Nesse ano, devido ao Vestibular, deixei de atualizar este blog. Mas, se Deus quiser, no próximo ano, voltarei a escrever artigos para o ldev. Além de posts técnicos, tentarei escrever alguns textos offtopic, para não perder o hábito de escrever.
Obrigado e boas festas!
estruturas de dados – resumo teórico
Lista linear
Lista linear é uma estrutura de dados dinâmica cujos elementos estão organizados de maneira seqüencial. São estruturas flexíveis, que podem crescer ou diminuir durante a execução do programa, de acordo com a demanda.
Programação orientada a objetos com Java – Objetos
Antes de tudo, é bom termos em mente a definição da programação orientada a objetos (POO). A POO é um dos vários paradigmas de programação. De acordo com a Wikipedia, um paradigma de programação é a visão que o programador possui sobre a estruturação e execução do programa.
Esse paradigma trabalha com relações entre objetos, visando o melhor conjunto de relações para formar um programa. Neste post, será definido algumas das relações entre objetos, além de algumas características dos objetos.
ATI IXP Sb4×0
Estou escrevendo este post através de um Ubuntu Linux rodando num Acer Aspire 3050-1458. O dispositivo de aúdio que veio nesse notebook é o ATI IXP Sb4×0. Infelizmente, esse dispositivo não vem funcionando no Linux.
Para fazer essa placa funcionar, faça o seguinte:
a) Compile e configure a última versão do ALSA. Para isso, você deve ter o gcc instalado e configurado. Caso tenha dúvidas sobre como compilar, veja esta página.
b) Abra o arquivo /etc/modprobe.d/sound e adicione a seguinte linha:
options snd-hda-intel model=acer-aspire
c) Reinicie o computador.