ITBazar, informatica 100%

l’informatica alla portata di tutti!

Archivio per 'Guide'


Uno script per convertire video di Youtube o estrarre l’audio in Mp3

Inviato da Domenico Dibello il 6 Giugno 2008

Youtube linux dowloader

Sono sicuro che avrete già letto titoli simili a “Estrarre l’audio in formato mp3 dai video youtube” o “Convertire i video da youtube”, questo articolo invece spiega come creare un semplice script che  in sole 10 righe scarica un video da youtube, fa scegliere all’utente dove salvarlo e permette di convertirlo in audio mp3, video avi o video mpg. Il tutto avviene tramite una semplice interfaccia grafica.

Per prima cosa è necessario installare alcuni tools che potranno esserci utili

  • Zenity: Per creare semplicemente degli script grafici
  • FFmpeg: Un famosissimo tool di conversione ed elaborazione audio - video
  • Youtube-dl: Un software che estrare il file .flv dalle pagine youtube

dunque per cominciare diamo un:

> sudo apt-get install ffmpeg zenity youtube-dl

adesso creiamo il nostro script.

Create un file con estensione .sh e chiamatelo per esempio youtube.sh. All’interno andiamo a scrivere il nostro script.
#!/bin/bash

#1. Prendiamo il link della pagina youtube dove c’è il video che vogliamo scaricare attraverso l’interfaccia grafica zenity

url=`zenity –entry –text “Inserisci il link alla pagina del video” –title “Youtube downloader” –width 500 –height 100`;

Inserisci il link alla pagina youtube

#2.Creiamo un file temporaneo con la data e l’ora corrente

flvfile=”/tmp/youtube_`date +%d-%m-%y_%H.%M.%S`.flv”;

#3.Facciamo scegliere all’utente dove vuole salvare il file finale
nomefile=`zenity –file-selection –save`;

Selezione dove salvare il file che verrà scaricato da youtube

#4. Scarichiamo il video utilizzando youtube-dl mostrando all’utente una finestra di “Download in corso”

youtube-dl $url -o  $flvfile | zenity –progress –pulsate –auto-close –text “Download del video in corso…”;

#5. Due secondi di pausa potrebbero non essere necessari, ma non fanno mai male.

sleep 2;

#6. Comunichiamo che il download è completato

zenity –info –text “Download completato.”;

#7. Facciamo scegliere all’utente in che formato vuole convertire il file .flv (audio mp3, video mpg o video avi)

formato=`zenity –list –text “Seleziona il formato di conversione” –radiolist –column ” “  –column “Formato” TRUE .mp3 FALSE .mpg FALSE .avi`;

Seleziona il formato in cui salvare il file

#8. Convertiamo il nostro file mostrando un’altra finestra di attesa

ffmpeg -i “$flvfile” -y -ac 2 -ar 44100 -ab 128Kb  “$nomefile$formato” | zenity –progress –pulsate –auto-close –text “Conversione del video…”;
#9. Comunichiamo dove il file è stato salvato

zenity –info –text “File $nomefile$formato creato.”;

File creato correttamente in…

#10. Rimuoviamo il file temporaneo

rm -f “$flvfile”;

Scarica lo script dal link in basso e avvialo digitando bash youdownloader.sh

Script per il download e conversione di video e audio da youtube

Pubblicato in Guide, Internet, Linux, Tutorial, Ubuntu, Youtube | 2 Commenti »

SEO: Come ottimizzare il tuo sito e aumentarne la posizione nel motore di ricerca Google!

Inviato da Domenico Dibello il 9 Maggio 2008

 Ottimizzare posizionamento del tuo sito su Google

Bene, a parte il titolo che può ricordare una televendita della celebre Vanna Marchi, questo articolo tratterà le tecniche principali per avere un blog vincente. A questo punto qualcuno di voi penserà “Ecco, la solita guida con i soliti consigli scontati”. Questa guida è qualcosa di diverso, è un’analisi di cosa vogliono oggi gli utenti Internet e soprattutto di ciò che vuole Google.

 Consiglio n°1: Le giuste parole chiave

Pen drive linux, una scelta vincente!

Una scelta vincente, target mirato ma non troppo ridotto!

Questo è il motivo principale del successo o insuccesso del proprio blog.  Se il vostro sito parla di informatica e giardinaggio e cosmesi e automobili, Google non gli assegnerà un Pagerank alto perchè non individuerà una coerenza nelle parole chiave dei vostri articoli, in cambio avrete una vastissima gamma di possibili visitatori, data la varietà degli argomenti. Quando l’utente ricercherà la parola Pedicure ,appariranno prima siti dedicati interamente alla cosmesi, quando cercherà un termine informatico appariranno sito dedicati all’informatica, etc. Morale della favola, sarà impossibile per un visitatori raggiungere la vostra pagina tramite google, perchè è ormai comprovato che un risultato oltre la 3 pagina di risultati non viene cliccato quasi mai. Il caso opposto è trattare solo un argomento, per esempio “Il cactus”. Un sito che parla solo di cactus sarà piazzato automaticamente al primo posto quando l’utente cercherà la parola cactus, ma il target di visitatori si è ridotto notevolmente, a quanti interessa avere informazioni sul cactus??? Il vostro sito non avrà mai migliaia di visitatori al giorno perchè non ci sono così tante persone interessate all’argomento. Come dicevano i latini “In medio stat virtus”, la soluzione stà nel compromesso tra questi due casi estremi. Vi porgo un esempio pratico, il sito www.pendrivelinux.com, un sito di grande successo, tratta solo di “Come installare linux su una penna USB”. Come potete notare l’argomento è molto specifico, riguarda solo gli utenti Linux, e solo quelli che vogliono installarlo su una Usb Key, ma allo stesso tempo i siti che parlano solo di questo sono pochi e l’argomento interessa un numero sufficiente di persone. Risultato:prima pagina di Google.

 

Consiglio n°2: Concentratevi sul contenuto non sull’aspetto estetico

Wordpress un content manager per blogger!

Non sprecate il vostro tempo a studiare interfaccie grafiche bellissime, certo, un sito piacevole da visitare farà tornare più volentieri i vostri visitatori ma potete investire meglio il vostro tempo, i siti più visitati al mondo non lo sono certo per la loro parvenza estetica. Content manager come Wordpress, Joomla, Drupal, consentono di tirar su un sito in pochissimo tempo. Morale:Concentratevi sul contenuto.

Consiglio n°3: Rendete il vostro sito/blog accessibile ai motori di ricerca

Rendere il proprio blog accessibile a Google

Ricordate sempre che Google non può indicizzare il contenuto di un oggetto Flash, un sito interamente in Flash è inaccessibile ai motori di ricerca, i visitatori non potranno raggiungerlo se non digitando direttamente l’indirizzo oppure tramite link da altri siti. Dovreste evitare di usare Javascript e Ajax per generare dinamicamente il contenuto della pagina. La dinamicità del sito dovrebbe essere ottenuta direttamente lato server tramite PHP, ASP, JSP, etc. In parole povere il sorgente finale della pagina deve essere per quanto possibile semplice HTML.

Consiglio n°4:  Procuratevi dei backlinks

Pagerank di google e backlink

Se questa guida risulterà interessante molti di voi la citeranno nel proprio blog aggiungendo un link questa pagina, Google interpreterà questo backlink come “su quella pagina ci sono contenuti interessanti, quindi faccio salire la sua posizione in classifica”. Per procurarvi backlink avete due modi: Chiedere direttamente ad altri bloggers “Facciamo uno scambio link?” oppure scrivere articoli, guide interessanti e complete in modo da “essere citati”!

Consiglio n°5: Aggiornate continuamente il vostro sito

Aggiornate continuamente il sito aumenta la visibilità su Google

Aggiornare continuamente il sito vuol dire scrivere molto, Google tiene conto dell’ultima volta in cui il sito è stato aggiornato nel fornire i suoi risultati. Scrivere molto aumenta le possiblità di apparire sulla pagine di Google, ma contemporaneamente vuol dire anche abbassare la qualità dei contenuti e quindi far scadere “l’immagine” del proprio sito e diminuire la possiblità che qualcuno vi link sul proprio blog. Trovate il modo di evidenziare gli articoli più interessanti e di qualità in prima pagina ma contemporaneamente creare una “sezione meno impegnativa” dove scrivere con maggiore frequenza senza perdere troppo tempo.

Consiglio n°6: Il titolo dei vostri articoli deve essere Googlabile!

 Fatti trovare su internet

Avrei potuto chiamare questo articolo “Scalare la vetta con il proprio blog”, ma chi mai cercherà su Google “scalare vetta” per cercare una guida SEO??? Mi è sembrato più logico includere nel mio titolo le parole “ottimizzare seo google aumentare posizione motore di ricerca”. Quasi nessuno tiene conto di questo particolare piccolo ma fondamentale.

Consiglio n°7: Ripetere nel vostro articolo le parole chiave principali

In questo articolo per esempio avrei dovuto ripetere continuamente le parole “seo ottimizzare google motori di ricerca blog sito”, ma questo punto viene abbastanza naturale, certo si può forzare un po la mano e ripetere una volta in più le parole del titolo.

Consiglio n°8: Non fare copia incolla da altri siti

Repetita Juvant! Google rileva i contenuti duplicati assegnando dei punti di penalità al vostro blog! Scrivere il contenuto di vostro pugno. Evitate di avere più link del vostro sito che puntano ad una pagina contenente lo stesso articolo.

Se questa guida ti è stata utile, citala nel tuo blog!

Se ti interessa ricevere altre guide del genere iscriviti al mio Feed RSS cliccando qui!

 

Pubblicato in Google, Guide, Internet, Tutorial | Nessun Commento »

Imparare le Espressioni regolari in 10 minuti!

Inviato da Domenico Dibello il 17 Aprile 2008

Ci sono dei “piccoli particolari” che fanno la differenza tra un programmatore degno di questo nome e uno smanettone, un informatico scrive codice organizzato in oggetti, pulito, leggibile, riusabile al contrario di ciò che farebbe uno smanettone che butterebbe giù una serie di righe di codice ingrovigliato in stile “spaghetti”. Una caratteristica ci fa comprendere la bravura di chi ha scritto il codice: l’eleganza. L’eleganza è non usare 20 righe di codice quando ne basterebbe soltanto una! Gli smanettoni non usano le “regular expressions” i programmatori “seri” SI!

Esistono due tipi di Regex o Espressioni regolari, quelle POSIX e quelle PCRE. Anche se Posix dovrebbe rappresentare lo standard, di fatto le Espressioni PCRE sono quelle utilizzate da tutti i linguaggi più diffusi e tra l’altro sono più veloci da eseguire.

Vediamo alcuni esempi in linguaggio PHP, ma l’espressione regolare utilizzata è la stessa per tutti i linguaggi. Le cose da tener presente sono che:

Un’espressione regolare inizia e termina con un separatore (di solito il carattere / )
Un metacarattere va fatto seguire di solito da un iteratore
I caratteri ( ) [ ] < > . * ? sono caratteri speciali, diventano comuni caratteri solo se seguiti dal simbolo \
Tra parentesi quadre è possibile creare dei pattern più complessi, per esempio [0-5] indica un carattere tra 0 e 5. Il pattern [0-3a-z] indica un numero da 1 a 3 seguito da una lettera

 

 

\d Numeri da 0 a 9, abbreviazione di [0-9]
\D Tutto tranne numeri, abbreviazione di [^0-9]
\w Qualsiasi carattere alfanumerico o underscore (_)
\W Qualsiasi carattere che non sia alfanumerico o underscore
\s Qualsiasi whitespace (spazio, tab, newline ecc.)
\S Qualsiasi NON whitespace
. Qualsiasi carattere tranne il newline

Ognuno di questi caratteri può ripetersi più volte, perciò va seguito da un iteratore:

? Occorre 0 o 1 volta
* Occorre 0 o più volte
+ Occorre 1 o più volte
{n} Occorre n volte
{,n} Occorre al più n volte
{m,} Occorre al meno m volte
{m,n} Occorre tra m ed n volte

Alcuni esempi elementari di Regex:

/…./ Parola di 4 caratteri
/[a-z]+/ Parola formata solo da lettere alfanumeriche lunga 1 o più caratteri
/\d{1,5}/ Un numero formato da 1 a 5 cifre
/\(.*\)/ Una parentesi aperta, 0 o più caratteri e una parentesi chiusa
/(bianco|nero)/ La parola bianco o la parola nero
/[a-z0-9]+/i Riconosce solo parole di almeno 1 carattere formate da lettere e numeri, la i posto dopo l’ultimo separatore indica che non c’è distinzione tra maiuscole e minuscole


Esempio 1: Riconoscere un indirizzo email in PHP

1
2
3
4
5
6
7
8
9
$soggetto = "webmaster@itbazar.org";
if(preg_match("/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i",$soggetto))
{
	echo "Email valida";
}
else
{
	echo "Email NON valida";
}

Esempio 2: Riconoscere un numero di cellulare (contiene solo i prefissi più diffusi)

1
2
3
4
5
6
7
8
9
$soggetto = "3291234567";
if(preg_match("/(328|329|333|339|347|340)\d{7}/",$soggetto))
{
	echo "Numero di cellulare valido";
}
else
{
	echo "Numero di cellulare NON VALIDO";
}


Esempio 3: Estrarre il Body di una pagina HTML

1
2
3
4
5
6
7
8
9
$soggetto = "<html><head>Header della pagina</head><body>Questo e' il Body della pagina..</body></html>";
if(preg_match("/\<body\>.*?\<\/body\>/i",$soggetto,$riconosciuti))
{
	echo "Body: $riconosciuti[0]";
}
else
{
	echo "Nessun body trovato";
}

Potete trovare maggiori informazioni sulle Regex Perl Compatibili (PCRE) e sulle funzioni PHP che ne fanno uso sulla guida ufficiale PHP
Funzioni che utilizzano PCRE
Guida completa alle sintassi e alle funzioni PHP con PCRE

Pubblicato in Guide, ITbazar, Linux, Php, Tutorial, Webmaster | Nessun Commento »

Php Mysql e i database con Adodb

Inviato da Domenico Dibello il 16 Marzo 2008

Un qualsiasi programma che si rispetti ha bisogno di immagazzinare, memorizzare e utilizzare dei dati. Il modo migliore per ricercare velocemente le informazioni che ci servono e poterle indicizzare per utilizzi futuri è utilizzare una “base di dati” o Database. I database in circolazione sono davvero tanti, il più utilizzato in ambito Linux/Unix e quindi con il linguaggio PHP è Mysql. Mysql è un database gratuito ed opensource che si distingue per la sua notevole velocità di esecuzione e per la sua ormai comprovata stabilità.

In questo articolo vedremo come sfruttare la potenza di Mysql con PHP attraverso ADODB.

Cos’è ADODB?

ADODB è una “abstraction library” per PHP e Phyton.

Sito ufficiale ADOdb

A cosa serve un’abstraction library?

Con Adodb noi possiamo scrivere un’applicazione PHP e far si che essa funzioni con tutti i database supportati senza modificare neanche una virgola di codice, i database supportati sono:

MySQL, PostgreSQL, Interbase, Firebird, Informix, Oracle, MS SQL, Foxpro, Access, ADO, Sybase, FrontBase, DB2, SAP DB, SQLite, Netezza, LDAP, and generic ODBC, ODBTP

Esempio pratico con Adodb e Mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php 
//Includiamo la libreria ADODB
require("adodb.inc.php");
 
//Creiamo una nuova connessione specificando mysql come database
 $db = NewADOConnection('mysql');
 
//Inseriamo i dati della connessione, indirizzo server, utente, passqord e database
 $db->Connect("indirizzo", "nomeutente", "password", "nomedatabase");
 
//Inviamo la query al database salvando il risultato in $result
 $result = $db->Execute("SELECT nome,cognome FROM tabellaimpiegati");
 
//Se la connessione al database non riesce interrompi lo script con un mess. di errore 
if ($result === false) die("Connessione al database fallita!");  
 
//Estraiamo il NUMERO dei campi esempio. Nome Cognome Indirizzo....
$numero_campi = $result->FieldCount();
 
//Eseguiamo un While per stampare le righe con i risultati
 while (!$result->EOF) {
    for ($i=0; $i < $numero_campi; $i++)
	{
           print $result->fields[$i].' ';
	}
    $result->MoveNext();
    print "<br>";
 }
?>

Pubblicato in Guide, ITbazar, Mysql, Php, Tutorial | Nessun Commento »

Un semplice scambio di dati tra Php e Flex/Flash

Inviato da Domenico Dibello il 12 Marzo 2008

Flex è la miglior tecnologia client side oggi disponibile, esteticamente di grande effetto, e ricca di componenti già pronti da popolare con sorgenti XML. Php è uno tra i linguaggio di scripting server side più utilizzati, con una vastissima documentazione una estrema facilità di utilizzo ed una affidabilità ormai collaudata.
Questo esempio è una dimostrazione di quanto sia facile creare una pagina in Flex con un back-end PHP, può essere una valida alternativo ai classici Form HTML.

Quello che vi propongo è semplicissima messaggeria, l’utente può lasciare un messaggio e firmarlo.
Ecco qui l’esempio realizzato e funzionante.


 

Vediamo prima come è strutturato il codice della pagina PHP che permette il salvataggio dei messaggi nel file e il listing dello stesso ma in formato XML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
 
$nome = $_POST['nome'];
$messaggio = $_POST['messaggio'];
 
//Se l'utente ha passato delle variabili tramite POST...
if($nome && $messaggio)	 
{	
	$f=fopen("messaggi.txt","a");	
	//Apro il file messaggi.txt in scrittura (a=append)
	fwrite($f,"$nome#$messaggio\n"); 
	//Scrivo nome e messaggio inserendo il separatore "#"
	fclose($f); 	//Chiudo il file
}
 
//Leggo l'intero contenuto del file nella variabile $testo
$testo=file_get_contents("messaggi.txt");
 
 
//Adesso stampo il contenuto del file in formato XML
echo "<main>";
$tnome = strtok($testo,"#");  
//Leggo fino al separatore (token) "#"
 
while($tnome !== false)	
{	echo "<item>";	
	echo "<nome>$tnome</nome>"; 	
	$tmessaggio=strtok("\n"); //Leggo fino al carattere "a capo"
	echo "<messaggio>$tmessaggio</messaggio>";		
	echo "</item>";
	$tnome=strtok("#");	//Leggo fino al carattere "#"
}
echo "</main>";
 
?>

Questa pagina che chiameremo messaggeria.php, si occupa di scrivere i messaggi inseriti dagli utenti nel file messaggi.txt che verrà salvato sul server. Se l’utente (nel nostro caso tramite Flex) passa tramite POST le variabili nome e messaggi, lo script messaggeria.php salva nome e messaggio nel file di testo e poi stampa il contenuto del file in formato XML.

La pagina visitata con un browser da in output qualcosa del tipo…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<main>
	<item>
		<nome>
			Bill Gates
		</nome>
		<messaggio>
			Windows Vista va una favola
		</messaggio>
	</item>
	<item>
		<nome>
			Linus Torvals
		</nome>
		<messaggio>
			Anche Linux non se la cava male
		</messaggio>
	</item>
</main>

Spero che la parte PHP sia abbastanza chiara, in caso contrario vi esorto a lasciare un commento con le vostre domande!

Adesso vediamo come costruire la parte Flex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<mx:HTTPService fault="crea_fallito()" 
	        result="crea_feedback()" 
                id="creaRequest"
                url="http://www.itbazar.org/wfkjbn/messaggeria.php" 
                useProxy="false" 
                method="POST">
 
        <mx:request xmlns="">
            <nome>{nome.text}</nome>
            <messaggio>{messaggio.text}</messaggio>
        </mx:request>
</mx:HTTPService>
 
 
<mx:DataGrid x="18.5" y="10" width="343.5" height="143" 
	     id="datagrid1" 
             dataProvider="{creaRequest.lastResult.main.item}" >
	<mx:columns>
		<mx:DataGridColumn headerText="Nome" dataField="nome"/>
		<mx:DataGridColumn headerText="Messaggio" dataField="messaggio"/>			
	</mx:columns>
</mx:DataGrid>

Il blocco HTTPService permette al client Flex di inviare una richiesta (creaRequest) alla pagina “url” con il metodo POST (cioè esattamente come un form HTML) le due variabili nome e messaggio, prendendo i valori dal testo inserito dall’utente in due textbox.

Il DataGrid invece, cioè la tabella dell’esempio, ha come fonte il file XML ricavato dall’HTTPService, questa “fonte” tecnicamente si chiama dataProvider. Ogni riga della tabella quindi sara popolata con il contenuto del tag del nostro file XML.
HeaderText è il titolo della colonna che può essere scelto liberamente, dataField invece deve coincidere con un tag XML contenuto nel tag superiore .

A questo punto ogni volta che vogliamo aggiornare i dati dobbiamo solo inviare un creaRequest.send();

Pubblicato in Flash, Flex, Guide, ITbazar, Internet, Linux, Php, Tutorial | Nessun Commento »

Catturare lo schermo in un video!

Inviato da Domenico Dibello il 5 Marzo 2008

Versione per kde di recordmydesktop (krecordmydesktop)

Vi è mai capitato di voler spiegare ad un amico, magari alle prime armi come si usa un software o come si configura una rete oppure mostrare al mondo intero con Youtube quanto è fico il vostro Linux con gli effetti tridimensionali di compiz?

Bene da oggi lo potrete fare, come sempre in poco meno di 2 minuti! Il programma che fa al caso nostro è recordmydesktop, tutto ciò che fa è creare un video di quello che vedete sul vostro schermo, è presente nei repository ufficiali di Gutsy Gibson e si installa con:

apt-get install recordmydesktop
oppure
apt-get install krecordmydesktop (se usate kde)

Fatto ciò basterà lanciare il comando da terminale specificando il nome del file.

recordmydesktop -o nomefile.ogg

Se volete potrete decidere il numero di fps (frames per secondo), la dimensione della finestra di cattura, se catturare il suono oppure no, la qualità del video, il bitrate, se catturare solamente una finestra specifica…

recordmydesktop comando

Ecco qui un esempio di video a bassa risoluzione della mia LinuxBox!

Pubblicato in Guide, Linux, Ubuntu, Youtube | 1 Commento »