lunedì, febbraio 04, 2008

OpenIMSCore: guida all'installazione e alla configurazione

Come si può notare, è da parecchio che non scrivo. Sarà il periodo di stage presso Accenture (Roma) e sarà il tempo impiegato allo scrivere la tesi, ma non riesco proprio ad investire tempo nel blog. Oggi vi scrivo e traduco una guida che sto utilizzando per installare e testare IMS.

Cosa è IMS?


L'architettura di rete IP Multimedia Subsystem (IMS) è divenuta standard grazie alla collaborazione di Telecoms & Internet converged Services & Protocols for Advanced Networks (TISPAN) e Il Third Generation Partnership Project (3GPP), commissioni istituite dall'organo di standardizzazione European Telecommunications Standards Institute (ETSI).
IMS (IP Multimedia Subsystem) svolge un ruolo importante offrendo dei servizi chiave come la Quality of Service (QoS), la sicurezza, la messaggistica istantanea (Instant Messaging), IP Television (IPTV), etc. sia in reti fisse che in reti mobili.
La struttura base di IMS che permette di supportare i servizi di IM e di chat è la seguente:
  • Home Subscriber Server (HSS)

  • Proxy - Call Session Control Function (P-CSCF)

  • Interrogating - Call Session Control Function (I-CSCF)

  • Serving - Call Session Control Function (S-CSCF)


Per maggiori informazioni, sull'architettura e sui componenti vi consiglio di dare una lettura a http://en.wikipedia.org/wiki/IP_Multimedia_Subsystem.



Cosa è OpenIMSCore?


OpenIMSCore è un progetto OpenSource (di Fraunhofer FOKUS, ente tedesco che focalizza la sua attenzione nella ricerca e sviluppo di nuove tecnologie) che ha prodotto l'omonimo software: tale software implementa le funzionalità delle 3 tipologie di CSCF e una versione approssimativa, ma comunque efficace, dell'HSS. Il progetto OpenIMSCore appartiente ad un progetto OpenSource OpenIMS Playground (gestito dallo stesso gruppo FOKUS) molto più esteso che cerca di implementare tutti i servizi definiti dallo standard IMS.

Per maggiori informazioni su OpenIMSCore e su OpenIMS Playground vi consiglio di visionare i seguenti siti:
http://www.openimscore.org/
http://www.fokus.fraunhofer.de/bereichsseiten/testbeds/ims_playground/index.php?lang=en

Guida d'installazione


La seguente guida d'installazione è stata testata su due versioni di Ubuntu: Ubuntu 7.04 Feisty Fawn e Ubuntu 7.10 Gutsy Gibbon. Inoltre, in questa guida, al fine di testare la corretta funzionalità del sistema proporrò l'installazione e la configurazione di un client SIP/IMS UctIMSClient (client sviluppato dall'Università di Cape Town in Sudafrica: http://uctimsclient.berlios.de/) che permette di capire se i messaggi SIP vengono elaborati correttamente dall'architettura. Se non si desidera utilizzare tale software si può utilizzare qualsiasi client SIP/IMS tra i quali sottolineo:

In questi casi, almeno in prima istanza non propongo ne una guida d'installazione ne una configurazione. Comunque per chi volesse provarli, tali software sono facili da configurare e le informazioni per configurarle possono essere facilmente ricavate dalle informazioni utilizzate per configurare UctIMSClient, il quale da un punto di vista didattico risulta essere il più completo.

Per chi volesse implementare un numero maggiore di servizi e componenti, l'Università di Cape Town ha creato il codice e la relativa guida per installarli. In particolare, i servizi prodotti e le relative guide d'installazione sono:
La mia guida sarà una fusione ed una integrazione con delle configurazioni personali che hanno permesso di far girare correttamente il software con semplicità. In particolare, le guide usate sono:
Come si può notare, la maggiorparte delle guide gira su Ubuntu e in molti casi su Ubuntu 7.10 Gutsy Gibbon.

OpenIMSCore: download del codice sorgente


Per scaricare il codice sorgente abbiamo bisogno del pacchetto subversion:

sudo apt-get install subversion

Creiamo le cartelle nel quali verrà posto il codice sorgente scaricato:

sudo mkdir /opt/OpenIMSCore/

Diamo i diritti all'utente con cui accediamo di solito di poter lavorare sulla cartella richiesta /opt/OpenIMSCore:
sudo chown -R username /opt/OpenIMSCore/

dove al posto di username inseriamo il nome utente dell'utente che siamo soliti utilizzare.
Adesso creiamo le due cartelle in cui viene posto il codice: in una verrà posto il codice che compilato produrrà le funzionalità degli CSCF e nell'altra verrà posto il codice che compilato produrrà le funzionalità di HSS.
cd /opt/OpenIMSCore
mkdir ser_ims
mkdir FHoSS

Scarichiamo adesso il codice:
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/ser_ims/trunk ser_ims
svn checkout http://svn.berlios.de/svnroot/repos/openimscore/FHoSS/trunk FHoSS

In questo caso, si considera che il collegamento ad internet avvenga in maniera diretta. Se ci troviamo dietro ad un proxy dobbiamo configurare correttamente subversion.

OpenIMSCore: installazione dei pacchetti utili per la compilazione


Abbiamo bisogno di un certo numero di pacchetti per la compilazione. Per installarli lanciare da terminale il seguente comando:
sudo apt-get install sun-java6-jdk mysql-server libmysqlclient15-dev libxml2 libxml2-dev bind9 ant flex bison


OpenIMSCore: configurare le impostazioni del Server DHCP e del Server DNS


Siccome stiamo imponendo che il server DNS giri sulla nostra macchina, allora dobbiamo cancella il # e rende attiva l'opzione prepend domain-name-servers 127.0.0.1; nella file /etc/dhcp3/dhclient.conf. Ricordati di aprire il seguente file con i diritti di root.

Copiamo il file open-ims.dnszone nella cartella /etc/bind:
sudo cp /opt/OpenIMSCore/ser_ims/cfg/open-ims.dnszone /etc/bind/

Ricordo che bind è un server DNS OpenSource.
Aggiungiamo in coda al file /etc/bind/named.conf.local le seguenti righe:

zone "open-ims.test" {

type master;

file "/etc/bind/open-ims.dnszone";

};

Riavviamo il server DNS con il seguente comando:

sudo /etc/init.d/bind9 restart

Dobbiamo fare in modo che il server DNS possa essere contattato dal nostro PC: per questo motivo editiamo il file /etc/resolv.conf aggiungendo le seguenti righe:
search open-ims.test
nameserver 127.0.0.1

Verifichiamo che funzioni correttamente pingando pcscf.open-ims.test

ping pcscf.open-ims.test

Di regola, dovremmo ottenere risposta. Se il ping non va, riavviamo l'interfaccia di rete lo (localhost) o attiviamola, nel caso non sia stata attivata:

sudo /etc/init.d/networking restart

e rieseguiamo il ping attraverso il comando precedentemente descritto.
Questa è la fase più complessa di tutta l'installazione in quanto in molti casi il software non gira correttamente a causa dell'errata configurazione del server bind.

OpenIMSCore: configurare i database


Così come succede nell'architettura IMS, anche in OpenIMSCore viene implementato un database in MySql. Per questo motivo bisogna settarlo introducendo le informazioni sia riferite a I-CSCF che ad HSS.
Lanciamo i seguenti comandi:
cd /opt/OpenIMSCore
mysql -u root -p < ser_ims/cfg/icscf.sql
mysql -u root -p < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql

Ci verrà chiesta una password che di default non viene settata in MySql: per questo motivo premiamo semplicemente Invio.

OpenIMSCore: Compilazione dei sorgenti


Compiliamo inizialmente i CSCF. Per farlo lanciamo i seguenti comandi:
cd /opt/OpenIMSCore/ser_ims/
sudo make install-libs all

La durata della compilazione varia in base alle caratteristiche della macchina in cui viene installato il software. In genere, la durata si aggira tra i 5-10 minuti.
Per compilare invece HSS (FHoSS nel OpenIMSCore) dobbiamo settare la variabile d'ambiente di JAVA attraverso il comando:
export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"

Siccome tale variabile d'ambiente deve essere settata ogni qualvolta si lancia lo script relativo all'esecuzione di FHoSS, vi consiglio di modificare .bashrc presente nella propria home dell'utente:

gedit ~/.bashrc

Incolliamo alla fine la seguente stringa:
export JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"

salviamo e chiudiamo il file. Lanciamo:

source ~/.bashrc

per rendere effettive le modifiche alle variabili d'ambiente.
Compiliamo FHoSS attraverso i seguenti comandi
cd /opt/OpenIMSCore/FHoSS
ant compile deploy

Infine modifichiamo il file ZhDataType.xsd presente nella cartella /opt/OpenIMSCore/FHoSS/xsd/
gedit /opt/OpenIMSCore/FHoSS/xsd/ZhDataType.xsd

e sostituiamo la linea
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
con
schemaLocation="file:///opt/OpenIMSCore/FHoSS/xsd/xml.xsd"/>


OpenIMSCore: Esecuzione dei vari script


Per facilitare l'esecuzione copiamo tutti i file di configurazione di tutti CSCF e di FHoSS e i relativi script di esecuzione nella cartella /opt/OpenIMSCore/:
cp /opt/OpenIMSCore/ser_ims/cfg/* /opt/OpenIMSCore/

Infine lanciamo tutte le entità di OpenIMSCore. Vi consiglio di aprire una nuova scheda (Ctrl+Masc+T) ad ogni entità e di settare il titolo della scheda.
Per lanciarce P-CSCF
/opt/OpenIMSCore/pcscf.sh

Per lanciare I-CSCF
/opt/OpenIMSCore/icscf.sh

Per lanciare S-CSCF
/opt/OpenIMSCore/scscf.sh

Per lanciare FHoSS
/opt/OpenIMSCore/fhoss.sh


OpenIMSCore: testare OpenIMSCore e installare UctIMSClient


Per testare OpenIMSCore, bisogna installare UctIMSClient (nel mio caso). Se desiderate installare o utilizzare un altro software che supporta SIP così come spiegato nell'introduzione.

UctIMSClient: Download e installazione del pacchetto .deb


Nel caso il Sistema Operativo sul quale avete installato OpenIMSCore sia Ubuntu 7.04 Feisty Fawn, dovete scaricare la versione 1.07 di UctIMSClient
cd ~/Desktop
wget http://download.berlios.de/uctimsclient/uctimsclient1.0.7.deb

Nel caso il Sistema Operativo sul quale avete installato OpenIMSCore sia Ubuntu 7.10 Gutsy Gibbon, dovete scaricare la versione 1.09 (l'ultima) di UctIMSClient:
cd ~/Scrivania
wget http://download.berlios.de/uctimsclient/uctimsclient1.0.9.deb

Per l'installazione possiamo utilizzare o il doppio click o utilizzare il comando:
sudo dpkg -i uctimsclient1.0.*.deb

Durante l'installazione, vengono installati e configurati vari pacchetti scaricati dai repository ufficiali di Ubuntu.

UctIMSClient: configurazione


Bisogna inizialmente lanciare UctIMSClient, aprendo una nuova scheda e impostate il titolo Bob:
uctimsclient

Di regola, le impostazioni di default di UctIMSClient sono conformi alle informazioni contenute nel HSS e conformi alla topologia della rete. Nella figura sottostante viene presentata la configurazione dell'utente Bob che è già configurato nel database . Le stesse configurazioni a meno del Public User Identity, Private User Identity e della Password.


Comunque nel caso di Bob:
  • Public User Identity: sip:bob@open-ims.test
  • Private User Identity: bob@open-ims.test
  • Password: bob


Aprite inoltre un altra scheda con il titolo di Alice e lanciate un altro UctIMSClient:
uctimsclient


Nel caso di Alice:
  • Public User Identity: sip:alice@open-ims.test
  • Private User Identity: alice@open-ims.test
  • Password: alice

UctIMSClient: invio del messaggio register deregister e chiamata SIP


Per eseguire la register, bisogna semplicemente cliccare sul tasto Register as Alice nel caso del terminale di Alice, così come in figura sottostante; nel caso di Bob bisogna cliccare sul tasto Register as Bob nel caso del terminale di Bob.



Basta cliccare sul tasto Deregister nel UctIMSClient per eseguire la deregister dell'utente desiderato a cui appartiene il client UctIMSClient.
Consiglio inoltre attraverso di tasti di Call or Answer, ricordatoci di indicare correttamente l'indirizzo SIP al quale rivolgere la chiamata. Nel caso si utilizzi il terminale di Alice, l'indirizzo al quale rivolgere la chiamate è sip:bob@open-ims.test, cosi come nella figura sottostante.


OpenIMSCore: aggiungere nuovi utente e gestire HSS (opzionale)


Per aggiungere un nuovo utente e per gestire l'HSS, siamo facilitati dall'interfaccia grafica che viene chiamata attraverso un browser web.
Per farlo, aprite Firefox e scrivere dentro:
http://localhost:8080

Vi verranno chieste Username e Password ed inserite le seguenti info:
Username: hssAdmin
Password: hss

Ricordo che è case-sensitive.

OpenIMSCore: Customizzare la rete IMS


Potete cambiare il realm (nel caso delle impostazioni di default era open-ims.test) e l'indirizzo IP di tutta la rete (nel caso delle impostazioni di default era 127.0.0.1).
Gli sviluppatori hanno realizzato uno script di bash chiamato configurator.sh che permette di modificare i file di configurazione utili per una customizzazione della rete IMS su un unica macchina, cioè tutti gli script delle varie entità IMS devono essere lanciati dalla stessa macchina.

E' importante ricordare che questo script può essere usato solo una volta partendo da una installazione andata a buon fine: in pratica, se installate correttamente OpenIMSCore, potete usare configurator.sh; ma se modificate i file di configurazione manualmente o utilizzate configurator.sh dopo l'installazione di OpenIMSCore, non potete riusare lo script configurator.sh e siete costretti o a modificare configurator.sh al fine che rendi effettivi i nuovi cambi o dovete modificare manualmente i file di configurazione (operazione complessa per l'utente medio)

Lo script configurator.sh si trova, se avete seguito questa guida, in /opt/openIMSCore. Per customizzare la rete IMS, lanciare:

./configurator.sh pcscf.cfg icscf.cfg icscf.xml scscf.cfg scscf.xml ser_ims/cfg/icscf.sql FHoSS/deploy/DiameterPeerHSS.xml FHoSS/deploy/hss.properties FHoSS/scripts/hss_db.sql FHoSS/scripts/userdata.sql

Vi verranno chiesti, come già detto precedentemente, il realm e l'indirizzo IP.
Una volta fatto ciò, bisogna aggiornare il database utlizzando i seguenti comandi:
cd /opt/OpenIMSCore
mysql -u root -p < ser_ims/cfg/icscf.sql
mysql -u root -p < FHoSS/scripts/hss_db.sql
mysql -u root -p < FHoSS/scripts/userdata.sql

Se avete modificato il realm o l'IP, dovete rivedere le informazioni degli utenti e dei network setting presenti in HSS.
Infine, dovete riavviare le varie entità. In particolare, dovete bloccare i 3 cscf utilizzando Ctrl+C mentre dovete bloccare FHoSS scrivendo exit. Riattivate i servizi usando rispettivamente nelle 4 schede i comandi:
Per lanciarce P-CSCF
/opt/OpenIMSCore/pcscf.sh

Per lanciare I-CSCF
/opt/OpenIMSCore/icscf.sh

Per lanciare S-CSCF
/opt/OpenIMSCore/scscf.sh

Per lanciare FHoSS
/opt/OpenIMSCore/fhoss.sh


Riferimenti e supporto


Vi elenco i riferimenti a cui mi sono rifatto.



Per quanto riguarda il supporto, vi indico i possibili modi per avere assistenza:

Spero che la guida sia utile e comprensibile nonchè corretta. Questo progetto è veramente interessante e vi posso dire che sono riuscito ad installarlo su 4 macchine virtuali (che possono essere considerate 4 macchine reali), ognuna con un indirizzo IP diverso e su ognuna lanciavo una entità diversa. Il tutto, definito in un realm diverso da open-ims.test, funziona correttamente e successivamente proverò ad accedere alla rete IMS con i client SIP/IMS installato sui PC in rete con le macchine virtuali e con il client OpenIC installato su un palmare (se riesco a trovarlo).

Per piacere testatelo e fatemi sapere se ci sono errori nella guida o se commette errori nell'installazione o nella configurazione di OpenIMSCore. Quando diventerà stabile, penso che la farò rientrare nella documentazione di ubuntu-it.

Alla prossima.

Continua a leggere!

giovedì, novembre 01, 2007

Youtube-DL: interfaccia grafica - aggiornamento

Ho rivisto il programma e utilizzando i consigli dell'amico Fradeve ho apportato delle modifiche che posso riassumere in:
  • Possibilità di scegliere un minor numero di info durante l'utilizzo del programma. Se l'avete usato già una volta e non volete che ci siano alcune finestre create da zenity potere rispondere si alla domanda che vi viene posta durante l'esecuzione del programma;
  • Possibilità di convertire il file anche in formati liberi quali ogg.
La guida di installazione è identica a quella precedente, l'unica cosa che cambia è il contenuto dello script.

Chi deve semplicemente aggiornare il programma segue la Guida 1, mentre chi deve installarlo per la prima volta segue la Guida 2.



Guida 1


Installazione

Aprite il file che avete creato la volta scorsa per la prima installazione
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
Cancellate completamente tutto il contenuto e copiateci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
msg=`zenity --title="XBackup" --list --text="Ridurre le notifiche e i messaggi di informazioni?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $msg = "Si" ]];
then
msg=1;
elif [[ $msg = "No" ]];
then
msg=0;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi

de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
else
sleep 1;
fi
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
else
sleep 1;
fi
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
else
sleep 1;
fi
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi" false "Ogg"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Wmv" ]];
then
if [[ $msg -eq 0 ]]
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Mpeg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Ogg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.ogg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.ogg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per scaricare il file nel formato flv"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv



Guida 2


Requisiti


I requisiti sono i seguenti pacchetti scaricabili dai repo:

  • youtube-dl

  • ffmpeg

  • zenity


i quali possono essere installati lanciando il comando
 sudo apt-get install youtube-dl ffmpeg  zenity 


Installazione


Anche in questo caso l'installazione si poggia con la creazione di un file o script di bash. In particolare creare un file dal nome youtube con il comando
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
All'interno del file scriveteci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
msg=`zenity --title="XBackup" --list --text="Ridurre le notifiche e i messaggi di informazioni?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $msg = "Si" ]];
then
msg=1;
elif [[ $msg = "No" ]];
then
msg=0;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi

de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
else
sleep 1;
fi
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
else
sleep 1;
fi
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
if [[ $msg -eq 0 ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
else
sleep 1;
fi
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi" false "Ogg"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Wmv" ]];
then
if [[ $msg -eq 0 ]]
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
if [[ $msg -eq 0 ]]
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Mpeg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
elif [[ $formato = "Ogg" ]];
then
if [[ $msg -eq 0 ]]
then
ffmpeg -i tmp_file.flv ${video_name}.ogg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.ogg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
sleep 1;
fi
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per scaricare il file nel formato flv"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv





Salvate il file e chiudetelo. Una volta fatto ciò dategli i diritti di esecuzione lanciando il comando:
 sudo chmod a+x /usr/bin/youtube 

Ora il programma può essere lanciato dove volete. Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.


Alla prossima!!!

Aspetto altri vostri consigli

Continua a leggere!

mercoledì, ottobre 17, 2007

Youtube-DL: interfaccia grafica

In questo periodo, ho creato un nuovo programma con zenity. L'ho fatto per una mia esigenza personale: scaricare i video da youtube e convertirli nel formato desiderato, nel mio caso avi e 3gp. Il risultato è stato Youtube-DL che fa uso di youtube-dl (permette di scaricare i video da youtube in formato flv), di zenity (permette di creare l'interfaccia grafica) e di ffmpeg (permette di convertire i file flv nei formati richiesti).
Vi ricordo che i file temporanei (che verranno cancellati alla conclusione dello script) e i file creati nel formato desiderato si troveranno nella home.



Requisiti


I requisiti sono i seguenti pacchetti scaricabili dai repo:

  • youtube-dl

  • ffmpeg

  • zenity


i quali possono essere installati lanciando il comando
 sudo apt-get install youtube-dl ffmpeg  zenity 


Installazione


Anche in questo caso l'installazione si poggia con la creazione di un file o script di bash. In particolare creare un file dal nome youtube con il comando
 sudo gedit /usr/bin/youtube 

Logicamente se non usate gedit potete usare qualsiasi altro editor di testo (nano,vim,kwrite,kate,mousepad, etc.)
All'interno del file scriveteci dentro quello che segue:

#!/bin/bash
# Funzione che configura il terminale da usare
function config {
cd ~/Desktop
de=`zenity --title="Youtube-DL" --text="Quale DE utilizzate tra questi sottostanti?" --list --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Gnome"
terminal="gnome-terminal -x"
elif [[ $de = "Kde" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Kde"
terminal="konsole -e"
elif [[ $de = "Xfce" ]];
then
zenity --info --title="Youtube-DL - Informazioni" --text="Ambiente Grafico Xfce"
terminal="xfce-terminal -x"
else
zenity --error --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che permette di convertire i file flv nei formati richiesti
function trasform {
formato=`zenity --width=300 --height=300 --title="Youtube-DL" --list --radiolist --text="In quale formato deve essere trasformato il tuo video?" --column="Scegli" --column="Formati" false "3gp" false "Wmv" false "Mpeg" false "Avi"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
if [[ $formato = "3gp" ]]
then
$terminal ffmpeg -i tmp_file.flv -s 176x144 -r 15.0 -b 80k -vcodec h263 -ar 8000 -ac 1 -acodec amr_nb -y ${video_name}.3gp
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.3gp creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Wmv" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.wmv
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.wmv creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Avi" ]];
then
$terminal ffmpeg -i tmp_file.flv ${video_name}.avi
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.avi creato - Rilanciare il software per trasformarlo in un altro formato"
$terminal zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
elif [[ $formato = "Mpeg" ]];
then
ffmpeg -i tmp_file.flv ${video_name}.mpg
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="File ${video_name}.mpg creato - Rilanciare il software per trasformarlo in un altro formato"
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text="Grazie per aver usato il software"
else
zenity --error --width=300 --title="Youtube-DL - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}


# MENU PRINCIPALE e cuore del programma
zenity --info --width=300 --title="Youtube-DL" --text "Programma per scaricare i video da YouTube e trasformarli vari formati"
config
find tmp_file.flv
if [[ $? -eq 0 ]];
then
zenity --info --width=300 --title="Youtube-DL - Informazioni" --text "File già scaricato "
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
else

video_url=`zenity --entry --title="Youtube-DL" --text "Inserisci l'url del video da YouTube"`
video_name=`zenity --entry --title="Youtube-DL" --text "Inserisci il nome che vuoi dargli (senza estensione)"`
zenity --info ---title="Youtube-DL - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per trasformare il file nel formato desiderato"
$terminal youtube-dl -o tmp_file.flv $video_url
fi
trasform
rm tmp_file.flv



Salvate il file e chiudetelo. Una volta fatto ciò dategli i diritti di esecuzione lanciando il comando:
 sudo chmod a+x /usr/bin/youtube 

Ora il programma può essere lanciato dove volete. Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.

Alla prossima,
Davide.

P.S. Fatemi sapere se funziona o meno.

Continua a leggere!

sabato, ottobre 13, 2007

Network Simulator 2 (Ns2) - aggiornamento [deb]

Come avete notato, ho scritto due guide per installare ns2 su ubuntu. Però girando su internet, ho visto che esistono delle versioni pacchettizzate di ns2. Per questo motivo adesso vi presento il modo per installare ns2 semplicemente utilizzando i pacchetti deb e in particolare APT.
Però ci sono 2 svantaggi:

  • i pacchetti .deb sono riferiti a una versione vecchia di ns, in particolare alla 2.29.

  • la compilazione usando i sorgenti è la migliore in quanto se qualcuno vuole aggiungere nuovi moduli e costretto ad utilizzare questa versione altrimenti deve impazzire con la versione .deb dato che i moduli esterni non sono pacchettizzati e richiedono la compilazione di parte dei programmi su cui si poggia ns2


Però la semplice installazione di ns2 permette di usare il simulatore nel caso si vogliano usare feature già incorporate in ns senza complicarsi con la compilazione.

Installazione da pacchetti precompilati


Per fortuna esistono anche dei repositories per ubuntu/debian . Aggiungi queste righe nel tuo file /etc/apt/sources.list lanciando prima il comando
 sudo gedit /etc/apt/sources.list 

e scriverci dentro
 
# Network Simulator 2
deb http://bode.cs.uni-magdeburg.de/~aherms/debian sid ns2
deb-src http://bode.cs.uni-magdeburg.de/~aherms/debian sid ns2

Successivamente aggiornare i repository e installare ns con il seguente comando

sudo apt-get update
sudo apt-get install ns nam


Ulteriori risorse


Guida Installazione NS con Debian o Ubuntu
Continua a leggere!

Network Simulator 2 (Ns2) - aggiornamento alla versione 2.32

Ormai da tempo seguo il progetto del simulatore di rete. Ultimamente è uscita la nuova versione del simulatore ns2 (ns2.32). Quindi modifico la guida al fine che permetta l'installazione su Ubuntu. Io personalmente l'ho testata su Ubuntu Gutsy Gibbon 7.10.
Questa guida contiene la procedura di installazione della versione stabile più recente dell'applicazione, la 2.32, uscita il 3 Settembre 2007.

Introduzione

Network Simulator 2 è un simulatore orientato al networking. La popolarità di ns2 è essenzialmente dovuta all' eterogeneità di uso ed alla varietà di modelli messi a disposizione. Infatti ns consente di simulare molte tipologie di reti IP (LAN/WAN) implementando

  • protocolli di rete a vari livelli (MAC, routing, trasporto)

  • modelli di sorgenti di traffico (es. CBR, FTP)

  • meccanismi di gestione delle code (es. FIFO, RED)


Requisiti

Di seguito sono elencati i pacchetti necessari alla compilazione dei sorgenti:


  • build-essential

  • make

  • tcl8.4-dev

  • tk8.4-dev

  • autoconf

  • automake

  • libxmu-dev


Per installare i pacchetti con apt-get, è sufficiente aprire una finestra di terminale e digitare:

sudo apt-get install build-essential make tcl8.4-dev tk8.4-dev autoconf automake libxmu-dev


Installazione


Download del pacchetto

Posizionari nella propria Home e creare al suo interno una cartella .ns2:


cd ~
mkdir .ns2
cd ~/.ns2

Una volta creata la directory, scaricare al suo interno l'archivio contenente i sorgenti da qui oppure lanciando il comando

wget http://nchc.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.32.tar.gz


Compilazione

Estrarre il file ~ns-allinone-2.32.tar.gz:


cd ~/.ns2
tar xzfv ns-allinone-2.32.tar.gz

Ora si può procedere con la compilazione:

cd ns-allinone-2.32
./install





Il tempo necessario al completamento dell'opeazione dipende dalla propria configurazione hardware.


Una volta terminato il processo di compilazione, è possibile provare il corretto funzionamento dell'applicazione digitando il seguente comando:

cd ns-2.32/
./ns

Come output si dovrebbe ottenere:


%

L'applicazione è stata correttamente installata.


È possibile lanciare l'eseguibile senza doversi ricordare il percorso completo. Per far ciò è sufficiente modificare il file .bashrc presente nella propria cartella Home con un qualsiasi editor di testo


gedit ~/.bashrc

Aggiungere le seguenti righe alla fine del file, sostituendo la dicitura UTENTE con il proprio nome utente:


# LD_LIBRARY_PATH
OTCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/otcl-1.13
NS2_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/lib
X11_LIB=/usr/X11R6/lib
USR_LOCAL_LIB=/usr/local/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB:$USR_LOCAL_LIB
# TCL_LIBRARY
TCL_LIB=/home/UTENTE/.ns2/ns-allinone-2.32/tcl8.4.15/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/UTENTE/.ns2/ns-allinone-2.32/bin:/home/UTENTE/.ns2/ns-allinone-2.32/tcl8.4.15/unix:/home/UTENTE/.ns2/ns-allinone-2.31/tk8.4.15/unix
NS=/home/UTENTE/.ns2/ns-allinone-2.32/ns-2.32/
NAM=/home/UTENTE/.ns2/ns-allinone-2.32/nam-1.13/
PATH=$PATH:$XGRAPH:$NS:$NAM


Per attivare le modifiche fatte al file .bashrc, si deve lanciare il seguente comando
 source ~/.bashrc 

Avvio dell'applicazione

Per verificare il corretto funzionamento del simulatore di rete e dei suoi componenti, si possono scaricare alcuni esempi presenti sul sito ufficiale del progetto, per poi eseguirli con il programma appena installato:

cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example2.tcl
ns example2.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con nam :





Allo stesso modo, si può visualizzare un esempio elaborato con xgraph:


cd ~
cd ns2-example
wget http://www.isi.edu/nsnam/ns/tutorial/examples/example4.tcl
ns example4.tcl

La schermata seguente è un esempio di output di simulazione, elaborato con xgraph :





Eliminare i file utilizzati per l'installazione

Eseguire i seguenti comandi per eliminare i file utilizzati per l'installazione e non più utili:


cd ~
rm ~/.ns2/ns-allinone-2.31.tar.gz
rm -Rf ~/ns2-example

Ulteriori risorse





Continua a leggere!

mercoledì, ottobre 10, 2007

XBackup: Programma per creare, verificare e installare file di backup

In questo periodo avendo parecchio tempo libero mi sono messo in testa di creare un programma di backup. Inizialmente questo programma doveva essere un semplice script di shell, ma solo successivamente ho creato una minuta interfaccia grafica che permette di semplificare le operazioni. Per ora, vi posto
solo il codice del programma chiamato XBackup (creato interamente da me...perfino il nome). Tale programma logicamente deve essere logicamente testato per risolvere i bugs ed inoltre può essere potenziato da chiunque (me compreso). Infatti, se avete dei consigli da darmi o avete fatto delle modifiche fatemelo sapere.

Installazione

Aprite un terminale e lanciate il seguente comando

sudo gedit /usr/bin/xbackup

Logicamente io ho utilizzato gedit. Voi potete usare qualsiasi altro programma di scrittura (kwrite, nano, vim, etc.). Copiate all'interno del file il seguente testo:

#! /bin/bash

#########################
#### XBACKUP ####
#########################

# Questo script vi permette di creare dei backup
# personalizzati utilizzando il comando tar, in particolare
# vengono creati dei file dell'estensione tar.bz2.
# Lo script si avvale del comando zenity per creare l'interfaccia grafica
#
# Lo script crea, nella cartella che durante l'esecuzione del programma
# viene specificata come quella in cui posizionare i file di
# backup, un file di estensione tar.bz2.
# Si può fare il backup di tutto il filesystem, della home o di una cartella a vostra
# scelta.
# Si possono eseguire eseguire operazioni di verifica o installazione del backup
# nonchè di creazione. Inoltre il programma si avvale di espeak per avere un
# supporto vocale. Inoltre si può decidere di avere una versione verbose o no.

# Funzione che configura alcune opzioni del programma quali ambiente grafico, supporto vocale e verbose mode
function backupconfig {
de=`zenity --title="XBackup" --list --text="Quale DE utilizzate tra questi sottostanti?" --radiolist --column="Scegli" --column="Desktop Environment" false "Gnome" false "Kde" false "Xfce"`
if [[ $de = "Gnome" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Gnome"
terminal="gnome-terminal -x"
gestore="nautilus"
elif [[ $de = "Kde" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Kde"
terminal="konsole -e"
gestore="konqueror"
elif [[ $de = "Xfce" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Ambiente Grafico Xfce"
terminal="xfce-terminal -x"
gestore="thunar"
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi


zenity --title="XBackup - Informazioni" --info --text="Potete abilitare il supporto vocale durante il backup. Per il corretto funzionamento del supporto sonoro installare il pacchetto espeak presente nei repository di Ubuntu (comando: sudo apt-get install espeak)"
voce=`zenity --title="XBackup" --list --text="Abilitare il supporto vocale?" --radiolist --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $voce = "Si" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Supporto voce abilitato"
espeak "Enable voice"
voce=1
elif [[ $voce = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Supporto voce non abilitato"
voce=0
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi



zenity --info --title="XBackup" --text="Potete abilitare la modalità verbose durante il backup in maniera tale da verificare il corretto funzionamento del software di backup"
verb=`zenity --list --radiolist --title="XBackup" --text="Abilitare la modalità verbose?" --column="Scegli" --column="Abilita" false "Si" false "No"`
if [[ $voce -eq 1 && $verb = "Si" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose abilitata"
espeak "Enable verbose mode"
verb=1
elif [[ $voce -eq 1 && $verb = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose disabilitata"
espeak "Disable verbose mode"
verb=0
elif [[ $voce -eq 0 && $verb = "Si" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose abilitata"
verb=1
elif [[ $voce -eq 0 && $verb = "No" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Modalità verbose disabilitata"
verb=0
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
}

# Funzione che crea i file di backup
function backupcreate {
zenity --info ---title="XBackup - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per creare il backup. Sarà richiesto l'inserimento della password di Amministratore (root)"
$terminal sudo apt-get upgrade
$terminal sudo apt-get clean
$terminal sudo apt-get autoremove
#sudo cpufreq-selector -g performance
cartella=`zenity --list --title="XBackup" --text="Di quale cartella vuoi fare il backup?" --radiolist --column="Scegli" --column="Cartelle" false "Home" false "/" false "Altro"`
if [[ $cartella = "/" ]];
then
backup=$dir/filesystem-$(date +%d%b%y).tar.bz2
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup --exclude=/proc --exclude=/lost+found --exclude=/media --exclude=/mnt --exclude=/sys $cartella
fi
elif [[ $cartella = "Home" ]];
then
backup=$dir/home-$(date +%d%b%y).tar.bz2
cartella=~
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella
fi
elif [[ $cartella = "Altro" ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso ti verrà chiesta la cartella di cui vuoi fare il backup"
cartella=`zenity --file-selection --title="XBackup - Seleziona la directory da backupizzare" --text="Seleziona la directory di cui vuoi fare il backup" --directory`
file=`zenity --title="XBackup - Inserisci il nome del file di backup" --entry --text="Inserisci il nome del file di backup" --entry-text="Altro"`
backup=$dir/$file-$(date +%d%b%y).tar.bz2
if [[ $verb -eq 0 ]];
then
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella &>/dev/null
else
zenity --info --title="XBackup - Informazioni" --text="Adesso verrà aperta la cartella dove state salvando il backup. Verificate che la dimensione del file di backup aumenti al fine che il programma stia funzionando"
$gestore $dir
$terminal sudo tar -cvjpf $backup $cartella
fi
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
if [[ $voce -eq 1 ]];
then
espeak "Creation File Backup"
else
sleep 1;
fi
zenity --info --title="XBackup - Informazioni" --text="File creato: $backup"
echo "File creato: $backup"
if [[ $voce -eq 1 ]];
then
espeak "Creation File Complete"
else
sleep 1;
fi

verf=`zenity --title="XBackup" --list --text="Verificare il file di Backup creato?" --radiolist --column="Abilita" --column="Scegli" false "Si" false "No"`
if [[ $verf = "Si" ]]
then
backupverify $backup $verb $voce
elif [[ $verf = "No" ]];
then
sleep 1;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi


}

# Funzione che verifica i file di backup
function backupverify {
if [[ $voce -eq 1 ]];
then
espeak "Verify integrity"
else
sleep 1;
fi
if [[ $verb -eq 0 ]];
then
$terminal tar -tf $backup &>/dev/null
$terminal echo "Verifica integrità del file di $backup... "
else
$terminal tar -tf $backup
$terminal echo "Verifica integrità del file di $backup... "
fi
if [[ $? -eq 0 ]];
then
zenity --info --title="XBackup" --text="Controllo di integrità completato del file $backup: backup integro"
$terminal echo "Controllo di integrità completato del file $backup: backup integro"
if [[ $voce -eq 1 ]];
then
espeak "Integrity check completed"
else
sleep 1;
fi
else
zenity --info --title="XBackup" --text="Controllo di integrità fallito del file $backup"
$terminal echo "Controllo di integrità fallito"
if [[ $voce -eq 1 ]];
then
espeak "Integrity check failed"
exit 1;
else

sleep 1;
fi
fi


}

# Funzione che installa i file di backup
function backupinstall {
backupconfig
verf=`zenity --title="XBackup" --list --text="Verificare il file di Backup?" --radiolist --column="Abilita" --column="Scegli" false "Si" false "No"`
if [[ $verf = "Si" ]]
then
backupverify $backup $verb $voce
elif [[ $verf = "No" ]];
then
sleep 1;
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
if [[ $voce -eq 1 ]];
then
espeak "Decompression start"
else
sleep 1;
fi
zenity --info ---title="XBackup - Informazioni" --text="Adesso verrà aperto un terminale che serve al programma per installare il backup. Sarà richiesto l'inserimento della password di Amministratore (root)"
if [[ $verb -eq 1 ]];
then
$terminal sudo tar -xvpjf $backup -C /
zenity --info --title="XBackup" --text="Decompressione dell'archivio $backup..."
$terminal echo "Decompressione dell'archivio $backup..."
else
$terminal sudo tar -xvpjf $backup -C / &>/dev/null
zenity --info --title="XBackup" --text="Decompressione dell'archivio $backup..."
$terminal echo "Decompressione dell'archivio $backup..."
fi
if [[ $voce -eq 1 ]];
then
espeak "Decompression finish"
else
sleep 1;
fi
zenity --info --title="XBackup" --text="Decompressione terminata"
$terminal echo "Decompressione terminata"
}




# MENU PRINCIPALE DI SELEZIONE DELLE OPERAZIONI DA FARE
zenity --info --title="XBackup" --text="PROGRAMMA PER CREARE, VERIFICARE E INSTALLARE BACKUP!"
op=`zenity --width=300 --height=200 --title="XBackup" --list --radiolist --text="Programma di Backup" --column="Scegli" --column="Operazione" false "Verifica" false "Crea" false "Installa"`

if [[ $op = "Crea" ]]
then
zenity --info --title="XBackup - Informazioni" --text="Adesso ti verrà chiesta la cartella dove salvare il file di backup da creare"
dir=`zenity --file-selection --title="XBackup - Seleziona la directory dei backup" --text="Seleziona la directory dei backup" --directory`
backupconfig
backupcreate $dir $verb $voce
elif [[ $op = "Verifica" ]];
then
file=`zenity --title="XBackup - Seleziona il file di estensione .tar.bz2" --file-selection --text="Seleziona il file di estensione .tar.bz2"`
if [[ $file = *.tar.bz2 ]];
then
backup=$file
backupconfig
backupverify $backup $verb $voce
else
zenity --error --title="XBackup - Errore" --text="Il file non presenta l'estensione .tar.bz2 - Uscita inattesa"
exit 1
fi
elif [[ $op = "Installa" ]];
then
file=`zenity --title="XBackup - Seleziona il file di estensione .tar.bz2" --file-selection --text="Seleziona il file di estensione .tar.bz2"`
if [[ $file = *.tar.bz2 ]]
then
backup=$file
backupinstall $backup $verb $voce
else
zenity --error --title="XBackup - Errore" --text="Il file non presenta l'estensione .tar.bz2 - Uscita inattesa"
exit 1
fi
else
zenity --error --title="XBackup - Errore" --text="Nessuna scelta effettuata - Uscita inattesa"
exit 1;
fi
zenity --info --title="XBackup" --text="Grazie per aver usato il software!"

Salvate il file appena creato. Lo chiudete e date i diritti di avvio del programma lanciando il seguente comando:


sudo chmod a+x /usr/bin/xbackup


Se volete potete anche (così ho fatto io) crea una icona con Menu Principale.

VI INFORMO CHE A VOLTE IL SUPPORTO VOCALE BLOCCA L'APPLICAZIONE IN QUANTO ESSO OCCUPA PARECCHIA MEMORIA


Alla prossima
Davide

Continua a leggere!

venerdì, ottobre 05, 2007

Guida all'installazione di MoioSms - aggiornamento [deb]

Come ho già scritto sul wiki di ubuntu-it, Moio ha creato i pacchetti .deb per facilitare l'installazione di moiosms su ubuntu e sulle distribuzione debian-like. Inoltre ha creato il plugin per facilitare la ricerca attraverso deskbar.

Download dei pacchetti

Scaricare e salvare sulla scrivania seguenti pacchetti:

Installazione

Cliccare due volte sulle icone dei pacchetti, verrà avviato udebi con il quale sarà possibile procedere alla loro installazione.

In alternativa è possibile digitare i seguenti comandi in una finestra di terminale:

cd ~/Desktop
sudo dpkg -i moiosms_*.deb
sudo dpkg -i moiosms-deskbar_*.deb


Per tutte le altre configurazioni rifatevi al wiki di ubuntu. Finalmente l'installazione è più semplice.

Alla prossima!
Continua a leggere!

lunedì, settembre 17, 2007

Gsopcast - aggiornamento alla versione 0.31 da sorgente

Sul sito http://lianwei3.googlepages.com/home2 ho notato che hanno aggiornato la versione di Gsopcast alla 0.31. Non so se in rete esiste il pacchetto .deb ed inoltre non sono riuscito con il checkinstall a creare il pacchetto. Per installarlo, bisogna scaricare i sorgenti e compilare il pacchetto.

HO COMPILATO I SORGENTI DEL 0.31 ED HO AVUTO DEI PROBLEMI (CORE DUMPED). PER DISINSTALLARLO E TORNARE ALLA VERSIONE PRECEDENTE DOVETE SEMPLICEMENTE ENTRARE NELLA CARTELLA GSOPCAST E LANCIARE:
 ./autogen.sh
sudo make uninstall



Installazione

Inizialmente risolviamo le dipendenze:
 sudo apt-get install libgtk2.0-0 curl libstdc++5 

e logicamente un lettore multimediale.

Scarichiamo il file sorgente utilizzando il subversion (o svn). Quindi prima scarichiamo dai repository il pacchetto subversion:
 sudo apt-get install subversion 

Successivamente, scarichiamo i sorgenti con subversion
 svn checkout http://gsopcast.googlecode.com/svn/trunk/ gsopcast 

Dopo tale comando, troveremo nella cartella gsopcast i sorgenti. Infatti entriamo nella cartella gsopcast:
 cd gsopcast 

e lanciamo in successione i seguenti comandi:
 ./autogen.sh
make
sudo make install

Durante la compilazione, stiamo attenti ai possibili errori di compilazione. In molti casi, i maggiori errori di compilazione sono dovute alle dipendenze. Questi molte volte ci vengono indicate dopo aver lanciato l'autogen. Fatemi sapere di particolari dipendenze cosi le segno su questo post.
L'applicazione in entrambi i casi potete ritrovarla nel menu sotto la voce Audio & Video

Infine eliminiamo i sorgenti scaricati, uscendo dalla cartella gsopcast:
 cd ..
sudo rm -Rf gsopcast


Appena installato, nella schermata Config sarà possibile notare che il lettore multimediale predefinito è Mplayer. Se si desidera utilizzare un lettore diverso da mplayer è sufficiente specificare il relativo comando all'interno della schermata di configurazione.
Continua a leggere!

sabato, settembre 01, 2007

Gsopcast - Aggiornamento - pacchetto deb

Girando per la rete sono riuscito a trovare il pacchetto .deb di Gsopcast della versione 0.28 (l'ultima dovrebbe essere la 0.29). Queste due release sono molto simili...quindi per chi non vuole faticare può utilizzare il pacchetto deb.

Download


Scarichiamo il pacchetto .deb semplicemente all'indirizzo http://linuxtoy.org/files/deb/gtk-sopcast_0.2.8-1_i386.deb oppure lanciando il comando
wget http://linuxtoy.org/files/deb/gtk-sopcast_0.2.8-1_i386.deb

Installazione


Installiamo il pacchetto utizzando o il Gebi (l'installatore grafico) oppure lanciando il comando
sudo dpkg -i gtk-sopcast_0.2.8-1_i386.deb
L'applicazione in entrambi i casi potete ritrovarla nel menu sotto la voce Audio & Video


Alla prossima!!!
Continua a leggere!

mercoledì, agosto 01, 2007

GTrovatel

GTrovatel è un'interfaccia grafica per Trovatel scritta in Perl con le librerie Gtk+. Trovatel è un programma open source che consente la consultazione istantanea di elenchi telefonici online. Permette la ricerca del numero telefonico a partire dai dati anagrafici o viceversa. Nel primo caso sfrutta il servizio online di Paginebianche.it, nel secondo Infobel.com.

Preparativi

Per soddisfare le dipendenze di GTrovatel è sufficiente installare il pacchetto libgtk2-gladexml-perl presente nel componente universe dei repository ufficiali.



Installazione

Scaricare e salvare nella propria Home l'archivio compresso contenente il programma da questo indirizzo; per estrarlo è sufficiente aprire una finestra di terminale e digitare il seguente comando:

tar xzf GTrovatel-0.1.tar.gz

Spostare il contenuto della cartella ~/GTrovatel-0.1 in una nuova cartella ~/.gtrovatel:

mkdir ~/.gtrovatel
mv GTrovatel-0.1/* ~/.gtrovatel

Per creare uno script di avvio è sufficiente creare il file /usr/bin/gtrovatel con un editor di testo e copiare al suo interno ciò che segue:

~./.gtrovatel/GTrovatel.pl &

Per rendere il comando eseguibile è sufficiente digitare il seguente comando:

sudo chmod a+x /usr/bin/gtrovatel
È possibile creare un'icona nel menu con il comando alacarte.

Ora non resta che rimuovere i file scaricati. Digitare i seguenti comandi:

cd
rm GTrovatel-0.1.tar.gz
rmdir GTrovatel-0.1

Ulteriori risorse

Continua a leggere!

StreamerOne - aggiornamento

StreamerOne è un sistema di webcasting in grado di distribuire streaming audio/video di qualità ad un numero teoricamente illimitato di utenti contemporanei. Questo programma sfrutta la tecnologia P2P e specialmente quella del Bittorrent, facendo in modo che colui che guarda il canale faccia allo stesso tempo il download dello stream da visionare e l'upload dello stream visionato. Questo programma permette di visionare alcuni canali italiani, che sono utilizzati per testare il programma. La versione di StreamerOne è infatti una beta.

Il programma è stato testato solo su Firefox1.5 e Firefox2.0. Su altri browser non si assicura il corretto funzionamento.

Requisiti

Sono richiesti i seguenti pacchetti:

  • w32codecs

Installazione

L'installazione si basa sui seguenti passi:

  1. Scaricare il file Streamerone.Beta.0.3.tar.bz2:

    cd ~
    wget http://www.streamerone.it/Download/Linux/Streamerone.Beta.0.3.tar.bz2
  2. Estrarre Streamerone.Beta.0.3.tar.bz2 digitando:

    tar jxf Streamerone.Beta.0.3.tar.bz2
  3. Per comodità, creare una cartella .streamerone, spostare il contenuto della cartella streamerone nella nuova cartella:

    mkdir ~/.streamerone
    mv Streamerone.Beta.0.3/* ~/.streamerone
  4. Creare uno script di shell streamerone.sh in /usr/bin/:

    sudo nano /usr/bin/streamerone.sh

    e scrivere dentro

    ~/.streamerone/streamerone
  5. Rendere il comando eseguibile per l'utente:

    sudo chmod a+x /usr/bin/streamerone.sh
  6. Una volta fatto questo, creare una icona con alacarte e associare il comando /usr/bin/streamerone.sh &, usando il seguente comando

    alacarte

    oppure scegliendo:

    • Applicazioni -> Accessori -> Alacarte in Ubuntu Dapper Drake 6.06

    • Sistema -> Preferenze -> Struttura menù in Ubuntu Edgy Eft 6.10 .

    In entrambi i casi, comunque, ricordare di non spuntare all'icona creata la voce Terminale.

  7. Rimuovere i file scaricati

    cd ~
    rm Streamerone.Beta.0.3.tar.bz2
    rmdir Streamerone.Beta.0.3/

Regole per il corretto funzionamento di StreamerOne

Il funzionamento di StreamerOne è basato sull'apertura di una pagina web in locale (la porta usata in generale è la 6667). Una volta aperta questa pagina, vi è il caricamento della lista dei canali e cliccando su uno, il canale viene caricato (potete vedere in alto la percentuale del stream caricato). Superata un certo valore di percetuale, viene aperto il canale nel lettore player preferito.

Per il corretto funzionamento, utilizzare le seguenti regole:

  • Apertura: Aprire Firefox prima di lanciare StreamerOne

  • Chiusura: Chiudere cliccando sul tasto Quit presente nella pagina web dei canali.

Nel caso abbiate chiuso la pagina web, senza aver cliccato sul tasto Quit bisogna killare il comando streamerone, utilizzando il Monitor di Sistema (Sistema -> Amministrazione -> Monitor di Sistema)

Guardare i filmati in streaming con il player preferito

Nella cartella ~/.streamerone/, è presente un file config.ini, in cui si può settare il player preferito per visionare lo streaming. Per modificare il player seguire i seguenti passi:

  1. Aprire il file config.ini

    nano ~/.streamerone/config.ini
  2. Scrivere al posto di

    player=/usr/bin/mplayer

il percorso assoluto del programma scelto per la visualizzazione dello stream. Alcuni esempi di player utilizzabili sono

  • totem: /usr/bin/totem

  • vlc: /usr/bin/vlc

  • gmplayer: /usr/bin/gmplayer

  • kaffeine: /usr/bin/kaffeine

Io consiglio, per la visione degli Streaming, VideoLan (VLC) in quanto permette di raggiungere più facilmente il raggiungimento del buffer e risulta ottimamente robusto alle variazioni delle performance della rete.

Ulteriori risorse


Continua a leggere!

GSopcast - aggiornamento

Gsopcast è la versione di sopcast basata sulle librerie Gtk+ e supportata da GNOME. Gsopcast è un software utilizzato per visualizzare i canali stranieri che vengono trasmessi quasi esclusivamente dalla Cina.

La sua tecnologia sfrutta la stessa tecnologia di Bittorrent, facendo in modo che lo spettatore sia allo stesso allo stesso tempo una sorta di ripetitore. Sfruttando tale software e visionando la programmazione dei canali cinesi è legalmente possibile guardare eventi sportivi di tutti i tipi (Serie A, Champions League, NBA, Tennis, etc.).

Preparativi

Escludendo l'installazione di un player video, le dipendenze di Gsopcast si risolvono lanciando il seguente comando:

sudo apt-get install libgtk2.0-0 curl libstdc++5

Installazione

L'installazione si basa sui seguenti passi:

  1. Scaricare e salvare nella propria Home il file gsopcast-0.2.9.tar.bz2 con i seguenti comandi:

    cd
    wget http://lianwei3.googlepages.com/gsopcast-0.2.9.tar.bz2
  2. Scaricare il file sp-sc.tgz:

    wget http://download.sopcast.org/download/sp-sc.tgz
  3. Estrarre sp-sc.tgz con il seguente comando:

    tar xzf sp-sc.tgz
  4. Per comodità, creare una cartella ~/.sp-sc, spostare il contenuto della cartella sp-sc nella nuova cartella:

    mkdir ~/.sp-sc
    mv sp-sc/* ~/.sp-sc
  5. Entrare nella cartella .sp-sc e spostare il comando sp-sc in /usr/bin/:

    cd ~/.sp-sc/
    sudo mv sp-sc /usr/bin/
  6. Estrarre il file gsopcast-0.2.9.tar.bz2 con i seguenti comandi:

    cd
    tar jxf gsopcast-*.tar.bz2
  7. Creare una cartella ~/.gsopcast e spostare il contenuto di gsopcast-0.2.9 in suddetta cartella:

    cd gsopcast-0.2.9
    mkdir ~/.gsopcast
    mv * ~/.gsopcast
  8. Impostare i permessi di esecuzione alla cartella con il seguente comando:

    chmod -R 777 ~/.gsopcast
  9. Per creare uno script con nano è sufficiente digitare il seguente comando:

    sudo nano /usr/bin/sopcast

    Copiare all'interno del file ciò che segue:

    ~/.gsopcast/src/gsopcast
  10. Rendere il comando eseguibile per l'utente con il seguente comando:

    sudo chmod a+x /usr/bin/sopcast
  11. Infine, creare un'icona con alcarte per il comando /usr/bin/sopcast. Digitare il seguente comando:

    alacarte

    In alternativa è possibile andare su:

    • Applicazioni -> Accessori -> Alacarte in Ubuntu 6.06 «Dapper Drake»;

    • Sistema -> Preferenze -> Struttura menù in Ubuntu 6.10 «Edgy Eft».

    In entrambi i casi, comunque, ricordare di non spuntare la voce Terminale.

  12. Ora non resta che rimuovere i file scaricati. Digitare i seguenti comandi:

    cd ~
    rm gsopcast-0.2.9.tar.bz2 sp-sc.tgz
    rmdir sp-sc gsopcast-0.2.9

Scegliere il lettore preferito

Appena installato, nella schermata Config sarà possibile notare che il lettore multimediale predefinito è Mplayer. Se si desidera utilizzare un lettore mplayer è sufficiente specificare il relativo comando all'interno della schermata di configurazione.

Ulteriori risorse

Gsopcast Installation {en}
Continua a leggere!

venerdì, aprile 13, 2007

MoioSms: guida all'installazione su Ubuntu

MoioSMS (MoioSms) è un programma scritto in linguaggio Python (rilasciato sotto licenza GPL) da uno studente italiano che voleva mandare più velocemente messaggi attraverso internet, senza dover ogni volta aprire il browser, digitare username e password ogni volta cliccare 3 volte 'Conferma il messaggio/destinatario' ecc.

MoioSMS permette di inviare SMS dai seguenti siti:

  • 190.it (Vodafone Italia, clienti non aziendali): i clienti di schede Vodafone hanno diritto a 10 messaggi gratis al giorno verso numeri Vodafone;

  • tim.it (Telecom Italia Mobile): i clienti di schede Tim hanno diritto a 5 messaggi gratis al giorno verso numeri Tim;

  • tin.alice.it (ADSL di Telecom Italia, offerte prima di Alice): gli utenti di ADSL di Telecom con un contratto precedente alle offerte Alice hanno diritto a 10 messaggi gratis al giorno;

  • enel.it (Enel s.p.a, registrazione gratuita): gli utenti del sito possono mandare 1 messaggio gratis al giorno e 5 al mese;

  • rossoalice.it (Alice ADSL di Telecom Italia): gli utenti di Alice ADSL hanno diritto a 10 messaggi gratis al giorno.

In questa versione è stato il plugin per Rossoalice è presente con FUNZIONALITA' LIMITATA. Il plugin non funziona da linea di comando, richiede l'immissione dell'immagine captcha e invia SOLO gli SMS gratuiti, se sono disponibili (in ogni caso non vengono mai mandati SMS a pagamento).


Requisiti

Di seguito sono elencati i pacchetti necessari per il corretto funzionamento di MoioSms:

  • pycurl

  • python

  • wxpython

Per installare i pacchetti con apt-get, è sufficiente aprire una finestra di terminale e digitare:

sudo apt-get install python python-wxgtk2.6 python-wxversion python-pycurl


Installazione


Download del pacchetto

Posizionari nella propria Home e creare al suo interno una cartella .moiosms:

cd
mkdir .moiosms
cd ~/.moiosms

Una volta creata la directory, scaricare al suo interno l'archivio contenente i sorgenti da qui


Estrazione e configurazione

Estrarre il file ~MoioSMS2.11-src.zip:

cd ~/.moiosms
unzip MoioSMS2.11-src.zip

Creare il comando moiosms

sudo nano /usr/bin/moiosms

e scrivere dentro

#!/bin/bash
python ~/.moiosms/sms.py

Dare i diritti di esecuzione

sudo chmod a+x /usr/bin/moiosms

Una volta fatto questo, creare una icona con alcarte e associare il comando /usr/bin/moiosms, usando il seguente comando

alacarte

oppure scegliendo:

  • Applicazioni -> Accessori -> Alacarte in Ubuntu Dapper Drake 6.06

  • Sistema -> Preferenze -> Struttura menù in Ubuntu Edgy Eft 6.10 e Ubuntu Feisty Fawn 7.04.

In entrambi i casi, comunque, ricordare di non spuntare all'icona creata la voce Terminale. L'icona potete trovarla nella cartella ~/.moiosms.


Eliminare i file utilizzati per l'installazione

Eseguire i seguenti comandi per eliminare i file utilizzati per l'installazione e non più utili:

rm ~/.moiosms/MoioSMS2.11-src.zip


Ulteriori risorse

Homepage Progetto MoioSms


Potete trovare la guida sul wiki di ubuntu-it
http://wiki.ubuntu-it.org/MoioSms
Continua a leggere!