Archive for the ‘Linux’ Category

Usando Bash Scripts

abril, 3 - 2008

Um dos motivos pelo qual eu uso Linux no meu dia a dia, é que ele, ao contrario do que o tato pensa, agiliza minhas tarefas, e aqui eu vou dar um exemplo do poder do linux.

Vamos utilizar o bash para converter imagens tiradas com uma câmera digital para o formato 648×486 e tambem gerar uma versão menor 140×105 para usarmos como snapshot em uma pagina html :D.

Bom, primeiro, precisamos de um diretorio para colocar as fotos originais, que normalmente são do tamanho 2592×1944. O diretório escolhido é origin. criamos os diretórios para as fotos que serão colocadas no site, e para os snapshots, fotos e snaps respectivamente

>mkdir origin
>mkdir fotos
>mkdir snaps

agora, precisamos gerar um arquivo de script gera_html.sh que sera executado para gerar as fotos, e dar-lhe permissão de execução.

>chmod u=u+x gera_html.sh

Agora vamos fazer um loop de for que percorrera todos os arquivos da pasta origin gerando copias das imagens na pasta fotos, mas convertendo as fotos para 648×486, já que este parece ser um tamanho adequado para fotos que devem viajar pela rede. Observe que o for utiliza a lista gerada pela expansão origin/*, e que no começo do arquivo devemos colocar a #!/bin/bash para indicar que este é um bash script.

#!/bin/bash
CONT=1;for FILE in origin/*; do
convert $FILE -resize 648x486 \
fotos/foto-$CONT.jpg
CONT=$[$CONT+1]
done

Observe que as fotos serao geradas com o nome foto-1.jpg foto-2.jpg … foto-10.jpg, de forma que se quisermos ter foto-0001.jpg, temos que gerar o texto atraves de uma função

function cont_to_var
{
AUX=$1
for NUM in 1000 100 10; do
if [ $AUX -lt $NUM ]; then
AUX=0$AUX;
fi
done
echo $AUX
}

Atribuimos isto a uma variavel utilizando os recursos do bash, para entao podermos gerar nossas imagens. Podemos aproveitar o loop e ja gerarmos as fotos e os snapshots 😀

VAR=$(cont_to_var $CONT)
convert $FILE -resize 648x486 \
fotos/foto-$VAR.jpg
convert $FILE -resize 140x105 \
snaps/snap-$VAR.jpg
CONT=$[$CONT+1]

Agora basta apenas inserir a parte do codigo que gera a pagina html. primeiramente, preparamos uma pagina com a base, e a pagina com o final do arquivo, e entao utilzamos o while para finalizar o processo. Notamos que ao final do for, temos $CONT carregando o numero de fotos +1. Utilizaremos então o while com a condição [ $CONT -le $MAX ] que equivale a dizer while (cont <= max), e para cada iteração iremos inserir o tag com a imagem, redirecionando a saida para nosso arquivo fotos.html

MAX=$CONT
CONT=1
PAGE=fotos.html
COL=5

cat base.html > $PAGE
while [ $CONT -lt $MAX ]; do
check_linha_start $CONT >> $PAGE
print_img $CONT >> $PAGE
CONT=$[$CONT+1]
check_linha_end $CONT >> $PAGE
done
cat tail.html >> $PAGE

Observe que hove um redirecionamento da saida do cat é feito utilizando os operadores > e >>, cuja a diferença é que > apaga o arquivo antes de escrever o novo dado. A função check_linha_start checa a nescessidade de se iniciar uma linha da tabela (que deve conter 5 colunas), enquanto check_linha_end checa a nescessidade de se finalizar a linha

function check_linha_start
{
I=$[$1-1]
if (( ! $[$I%$COL] )); then
echo "<tr>"
fi
}
function check_linha_end
{
I=$[$1-1]
if (( (! $[$I%$COL]) || ($1==$MAX) )); then
echo "echo "</tr>"
fi
}

Para imprimir a imagem, utilizamos a função print_img

function print_img
{
IMG=fotos/foto-$(cont_to_var $1).jpg
SNAP=snaps/snap-$(cont_to_var $1).jpg
echo "<td><a \
href=\"$IMG\" target=\"_BLANK\">"
echo "<img src=\"$SNAP\">"
echo "</a></td>"
}

Os arquivos base.html e tail.html apenas abrem e fecham os tags basicos do html, mas poder ser utilizado para gerar códigos mais complexos com css, etc 😀

<html>
<body>
<table>

Agora basta apenas rodar o script e ser feliz 😀

Se você quiser, voce pode baixar o meu script aqui

Anúncios

Asus EeePC – Brincando de configurar

março, 31 - 2008

Continuando a saga de configurar o EeePC, vejam aqui algumas das coisas que nós tentamos:

Primeiramente, tivemos que conectar o EeePC a internet e para isso utilizamos um roteador wireless, e configuramos a rede wireles do EeePC (Internet->Wireles Network), uma baba 😀


Agora, como eu sou fan do slackware, baixei o pacote do pkgtools e instalei ele simplesmente descompactando com o comando abaixo (o que não pode ser feito com todos os comandos) através de um terminal (CTRL+ALT+T para abrir).

user@eeepc-cristina>sudo tar -xzf \
>pkgtools-12.1.0-noarch-6.tgz -C /

Com o pkgtools instalado, agora temos 2 opções para instalar pacotes, pkgtools e apt. O próximo passo, é habilitar o full desktop mode, mas como eu não gosto de ficar usando o sudo, vamos usar um pequeno hack do sistema para mudar para root.

user@eeepc-cristina>sudo su

Agora como adminstradores, podemos instalar ksmserver e kicker.

user@eeepc-cristina>apt-get update
user@eeepc-cristina>apt-get install \
>ksmserver kicker

Bom, agora basta rebootar o sistema e pronto, esta instalado. Agora, para setar qual interface será bootada por padrão, bast is no settings->Personalization e escolher full ou easy :D. Para ir do easy para o full mode, basta ir no menu de reboot e selecionar, enquanto que o caminho oposto é feito no Launch->Easy Mode.


Agora, como minha namorada curte o enlightenment e o Eterm, decidimos instalar os programas e bibliotecas usando o comando abaixo.

Depois, fizemos o Full Desktop Mode lançar o enlightenment no lugar do KDE, e para isso, editamos o arquivo /usr/bin/startsimple.sh na linha 26, e trocamos startkde por e16, lançando asim o enlightenment. É lógico que deu merda, já que pelo enlightement, qualquer logoff ou halt reiniciava a máquina, tornando assim impossível desligar o laptop.

exec startkde
exec e16

Atualmente, o sistema esta rodando KDE (voltamos o arquivo startsimple.sh para o estado original) e esperando uma solução para o problema, talvez no próximo post a solução esteja presente. Até a próxima 😀

Para acompanhar a saga, clique no link abaixo:

wergeeks.wordpress.com/tag/eeepc

Via EeeUser.com

Asus EeePC – Computador para estudantes

março, 24 - 2008

Ola pessoal :D. Estes dias, minha namorada adquiriu um Asus EeePc, e eu como um bom Geek andei dando uma xeretada nele 😀

O grande barato deste laptop, é que ele é perfeito para estudantes, já que ele pesa menos de 1 Kg (três latas de refrigerante), tem 10”, e utiliza uma SSD, no lugar da HDD, ou seja, não tem problemas referentes à vibração do aparelho durante o uso. O EeePC nasceu do projeto OLPC (One Laptop Per Child)que, entretanto, fez muitos jovens e adultos sonharem com o seu próprio laptop.

O EeePC pode ser encontrado por um valor em torno de R$ 1.000,00 (com nota fiscal…wow), e tem de 512MB a 1GB, um SSD de 4GB, camera, wireless, portas USB, Rede, e um sistema operácional Linux da Xandros, sendo que seu processador de 900MHz pode rodar até mesmo Windows XP (:P) já que ele vem com um CD de drivers para sistema. As unicas coisas que você possa sentir falta, são um drive de DVD/CD (facilmente adcionável através de um drive USB), e um teclado maior (facilmente reposto por um belo teclado USB).

Nosso primeiro passo foi descobrir que o laptop que ela comprou era o ultimo da loja, e portanto, ja tinha sido configurado pelo dono da loja, com uma senha de adminstrador própria, e como não tinhamos um drive de CD USB nem sabiamos se naquele CD de drivers tinha um installer do sistema, estavamos tristes. Após fuçar um pouco, percebemos que 2.7GB dos 4GB estavam inultilizados, de forma que deveriam conter um sistema de restore :D. Procurando na net, vários fóruns explicavam que ao darmos boot na máquina e segurarmos a tecla F9, podiamos resetar o sistema e inicializa-lo novamente Yeahhh :D.

Agora ela tem um sistema perfeito, com recursos como rede de arquivos Linux/Windows, Openoffice, Firefox, e até mesmo Skype. Com 1.3GB de armazenamento, que ela pode escolher entre carregar seus documentos (de 50KB cada) no próprio laptop, ou armazena-los em um pendrive que ela carrega sempre consigo.

Abaixo tem uns videozinhos legais com um pouco sobre este EeePC


Durante os próximos dias, eu vou postar sobre nossos avanços na melhora do sistema Xandros :D, vocês podem acompanhar através do link wergeeks.wordpress.com/tag/eeepc, até a próxima 😀

Avlis, o melhor MMORPG que eu já participei

março, 17 - 2008

Yaarrrrr meus colegas Geeks :D, estou aqui novamente para falar deste que é um dos meus passatempos favoritos, o RPG. Eu sempre gostei de RPG, mas sempre achei que, apesar dos esforços dos mestres e jogadores, ainda existia uma lacuna para os jogos de RPG onde a liberdade total existiria em um mundo de fantasia onde o jogador realmente poderia ter uma segunda vida.

Após muito tempo jogando, esta lacuna foi parcialmente preenchida pelos MMORPGs, onde os servidores, ligados 24 horas por dia, representavam mundos de possibilidades infinitas com um numero colossal de jogadores, o que dava uma outra perspectiva ao conceito de mundo de fantasia.

Eu digo que esta lacuna foi preenchida parcialmente, porque continuavamos logados em um mundo onde os avatares continuavam a agir de acordo com nossas contrapartes humanas sem modificar nosso senso de realidade … isso ate o dia em que eu encontrei Avlis.

Avlis é um servidor que visa o RolePlay que é a base do RPG. Para tal, se faz nescessária uma base de jogadores incrível onde todos fazem sua parte para que aquele mundo de fantasia se confunda com a realidade … Avlis realmente se tornou para mim uma segunda realidade.

Avlis é um servidor totalmente gratúito que faz parte do Copap, uma união de servidores (Mundos) interligados e com um sistema básico de regras (com pequenas variações entre eles). Os sservidores são mantidos através de doações, mas isso não impede o sistema de funcionar perfeitamente, com uma staff de voluntários dedicados e maravilhosos.

Os detalhes que mais me atrairam para Avlis foram a base de players (do mundo todo), os sistemas de craft, idiomas, raças e planos e a dedicação do Staff e Mestres.

Para se jogar, é nescessario uma cópia original e as expansões SOU e HotU (que foram vendidas por R$20 nas bancas) do jogo NWN (disponível tambem para os sistemas Linux e Mac no site da Bioware), dos arquivos obtidos na página de downloads do servidor, da ficha de inscrição e de bons conhecimentos de Inglês (Idioma oficial do servidor).

Espero que vocês tenham bons momentos la 😀

www.avlis.org

Svn + Latex = Uma dica de Geek para Geek

março, 16 - 2008

Ola pessoal, sentiram saudades? Estou de volta com uma dica para você meu geek amigo que tem o grande problema de escrever um relatório, código fonte, página de internet, ou um simples arquivo, e descobrir que após corrigir um erro, a versão de ontem (que você considerava errada) estava bem melhor.

Bom, uma solução para você é gastar uma fortuna em HDs e gravar cada versão dos seus arquivos e se perder nas organizações de backups. Outra solução é utilizar servidores SVN que vão te economizar HDs e resolver os problemas de organização. 😀

O lance é muito simples, como em um sistema de backup bom, o servidor SVN guarda o seu arquivo versão 1 todas as modificaçoes sofridas até a versão atual (tudo compactado :D), sendo assim, caso você nescessite de uma versão intermediaria, ele monta ela para você na hora do pedido. Para fazer tal montagem, ele tenta reconhecer o formato do arquivo, que no caso de códigos-fonte, páginas html, textos sem formatação, etc, são reconhecidos e armazenados da forma correta.

O unico problema, é quando trabalhamos com arquivos que o sistema SVN considera como sendo binários, que no caso são imagens, documentos formatados (Word, Excel…), Gráficos, etc. No caso de arquivos tratados como binários, o sistema grava uma nova versão de cada modificação do arquivo, de forma que não existe o ganho de espaço garantido normalmente pelo SVN.

Uma solução para isso, é mudar de processador de texto (sim, o Word fede), e utilizar um tipo de arquivo como html (tosco) ou algo que foi desenvolvido por um programador que considerava que nenhum processador de texto tinha o poder de formatar um texto descentemente para que pudesse ser apresentado no meio acadêmico/científico, ou seja, o negócio é usar TeX ou LaTex.

O modo de se produzir um arquivo-fonte para um documeno à ser processado pelo Latex, utiliza macros que lembram tags de html, onde dizemos através de um código se queremos colocar negrito, iniciar uma tabela ou inserir uma imagem. Inserir funções matemáticas é uma beleza (sim, eu estou tomando notas de aula utilizando latex já que, depois que você pega o jeito, é muito rápido inserir funções matemáticas). O arquivo então é processado, gerando um arquivo de saida (por exemlo, PDFs) que pode ser enviado para seu professor/editor/chefe/xxx.

Bom, as dicas são estas, se você se interessou, existem alguns links abaixo onde você pode fazer download, saber um pouco mais sobre e até mesmo pegar alguns tutoriais sobre SVN e Latex.

PS: SVN e Latex estão disponiveis para muitos sistemas operacionais, incluindo os classicos Linux, Windows e MacOS, e caso você não queira instalar os programas, existem editores on-line para latex, e servidores gratuitos de svn

Referências: