-->

Banner expansível, fácil, fácil!

February 20, 2009 · Posted in Programação · 1 Comentário 

Clicando aqui você saberá como botar um banner em flash expansível no seu site. Excelente. E funciona cross-browser!

ZeroFill: preencha strings com zeros

December 4, 2008 · Posted in scripts · Comente 

Esse script faz exatamente isso: você dá uma string e diz o tamanho que quer que ela tenha. O programa preenche o que falta para aquele tamanho com “0″.

#!/usr/bin/python
#-*- encoding: latin-1 -*-

import sys

if len(sys.argv) <=1 :
print “Você deve especificar uma string”
sys.exit(1)
else:
tam = int(sys.argv[2])
name = sys.argv[1]
print name.zfill(tam),

texme: facilita o trabalho com LateX

November 28, 2008 · Posted in scripts · Comente 

Pega um arquivo .tex, cria um PDF e já o visualiza. Muito útil. Ao menos pra mim.

#!/bin/bash

fname=$(echo $1 | sed “s:.tex::g”)

latex $1 && dvipdfm $fname.dvi && xpdf $fname.pdf

swapmousebuttons: troque os botões do mouse

November 21, 2008 · Posted in scripts · 1 Comentário 

Para quem usa Linux no HP Jornada 720 ou similares (em que se usa uma tela sensível a toque), esse script é muito útil. Ele vai alternando o significado dos botões do mouse, imaginando um mouse de três botões. Leia o script e tente entendê-lo antes de ficar perdido com seu mouse quando usá-lo.

#!/bin/bash

mode=$(xmodmap -pp | tr -s ” ” | cut -f3 -d” ” | grep Code -A 1 | tail -1)

#echo “Modo atual: $mode”

next_mode=$((($mode % 3) + 1))

case $next_mode in
1)
xmodmap -e “pointer = 1 2 3″
;;
2)
xmodmap -e “pointer = 2 3 1″
;;
3)
xmodmap -e “pointer = 3 1 2″
;;
esac

Randomize: mais coisas aleatórias, só que em Python

November 14, 2008 · Posted in scripts · Comente 

Eu não sou muito fã de scripts em Python, mas vá lá. Esse camarada retorna um número aleatória de dois tipos: de zero ao número dado como argumento ou entre o primeiro e o segundo argumento. Muito útil em algumas situações…

#!/usr/bin/env python
# -*- encoding: latin-1 -*-

import sys, random

if len(sys.argv) == 2:
s_lim = int(sys.argv[1])
i_lim = 0

elif len(sys.argv) == 3:
i_lim = int(sys.argv[1])
s_lim = int(sys.argv[2])

else:
print “Faltam argumentos”
sys.exit(1)

print random.randint(i_lim, s_lim)

random-item: itens aleatórios

November 7, 2008 · Posted in scripts · Comente 

Esse é um dos poucos scripts em que é muito bom que você tenha o zsh instalado. Você usa da seguinte maneira: “random-item < arquivo-com-entradas.txt”, e ele escolhe uma linha aleatória do arquivo. Ou “ls | random-item”, e ele pega um arquivo aleatório.
Você também pode especificar quantos itens quer.

#!/bin/zsh

if [[ $1 == “” ]];then
n=1
else
n=$1
fi

while read x;do
lista=($lista $x)
done

len_lista=$(print -ln $lista | wc -l)

for ((i=0;i<$n;i=i+1));do
r=$(($RANDOM % $len_lista))
echo $lista[$r]
done

random-file: arquivos aleatórios

October 23, 2008 · Posted in scripts · Comente 

Pega um determinado número de arquivos aleatórios dentro de um dado diretório.

#!/bin/bash

if [[ $1 == “” || $2 == “” ]];then
echo “Uso: $(basename $0) diretorio num_arquivos”
exit 1
else
dir=$1
n=$2
fi

lista=($dir/*)
len_lista=$(print -ln $dir/* | wc -l)

for ((i=0;i<$n;i=i+1));do
r=$(($RANDOM % $len_lista))
echo $lista[$r]
done

propalm: mande arquivos para o palm

October 23, 2008 · Posted in scripts · 10 Comentários 

Só pra não ter que ficar escrevendo toda a linha de comando.
Para enviar arquivos para a memória interna do seu Palm: “propalm arquivo1 arquivo2 arquivo3″.

#!/bin/bash

if [[ $1 == “” ]];then
echo “Uso: $(basename $0) arquivos”
exit 1
fi

pilot-xfer -i $*

plucker-convert: converta arquivos para o Plucker

October 16, 2008 · Posted in scripts · Comente 

Eu organizo toda a minha biblioteca virtual usando o seguinte formato de nomes de arquivo:

autor–idioma–titulo.formato

Daí criei esse script, que serve para passar os arquivos para o Plucker sem muito esforço. Para que ele funcione, seus arquivos devem seguir o mesmo formato que eu uso.

#!/usr/bin/python
# -*- encoding: latin-1 -*-

import sys
import os
import commands

convertidos = []
titulos_longos = []

autores={
“arthur-conan-doyle”: “doyle”,
“jonathan-edwards”:”edwards”,
“augustus-nicodemus-lopes”:”nicodemus”,
“charles-darwin”:”darwin”,
“lloyd-jones”:”jones”,
“charles-dickens”:”dickens”,
}

def Main():

global convertidos

if os.path.exists(”log.txt”):

log = open(”log.txt”, “r”)

for linha in log:
linha = linha.strip()
if len(linha) <= 0: continue

convertidos.append(linha)

log.close()

log = open(”log.txt”, “a”)

print str(convertidos)

if os.path.isdir(”/usr/lib/python”):
spider=”/usr/lib/python/site-packages/PyPlucker/Spider.py”
else:
spider=”/usr/lib/python2.4/site-packages/PyPlucker/Spider.py”

# Arquivo: autor–idioma–titulo.sufixo

target_dir = os.getcwd()

for filename in sys.argv[1:]:

filename = os.path.abspath(filename)
basename = os.path.basename(filename)

if os.path.isdir(filename): continue

if filename in convertidos:
print “Pulando”, filename
continue

autor, idioma, titulo_sufixo = basename.split(”–”)
titulo, sufixo = titulo_sufixo.split(”.”)

if autor in autores:
autor = autores[autor]

print “Autor: %s\nIdioma: %s\nTitulo: %s\nSufixo: %s” % (autor, idioma, titulo, sufixo)

titulo_bonito = “%s-%s” % (autor, titulo.replace(”-”, ” “).replace(”_”, “:”))

if len(titulo_bonito) > 31:
titulos_longos.append(filename)
print “Título muito longo. Ignorando.”
continue

print “len(titulo):”, len(titulo_bonito)
print “filename: file://%s” % filename
print “Título:”, titulo_bonito

#$spider -V 0 -f “NOME_DO_ARQUIVO” -N “TITULO BONITO” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=desconhecido file://ARQUIVO
status, output = commands.getstatusoutput(”%s -V 2 -f \”%s\” -N \”%s\” -p \”%s\” –bpp=8 –zlib-compression –author=\”%s\” \”file://%s\”" % (spider, basename, titulo_bonito, target_dir, autor, filename))

if status != 0:
print output
print “=== Erro ===”
else:
log.write(”%s\n” % filename)
print “=== Ok ===”

for filename in titulos_longos:

filename = os.path.abspath(filename)
basename = os.path.basename(filename)

autor, idioma, titulo_sufixo = basename.split(”–”)
titulo, sufixo = titulo_sufixo.split(”.”)

if autor in autores:
autor = autores[autor]

print “Autor: %s\nIdioma: %s\nTitulo: %s\nSufixo: %s” % (autor, idioma, titulo, sufixo)

titulo_bonito = “%s-%s” % (autor, titulo.replace(”-”, ” “).replace(”_”, “:”))

if len(titulo_bonito) > 32:
while True:
msg = “Novo título: ”
print ” ” * len(msg) + “|” + “-” * 30 + “|”
novo_titulo = raw_input(msg)

if len(novo_titulo) > 32:
print “Novo título ainda é maior que 32 caracteres! (%d)” % len(novo_titulo)
continue
else:
titulo_bonito = novo_titulo
break

print “len(titulo):”, len(titulo_bonito)
print “filename: file://%s” % filename
print “Título:”, titulo_bonito

#$spider -V 0 -f “NOME_DO_ARQUIVO” -N “TITULO BONITO” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=desconhecido file://ARQUIVO
status, output = commands.getstatusoutput(”%s -V 2 -f \”%s\” -N \”%s\” -p \”%s\” –bpp=0 –zlib-compression –no-urlinfo –stayonhost –author=\”%s\” \”file://%s\”" % (spider, basename, titulo_bonito, target_dir, autor, filename))

if status != 0:
print output
print “=== Erro ===”
else:
log.write(”%s\n” % filename)
print “=== Ok ===”

if __name__ == “__main__”:
if len(sys.argv) <= 1:
print “Uso: %s arquivo [arquivos…]” % os.path.basename(sys.argv[0])
sys.exit(1)
Main()

playsomething: Toque alguma música

October 9, 2008 · Posted in scripts · 1 Comentário 

Toque alguma música, não importa qual…
Esse é um script tipo “switch”. Você o chama para começar e o chama para parar.

#!/bin/bash

if ps ax | grep -v grep | grep -q madplay;then
killall madplay &> /dev/null
sleep 1
else
madplay -S -z ~/musicas/**/* &> /dev/null &
fi

Next Page »