sexta-feira, 17 de outubro de 2008

Será que atualizou?

Está esperando resultado do vestibular? Acompanhando a emcomenda no site dos correios? Você não desgruda da tecla F5? Seus problemas ACABARAM!!!

Este script deixa você calmo e tranqüilo fazendo seu trabalho que ele fica 1 vez por minuto verificando se o site foi atualizado para você!

Uma Dica! Se você usa Gnome, troque os "kdialog" por "gdialog" ;)


#!/bin/bash
# Verify if website was Updated
#
# Copyright (C) 2008 Thomaz de Oliveira dos Reis
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

#Tempo de espera para cada download.
TEMPO=1m
#Taxa de erro para desistir...
TAXA_ERRO=3

ORIGINAL="/tmp/file.original.$$"
NOVO="/tmp/file.novo.$$"
ERRO=0
if ! wget "$1" -O $ORIGINAL
then
kdialog --msgbox "Não consegui baixar a página! tente novamente!"
rm $ORIGINAL $NOVO
exit 1
fi
cp $ORIGINAL $NOVO

while diff $ORIGINAL $NOVO
do
sleep $TEMPO
mv $NOVO $ORIGINAL
if ! wget "$1" -O $NOVO
then
ERRO=$(( $ERRO + 1 ))
if [ "$ERRO" == "$TAXA_ERRO" ]
then
kdialog --msgbox "O site \"$1\" está inacessível. O script parou."
rm $ORIGINAL $NOVO
exit 1
fi
cp $ORIGINAL $NOVO
fi
done

kdialog --msgbox "\"$1\" Foi atualizado!"

sexta-feira, 28 de março de 2008

Extract Script

Esse script é para facilitar a vida de quem usa muito os terminais do Linux. Sempre que você vai extrar um arquivo você tem que:

1- Verificar o formato do arquivo
2- Descobrir o programa que descompacta esse formato
3- Descobrir o processo de descompactar o arquivo
4- Descobrir se quando descompactado ele vai colocar tudo em uma pasta já ou não.
5- Descompactar na forma possível
6- Descobrir o nome da pasta aonde os arquivos extraídos ficaram

Então fiz esse script que resume esses 6 passos em apenas 1:

extract arquivo.qualquer_coisa


ele extrai o arquivo no formato que for e ainda MELHOR: se os arquivos não foram criados com uma pasta raiz, ao invés de ver todos seus arquivos descompactados jogados no seu desktop, ele cria a pasta ANTES e extrai os arquivos lá dentro.

e depois diz aonde ele está ;)

Por enquanto ele suporta apenas tar.gz, tar.bz2, zip e rar... é facilmente extensível e o código está bem comentado para ajudar a todos nessa tarefa

#!/bin/bash
# Extract - Extract many formats of files, and create a root dir
# if doesn't exists
#
# Copyright (C) 2008 Thomaz de Oliveira dos Reis
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

main_execute(){
# Parameters: 1- Command to get root directory[ies] inside the compressed file
# 2- Filename without extension
# 3- Extract command for the previous directory
# 4- Extract command for this directory
DIRETORIO=`eval $1`
if (( `echo "$DIRETORIO" | wc -l` > 1 ))
then
DIRETORIO=$2

if ! [ -d $DIRETORIO ]
then
mkdir $DIRETORIO
fi

cd $DIRETORIO
eval $3 >/dev/null
else
eval $4 >/dev/null
fi
echo "File(s) extracted at: $DIRETORIO"
}

tar_execute(){
# 1- Command to get root directory[ies] inside the compressed file
P1="tar -tf \"$1\" | cut -f1 -d/ | uniq"
# 2- Filename without extension
P2=`basename $1 | sed 's#.tar.gz$##g;s#.tar.bz2$##g;s#.tgz$##g'`
# 3- Extract command for the previous directory
P3="tar -$2xf \"../$1\""
# 4- Extract command for this directory
P4="tar -$2xf \"$1\""
# Running
main_execute "$P1" "$P2" "$P3" "$P4"
}

zip_execute(){
# 1- Command to get root directory[ies] inside the compressed file
P1="unzip -l \"$1\" | tr -s ' ' | cut -f5- -d' ' | sed 's#Name##g;s#-*##g;/^ *$/d' | cut -f1 -d/ | uniq"
# 2- Filename without extension
P2=`basename $1 | sed 's#.zip$##g'`
# 3- Extract command for the previous directory
P3="unzip \"../$1\""
# 4- Extract command for this directory
P4="unzip \"$1\""
# Running
main_execute "$P1" "$P2" "$P3" "$P4"
}

rar_execute(){
# 1- Command to get root directory[ies] inside the compressed file
P1="unrar vb \"$1\" | cut -f1 -d/ | uniq"
# 2- Filename without extension
P2=`basename $1 | sed 's#.rar$##g'`
# 3- Extract command for the previous directory
P3="unrar x \"../$1\""
# 4- Extract command for this directory
P4="unrar x \"$1\""
# Running
main_execute "$P1" "$P2" "$P3" "$P4"
}

# your_new_extension(){
# # 1- Command to get root directory[ies] inside the compressed file
# P1="the list of files, one per line, with directories, inside $1 | cut -f1 -d/ | uniq"
# # 2- Filename without extension
# P2=`basename $1 | sed 's#.YOUR_NEW_EXTENSION$##g'`
# # 3- Extract command for the previous directory
# P3="extract command \"../$1\""
# # 4- Extract command for this directory
# P4="extract command \"$1\""
# # Running
# main_execute "$P1" "$P2" "$P3" "$P4"
# }

if (( $# < 1 )) #Any file given?
then
echo "Missing files."
echo "Usage: $0 files."
exit 1
fi

while (( $# > 0 )) #Main Loop
do

if ! [ -f $1 ]
then
echo "File $1 does not exists!"
else
OK=0

if echo extracting $1 | grep tar.gz$ || echo $1 | grep tgz$
then
tar_execute $1 z
OK=1
fi

if echo extracting $1 | grep tar.bz2$
then
tar_execute $1 j
OK=1
fi

if echo extracting $1 | grep zip$
then
zip_execute $1
OK=1
fi

if echo extracting $1 | grep rar$
then
rar_execute $1
OK=1
fi

#if echo extracting $1 | grep YOUR_NEW_EXTENSION$
#then
# YOUR_NEW_EXTENSION $1
# OK=1
#fi

if [ OK == 0 ]
then
echo "Sorry, I don't know what to do with $1"
echo "What do you think about extending this script to support it? :)"
fi
fi

shift 1
done

quarta-feira, 19 de dezembro de 2007

ogg2mp3

Comprei um desses Transmissores FM para carro com "Mp3 player", e cai num problema já que toda minha coleção de música estava em OGG.

Primeiro pensei..bem vou converter isso tudo para MP3.....depois tive uma ideia melhor...vou fazer um script..para que quando eu efetuasse a cópia dos arquivos para o meu pen-drive ele já fizesse a conversão automaticamente.

o grande lance que deveria suportar comandos parecidos com o "cp"... por exemplo:

cpmp3 -r ~ThOR27/Musicas/Chico\ Buarque/ /media/CORSAIR


ele deveria copiar recursivamente toda a pasta do Chico buarque para meu Pendrive, convertendo no meio do caminho para mp3.

Foi então que fiz o script abaixo, e como achei que ficou interessante resolvi compartilhar com todos! Estou aberto a sugestões e melhorias :)

[]'s a todos!!


#!/bin/bash
# Convert OGG to MP3 so you can listen on those "mp3 players" as iPOD
#
# Copyright (C) 2007 Thomaz de Oliveira dos Reis thor27 AT gmail.com
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

#Get latest Parameter
for last do a=0
done

#If output is a file, you cannot have more than 1 file as input...
if [ ! -d "$last" ] && (( $# > 2 ))
then
echo $0: Target \'$last\' is not a directory >/dev/stderr
exit 1
fi

if [ "$1" == "-r" ] || [ "$1" == "-R" ] #Recursive flag
then
RECURSIVE=1
shift
else
RECURSIVE=0
fi

while (( $# > 1 )) #Main loop
do
if [ -d "$1" ] #Recursive support WARNING!!! INFINITE LOOP POSSIBLE, USE WITH CAUTION!!
then
if [ "$RECURSIVE" = "1" ]
then
OUTPUT=` echo $last/${1##*/} | tr -s '/'`
if [ ! -d "$OUTPUT" ]
then
if ! mkdir "$OUTPUT"
then
echo Could not create directory \'$OUTPUT\' >/dev/stderr
fi
fi
$0 -r "$1"/* "$OUTPUT" # Recursive call
else
echo Ignoring $1: is a directory >/dev/stderr
fi
else
if [ -d "$last" ] #if output is a directory, you need to get the filename from $1
then
OUTPUT=$last/`echo ${1##*/} | sed 's/[Oo][Gg][Gg]$/mp3/g'`
else
OUTPUT=$last #if not, the filename is already given...
fi

echo $1 ' -> ' $OUTPUT
oggdec "$1" -o /dev/stdout -Q | lame -f - "$OUTPUT" --quiet #that does the magic ;)
fi

shift #removes $1, $2 is now $1
done

exit 0

terça-feira, 25 de setembro de 2007

Jogos....

Sempre gosto de mostras as iniciativas de jogos para Linux, tanto os livres como os não livres. Claro que sempre dou preferências para jogos Livres, mas o fato de lançarem o jogo para Linux, mesmo sendo não livre, já é um grande passo.


Ontem experimentei 4 jogos gratuitos (porém não livres) para Linux, e gostei dos quatro, e resolvi compartilhar com vocês:

EDIT: Astromenace está com o código fonte disponível sob a GPLv3 :D! Excelente notícia!

AstroMenace (Site)

Screenshot do astromenace

Jogo daqueles clássicos de naves que vão subindo e detonando tudo (estilo Gigawing), gráficos excelentes, ótima jogabilidade e você pode melhorar a nave, de tudo quanto é jeito, comprar armas melhores, motores, escudos e até mesmo trocar a nave inteira.

Roda na minha placa de video Intel 950 com os gráficos no mínimo, e na minha GeForce 6600GT roda no máximo e com folga. Na placa de video VIA não funciona.

Cave-story - Doukutsu (Site)

Screenshot Doukutsu

Não sei explicar exatamente esse jogo. Parece um jogo de plataforma com uma grande influência de adventure. O jogo tem sons e gráficos que lembram do meu saudoso Master System II. Por algum motivo esse jogo me cativou bastante. :)

Qualquer computador que consegue rodar Linux é capaz de rodar esse jogo ;) hehehe

Teewars (Site)

Clique aqui para ver algumas screenshots do jogo

Um jogo multiplayer, aonde os jogadores são umas bolinhas coloridas que carregam armas. Parece esquisito mas o jogo é realmente viciante! Excelente "arte final", e ótimo código de rede que garante diversão garantida mesmo com pings razoavelmente altos.

Roda suave suave na minha placa Intel, e na GeForce então, nem se fala :)

SoulFu (Site)

Screenshot SoulFu

Secret Of Ultimate Legendary Fantasy Unleashed é um jogo RPG em 3D e CellShadding que lembra um pouco o estilo do Zelda. Muito legal o jogo ainda mais o fato que se pode jogar 4 jogadores simultaneos. Os comandos para se jogar com o teclado são ruins, mas se você tiver algum controle de Playstation (ou um daqueles parecidos) na sua USB, tem a diversão garantida.

O grande problema é que você tem que baixar além do executável de Linux, o instalador de Windows, instalar o jogo pelo Wine e ai então copiar o executável de Linux para a pasta aonde você instalou o jogo com o Wine e roda-lo.

Ele roda com gráficos máximos na minha placa Intel, e na NVIDIA ainda posso colocar o máximo de efeitos por fora em cima do jogo (16x de antialiasing, 16x de ansiotropic filtering e texture sharpner)

Por favor, não joguem pedras em cima de fim o fato de eu não ter postado sobre jogos livres. Como sei que pessoas vão ficar "magoadas" por causa disso, pretendo logo logo fazer um artigo inteiro com apenas jogos 100% livres.

Abraço a todos e fica ai as dicas com diversão garantida :)

quarta-feira, 19 de setembro de 2007

Divulgação do Artigo do notebook

O Artigo saiu no Br-linux e agora está listada no TuxMobil.

Agradeço a todos pela divulgação, e pelas sugestões e elogios.

Abraços!!

terça-feira, 18 de setembro de 2007

Finalmente, completo!

Finalmente terminei a dica de como botar o Linux no meu notebook..deu um bom trabalho e espero que o esforço valha a pena.

abraço a todos!

sexta-feira, 14 de setembro de 2007

Atualizado a Dica do Notebook

Finalmente consegui botar todas as teclas pra funcionar...acho que agora termino...

vejam na notícia abaixo as atualizações.


Abraço a todos!!!