Archivi categoria: Appunti Vari

Script per parallelizzare uno script in bash

#!/bin/bash

script=$1
pvalue=$2

cat $script | while read  line
do
    jobs=`jobs -r | wc -l`
    while [[ $jobs -eq $pvalue ]]
    do
             sleep 1
         jobs=`jobs -r | wc -l`
        done

        echo "executing $line"
    $line & 
done

Script inserito in /bin/parallelize.sh
L’idea e’ quella di avere un file (magari creato con un altro script) con una lista di comandi che vogliamo eseguire in parallelo – ad esempio – 5 comandi alla volta. Una volta che viene terminato un comando viene eseguito quello successivo nella lista.

Il comando da dare e’

parallelize.sh file_script 5
Contrassegnato da tag , , ,

Creare thumbnails con ImageMagick

convert original.jpg -scale 220x220^ -gravity Center -crop 220x220+0+0 thumb.jpg

Avendo delle foto in una cartella “original” e volendo creare thumbnails nella cartella thumb:

ls -1 original/ | while read img; do echo $img; convert original/$img -scale 220x220^ -gravity Center -crop 220x220+0+0 thumb/$img; done
Contrassegnato da tag , , , , , ,

La variabile IFS di read

La variabile di sistema IFS viene utilizzato dal comando read per identificare il carattere divisore di un file csv.

Ecco un esempio per gestire un csv di input.
cat input_test.txt | while IFS=',' read campo1 campo2 campo3
do
echo "campo1 -> $campo1 ; campo2 -> $campo2 ; campo3 -> $campo3 "
done

Utilizzando il seguente “input_test.txt”….

a,b,c
1,2,3
primo,secondo,terzo

…otteniamo il seguente output

# sh testIFS.sh
campo1 -> a ; campo2 -> b ; campo3 -> c
campo1 -> 1 ; campo2 -> 2 ; campo3 -> 3
campo1 -> primo ; campo2 -> secondo ; campo3 -> terzo

Contrassegnato da tag , , , , , , , ,

Io sono un blogger.

Ma che cazzo é un blogger?

Il termine blogger può riferirsi a:      Il creatore e curatore di un blog. - Wikipedia

Blogger - Wikipedia

Secondo wikipedia é il creatore e curatore di un blog.

Perfetto, quindi? Questo non permette a chi hai davanti di inquadrarti, non dice nulla di te, a parte il fatto che sai scrivere con un computer. Ecco quindi l’immagine che mi faccio di te.

scimmia dattilografa

scimmia dattilografa

Il blog é un mezzo, non é uno scopo.

Puoi essere un informatico, un appassionato di politica, un fotografo, un designer, attivista, una qualsiasi stramaledetta cosa, ma non dire che sei un blogger.

Contrassegnato da tag , ,

@GNU_RMS twitter account maybe is a fake

Twitter account @GNU_RMS, an account followed by 6.800 people and 387 lists, that claim to be Richard M. Stallman’s account, maybe is a fake.

According to RMS’s site he has a twitter account (@rmspostcomments) used just to login in some sites, but not to post.

I do have a twitter account called rmspostcomments. I use it to log in on some web sites to post comments on articles, but I do not post on twitter. Any other twitter account that claims to be mine is an impostor.

For now this isn’t an offical news, I wish I can get more infos.

[12 nov 2011]UPDATE:: Stallman has confirmed my suspects. It is a fake.

[16 nov 2011]UPDATE:: The account has been suspended. Yay 🙂

CCSM non funziona su fedora 14

Di default compiz settings manager non funziona perché il backend di default é errato.
Soluzione
installare il pacchetto del backend

yum install compizconfig-backend-gconf

e configurare ccsm

Bye!

Contrassegnato da tag ,

Python + Oracle – Installare cx_Oracle su Fedora 14

Ho trovato l’installazione di cx_Oracle un po’ complicata su Fedora 14, quindi procedo a spiegare passo per passo come fare.

Prima di tutto scarichiamo alcuni pacchetti dell’istant client dal sito di oracle:

  • instantclient-basic-linux32-11.2.0.2.0.zip
  • instantclient-sdk-linux32-11.2.0.2.0.zip
  • instantclient-odbc-linux32-11.2.0.2.0.zip
  • instantclient-sqlplus-linux32-11.2.0.2.0.zip
  • instantclient-tools-linux32-11.2.0.2.0.zip

I primi due archivi sono strettamente necessari, il resto é tutto grasso che cola ;).

Da utente root creiamo la directory /opt/ORACLE e scompattiamoci tutti gli zip.
É necessario impostare alcune variabili d’ambiente nel .profile (o .bashrc) di tutti gli utenti che necessiteranno di utilizzare il client oracle.

# Export ORACLE
export ORACLE_HOME=/opt/ORACLE/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME

Aggiorniamo l’env, oppure effettuiamo un login/logout.

Creiamo un soft link della libreria libclntsh.so.11.1

cd $ORACLE_HOME
ln -s libclntsh.so.11.1 libclntsh.so

Ricordiamoci anche di compilare il file tnsames.ora in $ORACLE_HOME/network/admin/

Scarichiamo l’archivio “Source Code only” aggiornato all’ultima versione di cx_Oralce dalla pagina di cx_Oracle su souceforge, al momento il pacchetto é questo e scompattiamolo in una directory di comodo.

Da dentro la directory diamo i due comandi di installazione

python setup.py build
python setup.py install

Sotto Fedora 14 é inoltre necessario abbassare il livello di sicurezza (oppure aggiungerci le regole di SeLinux, prima o poi impareró anche quello gh :\ )

setenforce 0

Fatto.
Buon lavoro 🙂

Contrassegnato da tag , , , , , ,

Preparare massivamente una directory piena di foto per la stampa

Preparare tutte le foto di una directory per la stampa, con l’orientamente e le dimensioni corrette.
Necessario imagemagick

#!/bin/bash

DIRECTORY=$1
DIMENSIONE_W=$(( 6 * 300 ))
DIMENSIONE_H=$(( 4 * 300 ))


function rotate
{
        image=$1
        echo "Rotating $image"
        size=`identify -verbose info: ${image} | grep Geometry | grep -E "([0-9]+)" -o `
        size_w=`echo $size | cut -f1 -d" "`
        size_h=`echo $size | cut -f2 -d" "`

        if [[ $size_w -lt $size_h ]]
        then
                convert $image -rotate 90 $image
        fi
}


function resize
{
        image=$1
        echo "Resizing $image"
        convert $image -scale ${DIMENSIONE_W}x${DIMENSIONE_H} -noise -3 $image
}

function main
{
        cd $DIRECTORY
        for file in `ls -1 *.jpg`
        do
                echo "-------------------------------"
                echo "$file"
                rotate $file
                resize $file
        done
}

main $@
Contrassegnato da tag ,

Nuovo codice per invitare tutti gli amici di facebook

javascript:var elms=document.getElementsByName("checkableitems[]");for(var count=0;count<elms.length;count++){var t = setTimeout("elms["+count+"].click()",100)}
Contrassegnato da tag , , ,

Installare Wavelet Denoise su fedora

I passi per installare Wavelet Denoise su Fedora 14

# wget http://registry.gimp.org/files/wavelet-denoise-0.3.1.tar.gz
# tar xf wavelet-denoise-0.3.1.tar.gz
# cd wavelet-denoise-0.3.1
# yum install -y gettext gcc gimp-devel
# make 
# make userintall 
Contrassegnato da tag , , ,