Linux Day 2007

linuxdayIn occasione del Linux Day 2007 che si terrà in 118 città italiane, tra cui anche qui, vorrei dedicare questo post ad alcuni trick per linux, cose che magari non sono note a tutti, ma solo perchè un pò nascoste….in realtà siamo tutti un pò pigri.

 # 1 shopt -s cdspell shopt -s nocaseglob

Il primo abilita la correzione automatica dei nomi delle directory, quindi scrivendo /hom/mulp il riconoscimento avverrà per il percorso più simile a quanto digitato, probabilmente /home/mulp. Il secondo, permette di effettuare una ricerca case-insensitive quando si preme il tasto TAB per l’autocompletamento.

 #2 chattr +i file.txt chattr -i file.txt

Permette di rendere il file non vulnerabile ad eliminzioni casuali indipendentemente dall’utente che ne effettua l’operazione, anche da root. Il secondo comando lo disabilita.

#3 setterm -blenght 0

Messo in .bash_profile, permette di spegnere l’allarme dallo speaker del computer ogni volta che digitate qualcosa di sbagliato.

#4 mount -o loop -t iso9660 fileiso.iso /mnt/iso

Permette di montare una immagine ISO all’interno del file system e navigarla come se ne facesse parte.

#5 find . -type d | xargs chmod 775

xargs permette di formattare l’output fornito da un comando e darlo in pasto in modo formattato in input ad un altro programma. Il comando di sopra cerca tutti i file a partire dalla directory corrente, di tipo directory e lo fornisce in input a xargs che lo formatta e lo passa a chmod per settarne opportunamente i permessi.

#6 shred -z -u myfile

Elimina in modo sicuro myfile, sovrascrivendo il file 25 volte con dati casuali per poi terminare con una sequenza di 0.

#7 vm.swappiness=10

Modificate quella riga presente nel file /etc/sysctl.conf (createlo se non esiste) per forzare l’utilizzo minimo della swap. Se avete molta RAM tale da non saturarla mai, un valore minimo farà in modo che la quantità di swap occupata verrà minimizzata.

#8 opzione noatime

L’opzione noatime abilitata su una riga del file /etc/fstab, dove vengono montati i dischi, permetterà di aumentare le prestazioni del disco del 10%. Ogni volta che il disco compie una lettura, compie anche una scrittura per memorizzare le informazioni che riguardano l’orario di lettura del file. Abilitanto questa opzione il disco non scriverà quelle informazioni e si avrà un aumento delle prestazioni. Questo è solo un piccolissimo esempio su alcuni trick spulciati per fare qualcosa in più con il nostro sistema operativo Linux. Ne esistono molti altri ovviamente, tuttavia bisogna smanettare un pò per venirne a conoscenza. Se volete postarne qualcuno di nuovo fate pure. Alla prossima.

Overloading del costruttore – REVIEWED -

Eh sì, devo proprio dirlo. Ho sbagliato !!! Non che non mi capiti mai, ma questa volta l’ho anche scritto sul mio blog, quindi DEVO riparare e salvare quello che ancora rimane della mia reputazione. L’errore è stato nel post in cui si parlava dell’overloading del costruttore, rimetto di seguito il giochino che avevo pubblicato:

1
2
3
4
5
6
7
8
public class OverloadResolver {
    public OverloadResolver(Object param) {
        System.out.println("Construttore con parametro Object");
    }
    public OverloadResolver(Object[] param) {
        System.out.println("Costruttore con parametro Object[]");
    }
}

La domanda era: "Qualcuno sa cosa succede se faccio questa chiamata:"

1
2
3
4
5
......
public static void main(String[] args) {
    OverloadResolver or = new OverloadResolver(null);
}
......

Ingenuamente mi son fidato. Nel senso che ho considerato buona la risposta che ho trovato nell’articolo che ho letto in internet, (in realtà volevo anche rispondere ora che so la risposta corretta, ma non riesco più a trovarlo, poi vi dico se lo trovo) e quindi non mi sono posto il problema di testarlo. Quando ieri, un caro vecchio amico, mi ha fatto gentilmente notare, e per gentilmente intendo a modo suo, che la risposta da me data non era quella giusta, in quanto diffidando dalla risposta ha testato l’esempio, e il risultato non era quello che avevo dato. Quindi, eseguendo l’esempio, il risultato è che viene richiamata la funzione:

1
2
3
public OverloadResolver(Object[] param) {
    System.out.println("Costruttore con parametro Object[]");
}

Perchè ? Il motivo lo incollo, così come l’ho trovato in internet, ovviamente sul sito della sun:

So the third rule is to choose the most "specific" method. The rule is: if any method still under consideration has parameter types that are assignable to another method that’s also still in play, then the other method is removed from consideration. This process is repeated until no other method can be eliminated. If the result is a single "most specific" method, then that method is called. If there’s more than one method left, the call is ambiguous. Suppose that you have the methods: f(float) f(double) In this case, the parameter types for the first method are assignable to the parameter types of the second method, that is, it’s legal to say: double = float through a widening primitive conversion. By contrast, saying: float = double is not valid without a cast. Based on this third rule, f(double) is removed from the set of possible methods to call, and therefore f(float) is called.

Morale della favola? La prossima volta non fidatevi degli articoli trovati in rete senza prima averli provato. Ciauu

WordPress Themes