password generator
Mi serviva una nuova password, così, preso da un’attacco di fancazzismo, ho creato questo piccolo programma.
Mi serviva una nuova password, così, preso da un’attacco di fancazzismo, ho creato questo piccolo programma.
Anche in vacanza mi fanno lavorare!
“Tutta colpa” di mio fratello che ha comprato un Eeepc 901Go e dopo averci messo kubuntu/ubuntu ha notato il non funzionamento della shortcut Fn+F2 che permette lo spegnimento/accensione della scheda wireless e dell’annesso led in basso.
Son fin da subito riuscito a disattivare il led e la scheda ma il problema era la riaccensione infatti non funzionava se non riavviando il sistema… poi ieri sera finalmente ecco la soluzione!
Bisogna modificare il file /boot/grub/menu.lst per impostare alcuni parametri al caricamento del kernel (infatti il modulo incriminato di questo “malfunzionamento” è pciehp che è compilato staticamente), queste sono le modifiche da effettuare; si devono aggiungere alla linea kernel del file le stringhe “pciehp.pciehp_force=1 pciehp.pciehp_poll_mode=1” in modo da avere alla fine questo risultato:
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=3ddd8611-ec14-4c47-8812-d76a58ffe048 ro quiet splash pciehp.pciehp_force=1 pciehp.pciehp_poll_mode=1
Dopo aver riavviato il sistema passiamo a testare il corretto funzionamento di tutto, prima di tutto disattiviamo la scheda:
ifdown wlan0 ifconfig wlan0 down echo 0 > /sys/class/rfkill/rfkill0/state modprobe -r ath5k
Ora proviamo a riattivarla:
echo 1 > /sys/class/rfkill/rfkill0/state modprobe ath5k ifconfig wlan0 up ifup wlan0
A questo punto connettiamoci come solitamente facciamo (dall’applet nella systray da pppoeconf o da qualsiasi altro programma), la scheda è nuovamente attiva!
Ora scriviamo un piccolo script da associare alla combinazione di tasti Fn+F2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash TMP='/tmp/wireswitch' if [[ -f $TMP ]]; then rm $TMP echo 1 > /sys/class/rfkill/rfkill0/state modprobe ath5k ifconfig wlan0 up ifup wlan0 else touch $TMP ifdown wlan0 ifconfig wlan0 down echo 0 > /sys/class/rfkill/rfkill0/state modprobe -r ath5k fi |
Ora non vi resta che copiare lo script in /usr/sbin e associarlo al vostro gestore delle shortcut.
Ricordatevi solo che tutti i comandi vanno eseguiti come root quindi, in fase di associazione del comando alla combinazione, ricordatevi di premettere kdesudo o gtksudo al nome dello script.
Vi è mai capitato di dover differenziare il comportamento di uno script sin dall’avvio del vostro computer?
Ad esempio mi occorreva disabilitare l’avvio automatico di X subito dopo il login da tty (vedere xttydm), ecco come farlo passando un semplice parametro al kernel in fase di caricamento.
Il funzionamento è molto semplice: tutti i parametri di avvio del kernel possono essere trovati in /proc/cmdline, basta semplicemente controllare che il parametro che ci interessa esista:
case $TERM in linux) START=`cat /proc/cmdline | grep xtty` if [[ -n $START ]]; then ~/bin/startx.sh && fi ;; *) ;; esac |
inserite questo codice in .bashrc e ad ogni login da tty se l’opzione xtty è presente come parametro del kernel, X verrà automaticamente fatto partire.
Semplice no?
Avevo la necessità di trovare un modo rapido per aprire files e cartelle direttamente facendoci click dal files-manager, ed ecco che è nato questo semplice script (che utilizza mpc).
#!/bin/bash function usage { echo "Errore nei parametri" echo "Usage: mpcplay [PARAMETERS] fileName" echo "-ao --add-only: Aggiunge solo alla playlist" echo "-p --play: Avvia anche la riproduzione (Default)" exit } function splitName { echo "$1" | awk -F "$musicRootDirectory" '{print $2}' } if [[ $# -lt 1 || $# -gt 2 ]]; then usage fi action="-p" if [[ $# -eq 2 ]]; then action="$1" shift fi lastParameter="$@" musicRootDirectory="Music/" fileName="$lastParameter" if [[ -z `echo $lastParameter | egrep '^/'` ]]; then fileName="`pwd`/$lastParameter" fi trackName=`splitName "$fileName"` mpc clear 1>/dev/null mpc add "$trackName" 1>/dev/null case "$action" in '-ao') echo "Added $trackName" ;; '--add-only') echo "Added $trackName" ;; '-p') mpc play 1>/dev/null echo "Playing $trackName" ;; '--play') mpc play 1>/dev/null echo "Playing $trackName" ;; esac |
La configurazione è semplice, basta sostituire il parametro musicRootDirectory con la directory relativa impostata come music_directory in mpd. Ad esempio nel mio mpd.conf:
music_directory "/home/kekko/Music"
e la variabile musicRootDirectory è:
musicRootDirectory="Music/"
Semplice vero?
Sviluppando con eclipse mi sono reso conto che mi mancava una features molto comoda, il code-folding, cioè la capacità di un editor di collassare più linee di codice in una sola nascondendo quelle del blocco successivo.
Normalmente questo è perfettamente funzionante ma solo con determinati blocchi (ad esempio i metodi, le classi etc) e tutto è poco ampliabile.
Cercando in rete (con enorme difficoltà) ho trovato un progetto (Coffee-Bytes) che permette di fare esattamente questo ma in molti più blocchi ed anche in blocchi “personalizzati” (capirete successivamente cosa intendo).
L’installazione è molto semplice, basta aggiungere tra i link per l’update (Help->Software Updates) l’indirizzo specificato nella pagina web del progetto e successivamente selezionare Coffee-Bytes per l’installazione.
A questo punto non rimane che abilitarlo dal menù Window->Preferences :
E ricaricando il file java aperto questo è il risultato:
Da notare il blocco personalizzato delimitato da “//[start]” e da “//[end]“.
Happy Coding