Dica Rápida: Incrementando em Shell

23 09 2008

Procuram e caíram por aqui:
“incrementar + 1 em shell script sem bc”

Sem bc:

expr $var+1
var=`expr $var+1`

Com bc:

echo “$var+1″ | bc
var=`echo “$var+1″ | bc`

Bem mais rápido que qualquer widget ou calculadora gréfica.
Ainda estou em divida com os artigos de economia de energia. Eu sei, eu sei. Não esqueci.





Primeiro dicionário da lingua portuguesa

28 04 2008

Após quatro meses sem escrever, sem idéias para novos tópicos. Cá estou. Com emprego e notebook novos e com uma palestra no FISL no currículo ; )

Feita a introdução, vamos ao que interessa:

A USP, mais especificamente o IEB (Instituto de Estudos Brasileiros) em conjunto ($$$) com a FAPESP digitalizaram o primeiro dicionário da língua portuguesa, datado de 1712 – 1728. Interessante não ? Mas o que diabos isso tem a ver com o meu blog ?? Bom, a principio nada, mas se você visitar o site vai ver que eles recomendam o uso do IE. Como não tenho IE por aqui, tentei outra solução: Fazer o download de todas as imagens.

Como agora estou trabalhando bastante com shell, foi com um script que resolvi o problema. Fiz um pequeno script que corre o número de páginas seqüencialmente incrementando as letras do alfabeto. Isso pra poder seguir a lógica de endereço das imagens

#!/bin/bash
#Uso: getit.sh <numero da pagina para iniciar o download
vetor=( A B C D E F G H I J K L M N O P Q R S T U V X Y Z )
j=0
i=$1
#Valor máximo de página é 7011
while [ "$i" !=  "8000" ]
  #for i in `seq $1 8000`
  do

  wget -c -t 999 -T 20 http://143.107.31.150/dicionario/bluteau/tabBluteau${vetor[$j]}/$i.jpg -O    ${vetor[$j]}_$i.jpg
  exit_val=$?
  if [ $exit_val != 0 ]
    then
      #Remove arquivo com erro, incrementa letra e decremente o numero da pagina
      rm ${vetor[$j]}_$i.jpg
      j=`echo "$j + 1" | bc`
      i=`echo "$i - 1" | bc`
  fi
  i=`echo "$i + 1" | bc`
  sleep 5
  #Tenta todas as letras novamente
  if [ "$j" == "26" ]
    then j=0
  fi
done

ps. Desculpem pela falta de endentação, mas o wordpress não reconheceu esse código como código fonte

Mas enfim, basta rodar esse script em sua maquina linux que depois de algum tempo (3.XXGb depois) você vai ter todas as imagens do primeiro dicionário da língua portuguesa na sua máquina. É bom ter guardado em algum canto, nem que seja por curiosidade ; )

Edit: Obrigado Gaucho pela dica do <pre></pre>





Touchpad + Firefox

16 05 2007

Dica rápida #2!

Umas das coisas que sempre me incomodaram no Firefox é que quando estou no notebook e uso o horizontalscroll, o firefox ao invés de rolar a barra da página horizontalmente volta para a página anterior, ou no sentido contrário, vai para a próximo página no histórico.

Duas opções então, abra na barra do seu firefox o seguinte endereço “about:config” e edite as linhas (use a busca para facilitar):

  • Para habilitar a rolagem ao invés de correr pelo histórico
    • mousewheel.horizscroll.withnokey.action = 1
  • Para desabilitar o HorizontalScroll:
    • mousewheel.horizscroll.withnokey.action =0
  • A opção padrão é rolagem pelo histórico
    • mousewheel.horizscroll.withnokey.action =2

O parâmetro abaixo do mousewheel.horizscroll.withnokey.numlines define o número de linhas que seu scroll deverá rodar para tomar a ação defina pela variável action.





Adendo ao Genbuntu

19 03 2007

Boas leitores!

Depois de muito tempo sem atualizar, por não ter nenhuma novidade e nenhuma idéia é hora de fazer o adendo mensal (porque é bom atualizar o blog ao menos uma vez por mês)

No final de artigo sobre o Genbuntu ou  “Hibrd Linux Distribution Without Emulation” eu disse que infelizmente os softwares teriam de ser rodados com o root, porém, derrepende não mais que derrepente eu tive uma luz. Como se está usando root, pode-se facilmente trocar de usuário via su ou sudo!

sudo -u <usuário> -s

No meu caso, parar exemplificar, ficar ficaria “sudo -u fcpn -s” o que me dá um console logado no usuário fcpn. Para melhorar ainda mais a história, recentemente eu troquei de HD, e escolhi deixar uma partição para o /home. Montando o home, eu posso compartilhar as configurações entre os sistemas híbridos.

O ideal agora seria criar um script para inicialização, que simplesmente montaria todos os diretórios do script do primeiro artigo, e criar scripts para executar o chroot, trocar de usuário e rodar o software desejado, copiando esses scripts para o /usr/local/bin por exemplo o sistema híbrido fica praticamente transparente ao usuário.

Sem mais, vejo-os no próximo adendo ;  ]





Genbuntu

18 12 2006

Introdução

Ao final desse ano serão praticamente 7 anos de experiências, boas e ruins, com linux. Primeiro contanto, foi com o conectiva, que estava em uma das suas primeiras versões, 3.0 se não me engano, fascinado com todo esse mundo novo, novas interfaces, novos softwares migrei para o Slackware, por onde fiquei cerca de 6 ou 5 anos, mas por sua falta de tempo e pelo gosto do Patrick, resolvi, depois de fazer residência no Slack, trocar de distribuição.

Descobrindo novos mundos
(sem flames!)

Como toda crise comecei a testar outras distribuições procurando por alternativas mais práticas. O Debian, foi a primeira distribuição que não consegui me adaptar bem, mas a facilidade de manter o sistema me agradou, e muito. O apt-get (aptitude) é simplesmente fantástico. Ubuntu é ubuntu, mas serve. Finalmente ao final da minha jornada, encontrei o Gentoo, desempenho fantástico, mas a mantenibilidade do sistema é impraticável.

Por mais que eu tentasse manter meu sistema up-to-date não conseguia, sempre novas atualizações, algumas delas travaram toda a atualização do sistema, e por ai vai. Assumo que não me dediquei o suficiente para achar soluções para os updates quebrados. Resolvi então achar outra solução. Precisava de facilidade e, uma vez usuário gentoo, desempenho.

Eis que surge a idéia do Genbuntu! Que seria uma base do sistema compilada, gerada pelo gentoo+emerge e programas menos utilizados, que não necessáriamente precisariam de um desempenho grande, executados no ubuntu mas pelo gentoo. Com certeza existem N outras soluções para esse “problema” mas resolvi abordar dessa forma. Usando o que aprendi na instalação do gentoo, escolhi instalar o Ubuntu e usar o chroot para trazer para o gentoo os softwares instalados no Ubuntu.

Mão na massa

Na primeira tentativa, usei simples e cru:

chroot /mnt/ubuntu /bin/bash

A intenção era conseguir um bash logado no ubuntu. Sucesso, basicamente era exatamente isso que eu precisava, mas várias coisas não estavam funcionando direito. Depois de alguma pesquisa “escrevi” um pequeno script que me dá um terminal funcional do Ubuntu dentro do Gentoo, a partir deste posso rodar qualquer coisa dentro do ubuntu estando no Gentoo.

mount -t proc none /mnt/ubuntu/proc
mount -o bind /dev /mnt/ubuntu/dev
mount -o bind /sys /mnt/ubuntu/sys
mount -o bind /tmp /mnt/ubuntu/tmp
chroot /mnt/ubuntu /bin/bash

Com agora a base do sistema (/dev /proc /sys e /tmp) replicada em ambos os pontos montados “/” e “/mnt/ubuntu”, podia fazer praticamente qualquer coisa no ubuntu que o mesmo funcionava perfeitamente, faltava então conseguir exibir os softwares rodados no ubuntu no Xorg do gentoo. Usando o xhost, liberei o acesso a mim mesmo em meu X, exportando os /dev/pts consegui finalmente fazer um sistema híbrido com ambas as distribuições rodando ao mesmo tempo. A versão final do script ficou:

#!/bin/bash
mount -t proc none /mnt/ubuntu/proc
mount -o bind /dev /mnt/ubuntu/dev
mount -o bind /sys /mnt/ubuntu/sys
mount -o bind /tmp /mnt/ubuntu/tmp
mount -o bind /dev/pts /mnt/ubuntu/dev/pts
cp /home/fcpn/.Xauthority /mnt/ubuntu/root/
cp /home/fcpn/.Xauthority /mnt/ubuntu/home/fcpn/
xhost +local:root
chroot /mnt/ubuntu /bin/bash
xhost -local:root

O único inconveniente é ter que executar tudo no ubuntu como root. Porém dai por diante, só a criatividade é o limite, com o chroot é possível executar qualquer comando chroot /mnt/ubuntu xmms ou qualquer outra coisa que você queira.

emerge + aptitudeSynaptic

Conclusão

Agora posso fácilmente posso manter meu sistema atualizado, mantendo a base do sistema com alto desempenho e sólida, e nesse esquema de sistema híbrido pretendo ficar um bom tempo. Talvez fazer nova residência no gentoo.

Até mais, Fábio.





PDF para JPG

29 11 2006

Dica rápida #1!

Se algum dia, por acaso estiver sem nenhum leitor de PDF, precisar urgentemente de alguma parte de um arquivos PDF, como eu precisei hoje, basta usar o ImageMagick, um verdadeiro canivete suíço para quem trabalha com imagens. Um dos aplicativos que faz parte do mesmo é o convert.

Para converter PDF para JPG basta usar:

convert nome_arquivo_pdf.pdf nome_arquivoS_JPG.jpg

Para cada página do PDF será gerada uma imagem! Simples, rápido e indolor. Mais infomações no site do próprio site do ImageMagick.

——–

Update: Many people are looking for this article in english so I’ll translate it. Here it goes:

If one day you don’t have any PDF reader (acrobat reader for example), and need with urgency some part of a PDF file, just like I needed today, you could use ImageMagick, a real Swiss army knife for people who work with images. One of the tools included into it, is the command convert

To convert a PDF to a JPG file you can simply use:

convert PDF_filename.pdf JPG_files.jpg

For each page of the PDF file, a JPG file will be generated! Simple, fast and painless. For more information use the ImageMagick website.

pdf2jpg

pdf to jpg