Archive for May, 2009

Auricolare bluetooth su Ubuntu


2009
05.29

Ho comprato da poco su ebay un auricolare BT da pochi euro, che vorrei usare con Ubuntu oltre che con il cellulare. Per il secondo, nessun problema, per il primo la questione è: che ci devo fare?

Intanto mi accontento di far funzionare Skype e quindi creo un nuovo device per ALSA andando a editare (se non esiste createlo) un file .asoundrc nella mia home con all’interno questo (do per scontato che abbiate un’interfaccia bluetooth sulla vostra macchina, integrata nel caso di un portatile di ultima generazione o un dongle USB nel caso di un fisso…):

pcm.bluetooth {
   type bluetooth
   device 00:11:22:33:44:55
   profile "auto"
}

Ovviamente dovete sostituire 00:11:22:33:44:55 con il MAC del vostro auricolare (se non sapete come si trova andate a fine post). A questo punto effettuate il pairing con il dispositivo come al solito su Ubuntu, cliccando sull’icona del Bluetooth vicino all’orologio, selezionando “Add new device…” e seguendo le istruzioni. Ricordate sempre che il vostro auricolare dovrà essere in modalità pairing, quindi mano al manuale.

Ora riavviamo alsa-utils con

sudo /etc/init.d/alsa-utils restart

e andando sulle opzioni audio di Skype dovremmo trovare un nuovo dispositivo chiamato bluetooth -ovviamente- che dovrebbe far funzionare bene il nostro microfono/auricolare con il noto software VOIP.

Per usare l’auricolare anche con altre applicazioni bisogna impegnarsi un pochino e vedere software per software come fare. Un valido aiuto potrebbe essere questo wiki, anche se alcuni software già alvorano abbastanza bene se impostati a lavorare con questo nuovo device, come VLC.

Fatemi sapere, eventuali lettori, se avete idee/problemi/suggerimenti.

Come conoscere il MAC address del proprio device

  1. Accendere l’interfaccia Bluetooth del proprio PC
  2. Accendere il dispositivo e metterlo in pairing mode (leggete il manuale del dispositivo per sapere come fare)
  3. Aprite un terminale e digitate
  4. hcitool scan
  5. Avrete a qesto punto un output simile a questo:

  6. Scanning ...
    00:16:B8:EB:DE:DB W300i
    00:1F:5B:76:36:7B n/a
    00:16:41:F4:E2:5F PC189183095118

  7. Trovate il nome del vostro dispositivo e a sinistra avrete il suo MAC

Come creare barzellette stupide


2009
05.19

Sono in vena polemica con il mondo stasera, a causa di una acidità di stomaco dovuta a chissà cosa.

Mi vengono continuamente in mente delle frasi o delle situazioni idiote, che cerco sempre, come al mio solito, di immaginare in situazioni reali. Dato che il più delle volte il risultato è peggiore del pensiero iniziale mi son chiesto: cosa succederebbe se dicessi veramente quello a cui penso? Continuerebbero comunque a stimarmi (poco)?

Ed eccomi qui a spiegare i miei processi mentali…

Dunque, vedendo il muro sporco della mia camera ho pensato che un letto non sporca il muro se è provvisto della parte che si frappone fra il cuscino e il muro vero e proprio, in gergo chiamata testata.
Dato che la stanchezza aiuta l’idiozia ed è mezzanotte passata, ho pensato che testata nella lingua italiana contemporanea può significare anche colpo inferto con la testa a qualcuno o qualcosa.

Per rendere ambigua una frase del tipo “ho dato una testata” ho immaginato quindi una situazione in cui qualcuno da via, magari per beneficenza, la parte anteriore di un letto, e quindi lo racconta a qualcuno.

Ecco quindi che abbiamo creato un “gioco di parole”, molto stupido, attorno ad una parola ancora più stupida.

Il tutto non è molto eclatante, diciamo che non fa ridere assolutamente nessuno, se leviamo i bambini sotto i cinque anni (se non hanno già un qi normale) e gli anziani che guardano “L’eredità” su Rai Uno.

Perché ho fatto tutta questa disserzione?
Perché ce l’ho con quelli che guardano l’eredità…

Un uso carino di screen


2009
05.18

Gnu Screen è una utility di Linux di cui si trovano facilmente molti tutorial a riguardo.

Quello che voglio fare con questo breve post è rendere pubblico ciò che ho appreso ieri sera tra amici, una cosa davvero utile per chi ha un server (o anche il proprio pc) e svolge ripetitivamente gli stessi task.

Andremo a creare un menu interattivo accessibile da shell con all’interno alcuni comandi preferiti. Il menu sarà simile a questa immagine:

screen_first

Selezionando uno dei menu verremo portati al comando corrispondente (che gira in background sul nostro server). Ovviamente non lanciate comandi molto pesanti, dato che il server continuerà ad eseguirli finchè non terminate la sessione in screen…

Per prima cosa quindi dal nostro server lanciamo screen con:

screen -a

che dovrebbe restituire una sotto-shel. In questa lanciamo un comando che ci può tornare utile, ad esempio

mtr google.it

che restituisce le statistiche di rete verso l’host google.it.

Una volta che avremo al schermata premiamo Ctrl+a A per dare il nome alla finestra corrente, cancellando bash e mettendo ad esempio MTR.

Premiamo ora Ctrl+a c per creare una nuova finestra di screen. Ci apparirà il solito terminale e noi lanciamo un altro comando, ad esempio top. Ora che abbiamo la schermata di top rinominiamo anche questa finestra (Ctrl+a A) come TOP e andiamo a vedere se il nostro menu si è popolato premento Ctrl+a “ (si, sono proprio le “virgolette”).

Ci dovrebbe apparire un menu simile a quello in figura, con dentro le nostre due belle voci. Selezionando “MCR” vedremo che il nostro bel comando sta ancora facendo i suoi traceroute (a meno che non l’abbiamo chiuso con q).

Con lo stesso comando Ctrl+c creiamo altre finestre, tutte quelle che vogliamo e salviamole come ci pare. Una volta che avremo finito di fare il tutto stacchiamo ci da screen NON CON exit ma con Ctrl+a d

Ora possiamo anche uscire dal nostro server e riconnetterci da dove e quando vogliamo. Se screen non è stato riavviato possiamo riattaccarci alla sessione con

screen -r

e ritrovare il nostro bel menu (che ricordo è accessibile con Ctrl+a “).

Buon divertimento!

Un’alternativa ai DNS dinamici, ovvero come sapere quando cambia il vostro IP


2009
05.15

Dato che non sempre DynDNS e il mio router vogliono saperne di collaborare (e quindi mi lasciano “fuori casa”) ho scritto un piccolo script in perl da eseguire in crontab ogni 10 minuti.

Lo script utilizza il noto chisono.it e in particolare questa pagina per ottenere il proprio indirizzo pubblico. Dopodichè lo salva in un file e lo confronta ogni 10 minuti. Se trova che le ultime cifre sono cambiate, è ragionevole pensare che l’inirizzo intero sia cambiato e quindi invia una email ad un determinato indirizzo.

Devono essere installati sul proprio PC per far si che funzioni:

  • Perl
  • Un MTA (ad esempio Exim o Postfix) che funzionino da relay (vedi questo post in proposito)
  • Il programma mailx (che di solito viene installato con l’MTA)

Il codice dovrebbe essere chiaro e comprensibile, se così non fosse…comunicatemelo senza problemi!

#!/usr/bin/perl
#
# Alert when our public IP address changes.
# Need to be scheduled with cron (every 10 minutes, eg).
# This script also requires a working MTA and the mailx program installed.
#
# This script can be freely modified/distributed/used.
#
# 
 
use strict;
use LWP::Simple;
 
# Variables definitions
# customize please!
my $dir = "/home/dirichlet/";  # CHANGE THIS
my $emailadd = "my\@email.com"; # CHANGE THIS
my $fromadd = "ipwatch\@mycomputer.com"; # CHANGE THIS 
 
# Move to the working directory, otherwise the script can't be executed
# with success by cron (but can be launched manually without problem)
chdir $dir;
 
# Get the current IP address
my $current_ip = get('http://www.chisono.it/ip.asp'); 
 
# Take the last part of the address
my ($a1, $a2, $a3, $a4) = split /\./, $current_ip;
 
# Assumes that a file named "myip.txt" is in the working directory
open FILE, "myip.txt" or die $!;
 
# Read the first line of the fil (the address) and takes the last part
my $readip = ;
my ($b1, $b2, $b3, $b4) = split /\./, $readip;
 
if ($readip eq $current_ip) {
       print "Addrress not changed\n"; # Useful only for debugging
} else {
       print "Address changed: old IP: $readip ; New IP: $current_ip\n"; # Useful only for debugging
 
	   # Saves the address in a file (overwriting the existing one)
       getstore('http://www.chisono.it/ip.asp', 'myip.txt');
 
	   # Send an email to the specified email address with the new address as body
       system("mailx -s \"IP changed!\" -a \"From: IPWatch <$fromadd>\" $emailadd < myip.txt");
}

I passi da seguire per far si che il tutto funzioni sono quindi questi:

  1. Salvare lo script in una cartella sul proprio server/computer, ad esempio nella vostra /home
  2. Andare su http://www.chisono.it/ip.asp, copiare l’indirizzo e incollarlo in un file vuoto chiamato myip.txt.
    Salvare e chiudere il file. Il file deve trovarsi nella stessa cartella dello script.
  3. Modificare le tre variabili all’inizio dell script sostituendo i valori con quelli appropriati. E’ importante che la variabile $dir sia la cartella dove è salvato il vostro script e che non vengano elvati i simboli di backslash davanti alla chiocciola.
  4. Provare ad eseguire lo script. Non dovrebbe inviare una mail ma dovrebbe stampare soltanto “Address not changed”.
    Se ne avete la possibilità riavviate il vostro modem e rilanciate lo script. Stavolta dovrebbe scrivere un messaggio diverso con il vecchio e il nuovo IP e dovrebbe inviare una email. Se questa non arriva controllate in /var/log/mail.log o ovunque la vostra distribuzione salvi i file di LOG dell’MTA.
  5. Se lo script funziona, procedete come segue per impostarne la schedulazione:
    • Eseguite crontab -e
    • Se viene richiesto di usare un editor scegliete nano.
    • Sotto la prima linea (che dovrebbe iniziare con un commento) scrivete quanto segue:
      0-59/10 * * * * /usr/bin/perl /home/dirichlet/script.pl >/dev/null 2>&1
    • Questo presuppone che vogliate eseguire lo script una volta ogni 10 minuti (0-59/10), che abbiate installato Perl e che l’eseguibile si trovi in /usr/bin/perl (altrimenti un which perl vi dirà dov’è) e che il vostro script sia stato salvato in una home di un fantomatico utente dirichlet come script.pl. Ovviamente modificate questi parametri.
    • Ctrl+o e Invio per salvare, Ctrl+x per chiudere. Il vostro script ora verrà eseguito come schedulato.
  6. Una volta che tutti questi passi saranno compiuti potete tranquillamente sedervi e aspettare che vi arrivi una email nel momento in cui il vostro IP, per qualsiasi ragione cambierà. Potete anche inserire il comando per l’esecuzione dello script in /etc/rc.local per far si che il vostro server all’avvio vi informi.

Nel caso qualcosa non funzioni correttamente ecco come fare un po’ di troubleshooting:

  • Se viene restituito un qualche errore quando provate ad eseguire lo script “a mano” segnalatemelo, probabilmente c’è un errore nel codice.
  • Se non ricevete nessuna email controllate che l’indirizzo sia cambiato e che i parametri all’inizio dello script siano stati settati in maniera corretta.
  • Se continuate  a non ricevere nulla controllate il file /var/log/cron.loog (su Ubuntu va attivato) e /var/log/daemon.log per avere maggiori informazioni.

Il tutto è stato testato con Ubuntu 9.04 Desktop e Server…

EDIT: per gli amanti di python (e delle soluzioni semplici) guardate questa pagina

Canonical TimeVault ovvero come fare una rapido backup dei vostri files (e non pensarci più)


2009
05.13

Sempre alla ricerca di una “killer app” su Linux per il mio backup personalizzato (un giorno me ne scrivo una da me…) mi sono imbattuto più volte in TimeVault, così ho deciso di provarlo.

Questo software, prodotto da Canonical, si propone come alternativa pinguina a Time Machine di Apple, ma senza obbligare l’utente ad avere un Mac, dei soldi che gli escono dal culo e cose del genere. L’unica cosa che serve infatti è Ubuntu e un HD (magari esterno) un po’ grandicello.

TimeVault non farà altro che tenere traccia dei cambiamenti che abbiamo fatto ai files di una directory specifica e darci così la possibilità di ripristinarli alla versione che vogliamo, senza starci troppo a preoccupare. Oltretutto la grafica è gradevole (anche se pecca un po’ in usabilità) e le possibilità ampie.

Ho provato anche backintime ma mi convinceva poco e l’ho disinstallato subito…ora con TimeVault faccio la copia del mio HD da 320Gb su cui tengo musica, documenti, film, ecc… (ma non la home) in un HD esterno della Western Digital da 640Gb che mi dovrebbe fornire una valida alternativa sia al backup centralizzato su di un server in rete (troppo lento) sia al backup delle singole cartelle in HD esterni separati da attaccare via USB ogni volta…
Con questa soluzione sto decisamente più largo, anche se comunque continuo ad utilizzare sbackup per il backup della home, almeno finchè non trovo un’alternativa decente.

Questo per ora quello che ho capito e che ho fatto con TimeVault:

Scaricato il file .deb da questo indirizzo. Al momento in cui scrivo siamo alla beta relase candidate (versione 0.7.5-1). Installato nel modo classico (doppio clic sopra) trovo nel menu Applications – System Tools la voce TimeVault.

Il menu di Gnome

Appena lanciata, l’applicazione presenta la schermata delle preferenze:

La schermata delle preferenze

Selezioniamo la prima casella “Enable automated snapshots” e selezioniamo per lo storage il nostro disco esterno (o anche un’altra directory a vostra scelta, tenendo conto delle considerazioni di base per il backup di spazio e separazione dei media).

Vedremo anche che vicino all’orologio sarà apparsa una piccola iconcina verde e rossa: da li potremo selezionare alcuni menu di TimeVault.

Nella scheda “Include” io ho dapprima eliminato la voce /etc/ e quindi aggiunto la cartella (in realtà è un HD sata di nome “Bello”)  che mi interessava salvare e monitorare ed ho selezionato come delay “5 Mins”, il che vuol dire che TimeVault cercherà modifiche ai files in quella cartella ogni cinque minuti e, se necessario, creerà un file backup di tutti i files che sono stati modificati.

La scheda Include

Poi sono tornato alla prima scheda “General”, ho cliccato sulla checkbox “Advanced” e ho impostato “Maximum file size to back up” a 97.7 GB (la dimensione massima consentita, credo) in modo da backuppare tutti i files indipendentemente dalla loro dimensione. Se non avessi fatto questo non avrei potuto salvare film e archivi vari…

La casella Avanzate

Per quanto riguarda invece le schede “Exclude” ed “Expire” le ho lasciate così come sono, dato che le impostazioni sono sensate e non mi interessa backuppare la mia home.

A questo punto sono tornato alla scheda “Include”, ho selezionato la directory che ho deciso di monitoreare e ho cliccato sul bottone “Baseline” per creare una prima copia di tutti i files. Se non avessi fatto così il programma avrebbe cominciato a tener traccia dei cambiamenti solo alla modifica di ogni file.
Cliccando ora sul bottone “Save” facciamo partire la schedulazione dei backup, come possiamo vedere sia soffermandoci con il cursore sull’icona di TimeVault vicino all’orologio, sia cliccando su questa con il tasto sinistro del mouse.

pending

Quando tutto questo lavoro finirà avremo sul nostro HD esterno una struttura con tre cartelle (assumendo che precedentemente sia stato vuoto), ovvero “catalog”, “internal” e pending”.

Da questo momento in poi avremo i nostri files sempre monitorati e pronti per essere ripritinati ad una qualunque delle versioni precedenti grazie al menu “Snapshot browser”, accessibile con il tasto destro del mouse sulla solita icona:

Lo snapshot browser

Cliccando su uno dei rettangoli in alto (nel mio caso non aveva ancora finito il baseline) possiamo vedere la lista dei files contenuti ed eventualmente, cliccando sul bottone “Revert” e scegliendo la destinazione, ripristinarlo ad uno stato precedente. Se vogliamo inoltre possiamo filtrare i contenuti in base al fatto che questi siano dei dati reali o dei metadati.

TimeVault crea un demone che parte all’avvio (/etc/init.d/timevault) ma il notifier (l’icona) deve essere fatta partire “a mano”, oppure aggiungendo a System – Preferences – Startup Applications i seguenti parametri:

Name: quello che volete
Command: /usr/bin/timevault-notifier
Comment: quello che volete

startup

Ci sarebbero ancora un sacco di cose da aggiungere come l’integrazione in Nautilus o le opzioni avanzate, ma sono stanco e vi lascio con un po’ di link:

http://www.howtoforge.com/snapshot-backups-with-timevault-ubuntu-7.10 – Un tutorial in inglese per la 7.10 ma sempre valido…
https://launchpad.net/timevault – La pagina ufficiale del progetto su Launchpad
https://wiki.ubuntu.com/TimeVault – Il wiki ufficiale del progetto