Banners

SLAY Radio

Dev

  • Nexus One on the way!

    Finalmente l'ho ordinato, mi sono deciso. Ancora non c'è stato nessun addebito sulla carta di credito... Cliccare sull'immagine per ingrandirla e unirsi pienamente alla sofferenza del mio portafogli.

  • JAWS 0.8.1 disponibile! Con due ghiotte patch casalinghe...

    JAWS 0.8.1 (il CMS sul quale si basa questo sito) è già disponibile da qualche giorno, ed è liberamente scaricabile dal sito ufficiale. Dato che sono tornato solo adesso dalle vacanze e prima delle vacanze ero preso da università, lavoro ed una irrefrenabile voglia di fare niente, la traduzione in Italiano non è inclusa in questa release. Chiunque fosse interessato può scaricare i file tradotti direttamente da qui. E' tutto comodamente impacchettato secondo le gerarchie delle directory, quindi basta decomprimere il file nella cartella giusta e tutto sarà magicamente sostituito. Anche se penso che sia praticamente impossibile fare danno con questa patch, io declino ogni responsabilità dalla sua applicazione.

    Chi aggiornerà dalla versione 0.7.x a questa nuova 0.8.1 noterà che, a causa della rinnovata gestione dei temi, i vecchi layout sono leggermente imbruttiti. In particolar modo il mio adorato tema Bamboo si presenta così

    Bamboo Jaws 0.8.1


    Quindi ho pensato di applicare qualche modifica veloce ai CSS per renderlo molto simile a come era nella versione 0.7.x

    Bamboo 0.7.4


    Il risultato è sotto i vostri occhi, almeno fino a quando non cambierò tema... Se anche voi non vi ritenete soddisfatti del nuovo tema Bamboo, eccovi qua i CSS da sostituire in data/themes/bamboo. Come al solito declino ogni responsabilità per l'uso della modifica. I CSS hanno bisogno di una bella pulitina, quando avrò tempo ci penserò, anche se a dire il vero dipende da cosa hanno intenzione di fare gli sviluppatori. Non ho molta voglia di perderci tempo :P
  • Script bash per Lab. Sistemi Operativi

    Nel mio CdL in Scienza e Teoria dell'Informatica a Siena, il corso Laboratorio di Sistemi Operativi è diviso in due moduli, uno di questi funge da introduzione al magico mondo di Linux. Come prova finale dobbiamo sostenere un orale e realizzare uno script in bash. Anche se, ovviamente secondo me, un esame di questo tipo è di dubbia utilità (poco "hardcore" e troppo "man"), devo ammettere che ho passato i miei brutti quarti d'ora. In molti casi la bash non ti viene incontro, anzi se sei alle prime armi ti vuole proprio male.
    Pubblico lo script, magari servirà a qualche anima in pena. Potete anche scaricarlo direttamente, dato che nel post il codice non sarà perfettamente leggibile

    Ah, il tutto è stato fatto in poco tempo e ripeto di non essere un patito di scripting bash, quindi commentate pure per migliorie, bombe a mano, etc...etc...

     
     
    #!/bin/bash
     
    function usage {
        echo
        echo "Uso:"
        echo "./newtrash file1 [file2...fileN] [-d num] [-s num,}num,{num] [-l] [-i] [-int]"
        echo
        echo "Opzioni:"
        echo "-d num                  sposta nella directory trash tutti i file la cui"
        echo "             data di ultimo accesso sia antecedente a num giorni"
        echo "-s num,}num2,{num3   sposta nella directory trash tutti i file la cui"
        echo "            dimensione sia num e/o >num e/o <num rispettivamente"
        echo "                  Ogni numero esprime n blocchi da 512 byte"
        echo "-l           sposta nella directory trash tutti i link"
        echo "-i           sposta nella directory trash i files indicati senza"
        echo "            distinguere tra maiuscole e minuscole"
        echo "-int           sposta nella directory trash i files chiedendo"
        echo "            per ciuscuno conferma"
    }
       
    paramnumber=$(($#))  #Numero di parametri passati allo script da riga di comando
    paramarray=($*)            #Array contente i parametri passati allo script da riga di comando
    counter=0
    noexec=0    #flag per sapere quando devo stampare il messaggio per la conferma dell'eliminazione
    filecounter=0
    fori=0        #fori = flag per l'opzione -i. Mi serve per sapere quando stampare il messaggio
                      #per la conferma dell'eliminazione. Vedere la voce -int nel case
     
    if [ ! -d "$HOME/trash" ]                #Controlla se esiste la directory trash nella home
    then                            #se non esiste viene creata
        mkdir "$HOME/trash"
    fi
     
    while [ ! "`expr match "${paramarray[$(($filecounter))]}" '\(-\)'`" = "-" ] && [ $filecounter -lt $# ]
    do                            #Conta quanti file sono stati passati
        filecounter=$(( $filecounter + 1 ))               #da riga di comando
    done
     
    if [ $filecounter -eq 0 ]
    then
        echo "E' necessario specificare almeno un file"
        usage
        exit
    fi
     
    counter=$filecounter
    while [ $counter -ne $paramnumber ]
    do
        case "${paramarray[$counter]}" in
            -d)
                nextvalidparam=`expr match "${paramarray[$(($counter + 1))]}" '\([0-9]*[0-9]\)'`
                if [ ! -z $nextvalidparam ]                        #E' necessario eseguire IF annidati in quanto
                then                                    #se una stringa è NULL la bash se ne ha a male
                    if [ $nextvalidparam = ${paramarray[$(($counter + 1))]} ]    #e non esegue tutti i confronti
                    then
                        commandstring=" -atime +${paramarray[$(($counter + 1))]} "$commandstring
                    else
                        echo "Il parametro per l'opzione -d non è valido"
                        usage
                        exit
                    fi
                else
                    echo "Il parametro per l'opzione -d non è valido"
                    usage
                    exit
                fi
                ;;
            -s)
                sizevalidparam=${paramarray[$(($counter + 1))]}                #Primo controllo sul parametro dell'opzione
                sizevalidparam=${sizevalidparam/",}"/""}                #Guardo se ci sono
                sizevalidparam=${sizevalidparam/"
    ,{"/""}                #caratteri strani oltre a quelli
                sizevalidparam=${sizevalidparam/"
    }"/""}                    #che mi interessano
                sizevalidparam=${sizevalidparam/"
    {"/""}
                sizevalidparam=${sizevalidparam/"
    ,"/""}
                sizeparam=`expr match $sizevalidparam '\([0-9]*[0-9]\)'`
                if [ ! -z $sizeparam ]
                then
                    if [ "
    $sizevalidparam" = "$sizeparam" ]
                    then
                        sizevalidparam=${paramarray[$(($counter + 1))]}        #Metto il parametro dell'opzione
                        sizevalidparam=${sizevalidparam/"
    ,}"/" "}        #dentro un array per poter contare
                        sizevalidparam=${sizevalidparam/"
    ,{"/" "}        #se ci sono al massimo tre opzioni
                        sizevalidparam=${sizevalidparam/"
    }"/" "}
                        sizevalidparam=${sizevalidparam/"
    {"/" "}
                        sizevalidparam=${sizevalidparam/"
    ,"/" "}
                        array=( $sizevalidparam )                #Conversione in array per gestire meglio la stringa
                        if [ ${#array[@]} -le 3 ]                # ${#array[@]} <- lunghezza dell'array
                        then                            #si possono accettare al massimo 3 argomenti per -s
                            sizeparam=${paramarray[$(($counter + 1))]}
                            if [ `expr match "
    $sizeparam" '\([0-9]\)'` ]
                            then
                                sizeparam="
    -size "$sizeparam
                            fi
                            sizeparam=${sizeparam/"
    ,}"/" -size +"}        #Formatto la stringa per renderla
                            sizeparam=${sizeparam/"
    ,{"/" -size -"}        #adatta al comando "find"
                            sizeparam=${sizeparam/"
    }"/" -size +"}
                            sizeparam=${sizeparam/"
    {"/" -size -"}
                            sizeparam=${sizeparam/"
    ,"/" -size "}
                            commandstring=$sizeparam"
    "$commandstring
                        else
                            echo "
    Parametri non validi per l'opzione -s"
                            exit
                            usage
                            exit
                        fi
                    else
                        echo "Parametri non validi per l'
    opzione -s"
                        usage
                        exit
                    fi
                else
                    echo "
    Parametri non validi per l'opzione -s"
                    usage
                    exit      
                fi
                ;;
            -l)
                commandstring=" -type l "$commandstring                        #Per i links
                ;;
            -int)
                commandstring=$commandstring" -ok mv {} $HOME/trash ;"            #Per chiedere conferma
                noexec=1
                fori=1                                        #nello spostamento
                ;;
            *)
                if [ "`expr match "${paramarray[$(($counter))]}" '
    \(-\)'`" = "-" ] && [ ${paramarray[$(($counter))]} != "-i" ]
                then
                    echo "Il predicato "${paramarray[$(($counter))]}" non è valido"
                    usage
                    exit
                fi
                ;;
        esac
        counter=$(( $counter + 1 ))          
    done
     
    if [ $noexec -ne 1 ]                            #Se non è presente l'
    opzione -int viene aggiunta in fondo alla stringa
    then                                    #l'opzione -exec mv etc...etc.. per spostare i file senza conferma
        commandstring=$commandstring" -exec mv {} $HOME/trash ;"
    fi
     
    counter=0
    while [ $counter -ne $paramnumber ]
    do
        case "${paramarray[$counter]}" in
            -i)                                    #Trattato a parte perchè -iname richiede
                noexec=2                            #un parametro alla volta
                for (( i=0;i<$filecounter;i++ )); do
                    commandstringtmp=""
                    commandstringtmp="find -iname "${paramarray[$((i))]}$commandstring
                    if [ $fori -eq 1 ]
                    then
                        echo "Sei sicuro di voler spostare il file "${paramarray[$((i))]}"? Premere 'S' o 's' per confermare"
                    fi
                    #echo $commandstringtmp
                    $commandstringtmp
                done
                ;;
        esac
        counter=$(( $counter + 1 ))
    done
     
    if [ $noexec -ne 2 ]
    then
        for (( i=0;i<$filecounter;i++ )); do                        #Metto in testa alla stringa del comando i nomi dei file
            commandstring=${paramarray[$((i))]}" "$commandstring            #e successivamente il comando "find"
        done
        commandstring="find "$commandstring
        if [ $noexec -eq 1 ]                                #Controllo per chiedere conferma nel
        then                                        # caso si sia usata l'opzione -int
            echo "Sei sicuro di voler spostare i file specificati? Premere 'S' o 's' per confermare"
        fi
        #echo $commandstring
        $commandstring
    fi
     
     

FileBrowser

Chatbox

  • felo: diaccio... ora adense e' anche per fa le chiapparelle sui domini ignudi  
  • LeX: Ciao Feloo! :D Bella notizia, mi serve qualcosa della Wiley...  
  • felo: su gorilla.it sconto del 30% su libri tecnici et universitari degli editori Wiley, Blackwell, Sybex, Wrox, Rockynook, Capstone Publishing, Jossey Bass e Mit Press  
  • LeX: Vabbè ora mi arriva una mail per ogni messaggio in berciobox... bello, ma vorrei almeno sapere come disabilitarlo :D  
  • LeX: Udiu mi è arrivato un messaggio di posta con scritto The rebitrh!
    Questa cosa mica l'ho capita :)  
  • felo: the rebitrh!  
  • felo: mi so teste' facebookato , pare interessante anche per sviluppare in social-oriented. more to come...  

Scrivi il codice captcha che stai vedendo.

Categorie

Moblog

  • La mia prima foto!

    La mia prima foto!

    Lunedì 15 Settembre 2008 8:10pm

Emblemi

Supporta Choose Opera-tan
rss
atom