<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bellinux • com &#187; Tecnologia</title>
	<atom:link href="http://www.bellinux.com/categorie/tecnologia/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bellinux.com</link>
	<description>Egooocentrismo allo stato puro!</description>
	<lastBuildDate>Fri, 27 Aug 2010 14:32:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web, AJAX, Adobe Flash e pubblicità!</title>
		<link>http://www.bellinux.com/web-ajax-adobe-flash-e-pubblicita</link>
		<comments>http://www.bellinux.com/web-ajax-adobe-flash-e-pubblicita#comments</comments>
		<pubDate>Tue, 18 May 2010 00:16:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=263</guid>
		<description><![CDATA[Da aspirante comunicatore pubblicitario e discreto (secondo qualcuno profondo) conoscitore delle tecnologie web, prima o poi, mi sarebbe capitato di imbattermi nel dilemma: Flash, o non Flash?
Flash è una tecnologia potentissima, e può essere dotato anche di un lato server-side (che può essere anche PHP, ma è disponibile anche un linguaggio proprietario) per la gestione [...]]]></description>
			<content:encoded><![CDATA[<p>Da aspirante<strong> comunicatore pubblicitario</strong> e <strong>discreto </strong>(secondo qualcuno profondo) conoscitore delle <strong>tecnologie web</strong>, prima o poi, mi sarebbe capitato di imbattermi nel dilemma: Flash, o non Flash?</p>
<p>Flash è una <strong>tecnologia potentissima</strong>, e può essere dotato anche di un lato server-side (che può essere anche PHP, ma è disponibile anche un linguaggio proprietario) per la gestione di contenuti dinamici.</p>
<p>Dove è corretto <strong>utilizzarlo </strong>e dove se ne può (o se ne deve) <strong>fare a meno</strong>?</p>
<p>E&#8217; questo il punto <strong>controverso </strong>dove pubblicitari e &#8220;tecnologi&#8221; puri si scontrano.</p>
<p>Da &#8220;tecnologo&#8221; (quale presuntuosamente, a torto o a ragione, mi definisco) ed aspirante pubblicitario (studio comuncazione pubblicitaria) mi viene da fare delle considerazioni:</p>
<ol>
<li>Un sito web è sempre e comunque un<strong> finestra informativa</strong> tra azienda e mondo. Non è solo questo ma sicuramente è <strong>almeno </strong>questo.</li>
<li>Un <strong>contenuto informativo</strong> è sempre e comunque di *<strong>natura testuale</strong>. Non è solo questo, ma sicuramente è <strong>almeno</strong> questo.</li>
<li>Ovviamente un contenuto informartivo, in un sito web, è generalmente <strong>categorizzato </strong>o comunque &#8220;<strong>strutturato</strong>&#8221; (è impensabile un sito web senza struttura e con contenuti buttati a casaccio).</li>
</ol>
<p>Queste tre premesse sono utili ad un analisi dettagliata.</p>
<p>La <strong>struttura </strong>è determinata da una serie di link studiati in base alla <strong>rappresentazione logica</strong> dei <strong>contenuti</strong>.</p>
<p><em>(La strutturazione di un sito web sembra banale; è invece necessario uno studio attento dei contenuti per poterne determinare una struttura logica &#8211; insieme dei link &#8211; funzionale, user-friendly e priva di ridondanze.)</em></p>
<p>I <strong>motori di ricerca</strong> non leggono i contenuti presenti in un file Flash (ad oggi solo Google riesce a leggere &#8211; in percentuali molto basse che dipendono dal grado di complessità dell&#8217;appicativo Flash &#8211; alcuni contenuti basati su Flash).</p>
<p>Il <strong>grado di importanza</strong> (ranking) attribuito ad un contenuto da un motore di ricerca dipende, tra l&#8217;altro, dal grado di strutturazione dello stesso contenuto: un contenuto che è strutturato ad un livello più basso avrà meno importanza e viceversa (ad esempio la home page ha un&#8217;importanza maggiore, le pagine figlie annidate a livelli più bassi e quindi più nascoste, avranno un importanza minore).</p>
<p>Per un motore di ricerca è<strong> impossibile determinare</strong> la <strong>struttura </strong>di un sito realizzato in <strong>Flash </strong>ed è quindi <strong>impossibile attribuire </strong>una determinata &#8220;<strong>importanza</strong>&#8221; ad ogni singolo contenuto.</p>
<p>Il grado di importanza <em>dipende</em> anche dalla struttura dell&#8217;<strong>URL</strong>:</p>
<p>www.bellinux.gov/importante/menoimportante/ancoramenoimportante/.</p>
<p>Un sito web realizzato in Flash <strong>non ha</strong> una strutturazione ad URL: tutto è concentrato in un unica pagina (si può ovviare a questo svantaggio creando una struttura e gestendo manualmente i contenuti Flash dedicati ad ogni pagina ma si perde la praticità del Flash!)</p>
<p>In conclusione, per &#8220;<strong>insegnare</strong>&#8221; ai motori di ricerca la <strong>logica interna</strong> di un sito web è <strong>indispensabile </strong>trovare <strong>altre soluzioni</strong>.</p>
<p>Un vantaggio (che si trasforma in uno svantaggio) di Flash è la praticità. Ma è sempre così?</p>
<p>Spesso mi è capitato di dover intraprendere modifiche relativamente importanti ad un sito web; un implementazione logica corretta mi ha sempre permesso di effettuare le modifiche in tempi brevissimi e nella maggior parte dei casi direttamente online.</p>
<p>Per modificare un sito in Flash è invece necessario editarne il cuore all&#8217;interno di Adobe Flash con i svantaggi che ne derivano.</p>
<p>Il vantaggio di una maggiore praticità iniziale si trasforma in uno svantaggio nel momento in cui ho la necessità di effettuare, anche piccole modifiche, al motore di gestione dei contenuti (quando c&#8217;è!) interno del sito web.</p>
<p>Un&#8217;altro svantaggio di Flash, che potrebbe essere considerato irrilevante (ed in effetti, per un pubblicitario lo sarebbe &#8211; per un &#8220;tecnologo&#8221; no!) è la velocità di esecuzione.</p>
<p>Flash ha però anche molti vantaggi: ha una <strong>gestione </strong>della <strong>grafica </strong>completa ed <strong>efficientissima </strong>e riesce persino a gestire le librerie <strong>DirectX </strong>e <strong>OpenGL </strong>per la creazioni di <strong>grafica 3D </strong>avanzata, persino giochi completi!</p>
<p>E&#8217; in grado di gestire elementi multimediali quali suoni e video in maniera <strong>cross-browser</strong> (attualmente solo Mozilla consente di visualizzare filmati senza Flash anche se in formati particolari).</p>
<p><em>Per la gestione del 2D è pratiamente possibile fare tutto con gli strumenti che il browser mette a disposizione (ogni browser, anche internet explorer 6!) ha un motore per il rendering di grafica vettoriale molto avanzato e gestibile tramite JavaScript.</em></p>
<p>Tuttavia è <strong>evidente </strong>la <strong>praticità </strong>d&#8217;uso di <strong>Flash </strong>anche per questa categoria di grafica; la gestione del <strong>2D </strong>tramite librerie AJAX (javascript) può divenire davvero molto complessa.</p>
<p>Come fare quindi per ovviare agli svantaggi di Flash e usufruire dei notevoli vantaggi tecnologici che mette a disposizione?</p>
<p>La strada è semplice (e ovvia): <strong>utilizzare combinatamente </strong>alla tecnologia <strong>Flash </strong>le tecnologie<strong> HTML CSS e AJAX</strong> imponendosi di usare Flash <strong>solo per contenuti non diversamente gestibili</strong> ed in ogni caso non utilizzando <strong>mai </strong>Flash per la gestione della <strong>strutturazione logica</strong> (link, menù di scelta e quant&#8217;altro) e per la gestione di <strong>contenuti testuali</strong>.</p>
<p>Le tecnologie di <strong>rendering</strong> di tutti i browser consentono infatti di combinare le tecnologie in un &#8220;<strong>corpus</strong>&#8221; unico perfettamente amalgamato (ad esempio è addirittura possibile gestire le trasparenze tramite Flash avendo come sfondo una pagina HTML gestita dinamicamente tramite AJAX &#8211; e quindi in potenziale evoluzione &#8211; in maniera del tutto trasparente!)</p>
<p><em>(Da notare la natura &#8220;idiliaca&#8221; delle &#8220;trasparenze gestite in maniera trasparente&#8221;!)</em></p>
<p>Concludendo penso al mio risibile  passato: fino a 2-3 anni fa avevo una sorta di allergia a Flash (lo snobbavo pesantemente), in parte giustificata dal fatto che la consideravo una tecnologia paradossalmente arretrata (Flash di 3-4 anni fa era abbastanza diverso da quello attuale) in quando era possibile realizzare simili effetti tramite HTML CSS e JAVASCRIPT.</p>
<p>Adesso credo che la praticità (che in molti casi è effettiva) che lo strumento offre, in ambito lavorativo, è (ed era) comunque molto elevata e ne giustifica l&#8217;uso a patto di rispettare alcune piccole regole guidate dal buon senso: <strong>uso</strong>, non <strong>abuso</strong>!</p>
<p><span style="color: #c0c0c0;">*un contenuto informativo può non essere testuale (ed essere solo visuale) in determinati contesti nel mondo del fashion.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/web-ajax-adobe-flash-e-pubblicita/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmazione Parallela in PHP</title>
		<link>http://www.bellinux.com/programmazione-parallela-in-php</link>
		<comments>http://www.bellinux.com/programmazione-parallela-in-php#comments</comments>
		<pubDate>Wed, 19 Nov 2008 20:27:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=140</guid>
		<description><![CDATA[Programmazione Parallela in PHP? Non è follia&#8230; e non è nemmeno complesso: tutto è già studiato per essere parallelizzato&#8230; come?
Lo vedremo leggendo queste pagine!
P.S.: l&#8217;esperimento utilizza alcuni escamotage inediti: da mie ricerche su internet, nulla è stato mai sperimentato prima in PHP.
I thread

Windows (come Linux), nativamente supporta i processori multipli utilizzando i thread.
Cosa è un [...]]]></description>
			<content:encoded><![CDATA[<p>Programmazione Parallela in PHP? Non è follia&#8230; e non è nemmeno complesso: tutto è già studiato per essere parallelizzato&#8230; come?</p>
<p>Lo vedremo leggendo queste pagine!</p>
<p><strong>P.S.:</strong> l&#8217;esperimento utilizza alcuni escamotage inediti: da mie ricerche su internet, nulla è stato mai sperimentato prima in PHP.</p>
<h4>I thread</h4>
<div class="column1-unit">
<p>Windows (come Linux), nativamente supporta i processori multipli utilizzando i thread.</p>
<p>Cosa è un thread?</p>
<p>Un thread lo semplificheremo come un insieme di istruzioni che possono essere eseguite da un singolo processore; Windows (supportando il multithread e hardware multiprocessore), la cosa più logica che possa fare quando ha più thread da eseguire in contemporanea è quella di assegnarli a processori diversi: in tal modo il carico è diviso sui processori disponibili.</p>
<p>Nel caso in cui i thread siano più di uno su un singolo processore, i threads non potendo essere eseguiti contemporaneamente vengono eseguiti dal processore a circolo continuo per brevissimi intervalli di tempo; in realtà il meccanismo è più complesso, infatti prevede anche il fatto che ci possa essere una priorità impostata per ogni thread: un thread con maggiore priorità utilizzerà per più tempo il processore rispetto un thread a priorità minore.</p>
<p>Da quanto detto si capisce come un thread perde la possibilità di utilizzo del processore anche se non ha finito il suo compito: continuerà la serie di istruzioni che stava eseguendo quando sarà nuovamente il suo turno.</p></div>
<h4>
Ambiente di sviluppo</h4>
<div class="column1-unit">
<p>PHP è un linguaggio lato server che gira (o almeno noi lo faremo girare) sulla piattaforma WAMP: Windows, Apache, MySql e PHP.</p>
<p>Non mi prolungherò molto sul Apache e PHP in quanto si suppone che chi legga un articolo sulla programmazione parallela in PHP conosca già l&#8217;ambiente del quale si sta parlando.</p>
<p>Apache è progettato in modo da creare un nuovo thread quando deve servire una richiesta effettuata da un client; per ogni client che fa una richiesta infatti, genera un thread, che puo essere assegnato (nel caso di più processori) a processori diversi (se ne occuperà il sistema operativo).</p></div>
<h4>
Accenni di programmazione parallela</h4>
<div class="column1-unit">
<p>Una singola persona non potrà mai fare una addizione ed una moltiplicazione contemporaneamente (provateci, non vi riuscirete!): è la stessa identica cosa per un processore, solo che lui è molto più veloce ed anche se esegue le operazioni una di seguito all&#8217;altra, sembra che esse vengano eseguite contemporaneamente.</p>
<p>Avendo due persone, se ad uno gli si dice di fare la moltiplicazione e ad un altro gli si dice di fare la somma, queste ultime, invece, possono eseguire le operazioni contemporaneamente: è la stessa identica cosa per due processore distinti.</p></div>
<h4>
Come rendere il software parallelo</h4>
<div class="column1-unit">
<p>Per una operazione elementare chiaramente è impossibile, ma per un operazione complessa che è possibile scomporre in due operazioni &#8220;meno complesse&#8221; ciò è possibile.</p>
<p>Un esempio (matematico) concreto:</p>
<p>(SQRT sta per square root, radice quadrata).</p>
<p>SOMMATORIA(SQRT(n)) con n che varia da 1 a 100.000.000 a passi di 1.</p>
<p>Dando per scontato che la radice quadrata sia un operazione elementare (per un processore), se avessimo a disposizione un processore per eseguire l&#8217;operazione ci staremmo un tempo T, se avessimo a disposizione due processori, parallelizzando l&#8217;algoritmo, per eseguire l&#8217;operazione ci staremmo un tempo T/2.</p>
<p>Perchè?</p>
<p>Ovviamente, dobbiamo parallelizzare l&#8217;operazione, se eseguiamo un thread che calcola:</p>
<p>SOMMATORIA(SQR(n)) con n che varia da 1 a 100.000.000, il tempo impiegato sarà T anche se i processore della macchina sono due: infatti il sistema operativo non è in grado di capire che l&#8217;operazione può essere parallelizzata e non può creare due thread da assegnare a due processori (ne utilizzera 1 al 100%).</p>
<p>La parallelizzazione deve essere preventivata e progettata dallo sviluppatore dell&#8217;applicazione.</p>
<p>Come facciamo a parallelizzare l&#8217;operazione?</p>
<p>Molti l&#8217;avranno già intuito:</p>
<p>SOMMATORIA(SQRT(n)) con n che varia da 1 a 100.000.000</p>
<p>E&#8217; equivalente a scrivere:</p>
<p>SOMMATORIA(SQRT(n)) con n che varia da 1 a 50.000.000: thread 1, processore A<br />
sommato a (+)<br />
SOMMATORIA(SQRT(n)) con n che varia da 50.000.001 a 100.000.000: thread 2, processore B</p>
<p><strong>Obbiezione:</strong> calcolare la radice quadrata di 1 sarà sicuramente più semplice che calcolare la radice quadrata di 50.000.000 quindi il thread 1 impiegherà molto meno tempo ad essere eseguito del thread 2: cioè è vero nel caso in cui la radice quadrata non sia un operazione elementare;</p>
<p>Supponendo che essa non sia un operazione elementare potremmo scrivere:</p>
<p>SOMMATORIA(SQRT(n)) con n che varia da 1 a 100.000.000: thread 1, processore A</p>
<p>E&#8217; equivalente a scrivere:</p>
<p>SOMMATORIA(SQRT(n)) con n che varia da 1 a 99.999.999 ad intervalli di 2 (quindi gli n varieranno con questa successione 1,3,5,7,9,11&#8230;99.999.999 )<br />
sommato a (+)<br />
SOMMATORIA(SQRT(n)) con n che varia da 2 a 100.000.000 ad intervalli di 2 (quindi gli n varieranno con questa successione 2,4,6,8,10,12&#8230;100.000.000)</p>
<p>In tal modo l&#8217;obbiezione precedentemente esplicitata non avrebbe più senso; Comunque scopriremo che la radice quadrata è un operazione elementare: ciò vuol dire che il tempo impiegato per effettuare SQRT(1) è uguale al tempo impiegato per effettuare SQRT(100000000000000..0)!</p></div>
<h4>
Il codice PHP Parallelizzato</h4>
<div class="column1-unit">
<p>Come trasformare tutto ciò in PHP?<br />
(la procedura prevede la conoscenza di un po&#8217; di javascript e di html)</p>
<p>Impostiamo i seguenti file:</p>
<p><strong>thread1.php</strong></p>
<blockquote>
<pre>

&lt;?php

function microtime_float() //funzione che mi serve per calcolare con precisione i tempi

{

list($usec, $sec)=explode(" ", microtime());

return ((float)$usec + (float) $sec);

}

$inizio=microtime_float(); //salvo in inizio l'ora di avvio dello script

set_time_limit(300000000000); //setto un tempo molto lungo per l'esecuzione 

$somma1=0; //elemento neutro per la somma

for ($i=1; $i &lt;= 99999999; $i+=2) / $i varia da 1 a 99999999 a passi di 2

{

	$somma1+=sqrt($i); //aggiungo alla somma il risultato della radice quadrata

}

$handle=fopen("processore1.result","w+"); //salvo il risultato della sommatoria parziale

fwrite($handle,$somma1);

fclose($handle);

$fine=microtime_float(); //salvo l'ora di fine dello script

$tempo_impiegato=$fine - $inizio; //mi calcolo il tempo impiegato

$tempo=number_format($tempo_impiegato,5,',','.'); //trasformo il tempo impiegato in secondi

$handle=fopen("processore1.time","w+"); //salvo il tempo impiegato

fwrite($handle,$tempo);

fclose($handle);

?&gt;</pre>
</blockquote>
<p><strong>thread2.php</strong></p>
<blockquote>
<pre>&lt;?php

//i commenti sono simili al precedente

function microtime_float()

{

list($usec, $sec)=explode(" ", microtime());

return ((float)$usec + (float) $sec);

}

$inizio=microtime_float();

set_time_limit(300000000000);

$somma2=0; //elemento neutro per la somma

for ($i=2; $i &lt;= 100000000; $i+=2)

{

	$somma2+=sqrt($i);

}	

$handle=fopen("processore2.result","w+");

fwrite($handle,$somma2);

fclose($handle);

$fine=microtime_float();

$tempo_impiegato=$fine - $inizio;

$tempo=number_format($tempo_impiegato,5,',','.');

$handle=fopen("processore2.time","w+");

fwrite($handle,$tempo);

fclose($handle);

?&gt;</pre>
</blockquote>
<p><strong>parallelizza.htm</strong></p>
<blockquote>
<pre>&lt;html&gt;

&lt;head&gt;

&lt;script type="text/javascript"&gt;

processore1=false;

processore2=false;

function finito(processore)

{

if (processore==1) //se thread1.php ha finito imposto processore1 a true

processore1=true;

if (processore==2)//se thread2.php ha finito imposto processore2 a true

processore2=true;

if ((processore1==true) &amp;&amp; (processore2==true))

document.location.href="risultato.php";

//se i thread hanno finito entrambi mi rediriggo alla pagina risultato.php

}

&lt;/script&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;iframe onload="finito(1)" src="thread1.php"&gt;

&lt;iframe onload="finito(2)" src="thread2.php" id="ProcessoreDue"&gt;

/* quando un frame finisce di caricare (onload) vuol dire che un 

/* thread ha finito e chiama la funzione precedentemente 

/* commentata in javascript

&lt;/body&gt;

&lt;/html&gt;</pre>
</blockquote>
<p><strong>risultato.htm</strong></p>
<blockquote>
<pre>&lt;?php

$handle=fopen("processore1.result","r");

$risultato1=fread($handle,8000);

fclose($handle);

//metto in risultato1 la somma parziale di thread1.php

$handle=fopen("processore2.result","r");

$risultato2=fread($handle,8000);

fclose($handle);

//metto in risultato2 la somma parziale di thread2.php

echo "Somma: ";

echo $risultato1+$risultato2;

echo "
";

//visualizzo la somma

$handle=fopen("processore1.time","r");

$time1=fread($handle,8000);

fclose($handle);

//prendo il tempo di thread1.php

$handle=fopen("processore2.time","r");

$time2=fread($handle,8000);

fclose($handle);

//prendo il tempo di thread2.php

if ($time1&gt;$time2)

echo "Tempo impiegato: $time1 secondi";

else

echo "Tempo impiegato: $time2 secondi";

//visualizzo il tempo maggiore tra thread1.php e thread2.php come tempo totale

?&gt;</pre>
</blockquote>
<p>Per quanto il codice dovrebbe essere di semplice interpretazione, passiamo a qualche spiegazione:</p>
<p>I file <strong>thread1.php</strong> e <strong>thread2.php</strong> si dividono il lavoro, effettuano metà lavoro ciascuno (utilizzando due processori)</p>
<p>Il file <strong>parallelizza.htm</strong> serve per avviare contemporaneamente i due file thread1.php e thread2.php in un iframe, modo che siamo sicuri che i due thread partono contemporaneamente e per avviare il file risultato.php quando entrambi i due thread hanno finito il lavoro (parte in javascript).</p>
<p>Il file <strong>risultato.php</strong> che si avvia soltanto quando tutti e due i thread hanno finito di effettuare il lavoro somma i due risultati e visualizza i risultato finale.</div>
<h4>
Codice non parallelizzato</h4>
<div class="column1-unit">
<p>Senza programmazione parallela lo script php sarebbe:</p>
<p><strong>singolo.php</strong></p>
<blockquote>
<pre>&lt;?php

function microtime_float()

{

list($usec, $sec)=explode(" ", microtime());

return ((float)$usec + (float) $sec);

}

$inizio=microtime_float(); //calcolo l'ora di inizio

set_time_limit(300000000000);

$somma2=0; //elemento neutro per la somma

for ($i=1; $i &lt;= 100000000; $i++)

{

	$somma2+=sqrt($i); //effettuo il ciclo a passi di 1

}

echo "Somma: $somma2
"; //visualizzo la somma

$fine=microtime_float(); //calcolo l'ora di fine

$tempo_impiegato=$fine - $inizio;

$tempo=number_format($tempo_impiegato,5,',','.');

echo "Tempo impiegato: $tempo secondi"; //visualizzo il tempo impiegato

?&gt;</pre>
</blockquote>
</div>
<h4>
Prestazioni a confronto</h4>
<div class="column1-unit">
<p>Analizziamo adesso le differenze prestazionali dei due software e come utilizzano il processore.</p>
<p>Il processore del computer in questione è un Intel Core 2 Duo.</p>
<p>Per il software non parallelizzato abbiamo i seguenti risultati:</p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/singoloresults.jpg" border="0" alt="" /></p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/singolotask.jpg" border="0" alt="" /></p>
<p>Per il software parallelizzato abbiamo i seguenti risultati:</p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/paralleloresults.jpg" border="0" alt="" /></p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/parallelotask.jpg" border="0" alt="" /></p>
<p>Si evince come il software parallelizzato utilizzi al 100% la capacità di calcolo del processore dimezzando praticamente i tempi rispetto al software non parallelizzato.</p>
<p>In PC monoprocessore i tempi sono praticamente uguali tra software parallelizzato e non.</p></div>
<h4>
SQRT, operazione elementare</h4>
<div class="column1-unit">
<p>Verifichiamo adesso che l&#8217;operazione di SQRT sia un&#8217;operazione elementare (ne parlavamo qualche pagina prima).</p>
<p>Sostituiamo nei file che compongono il software parallelo i file thread1.php e thread2.php con questi file:</p>
<p><strong>thread1.php</strong></p>
<blockquote>
<pre>

&lt;?php

function microtime_float()

{

list($usec, $sec)=explode(" ", microtime());

return ((float)$usec + (float) $sec);

}

$inizio=microtime_float();

	set_time_limit(300000000000);

	$somma1=0; //elemento neutro per la somma

	for ($i=1; $i &lt;= 50000000; $i++) //il for va da 1 a 50000000

	{

		$somma1+=sqrt($i);

	}

$handle=fopen("processore1.result","w+");

fwrite($handle,$somma1);

fclose($handle);

$fine=microtime_float();

$tempo_impiegato=$fine - $inizio;

$tempo=number_format($tempo_impiegato,5,',','.');

$handle=fopen("processore1.time","w+");

fwrite($handle,$tempo);

fclose($handle);

?&gt;</pre>
</blockquote>
<p><strong>thread2.php</strong></p>
<blockquote>
<pre>&lt;?php

function microtime_float()

{

list($usec, $sec)=explode(" ", microtime());

return ((float)$usec + (float) $sec);

}

$inizio=microtime_float();

	set_time_limit(300000000000);

	$somma2=0; //elemento neutro per la somma

	for ($i=50000001; $i &lt;= 100000000; $i++) //il for va da 50000000 a 100000000

	{

		$somma2+=sqrt($i);

	}

$handle=fopen("processore2.result","w+");

fwrite($handle,$somma2);

fclose($handle);

$fine=microtime_float();

$tempo_impiegato=$fine - $inizio;

$tempo=number_format($tempo_impiegato,5,',','.');

$handle=fopen("processore2.time","w+");

fwrite($handle,$tempo);

fclose($handle);

?&gt;</pre>
</blockquote>
<p>Si potrebbe pensare che thread1.php termini molto prima rispetto thread2.php in quanto fare le radici che vanno da 1 a 50.000.000 (thread1.php) sia più facile che farle da 50.000.000 a 100.000.000; invece questo risulta falso in quando i processori di oggi sono così ottimizzati da effettuare operazioni come la radice quadrata con un singolo ciclo di clock (l&#8217;affermazione potrebbe non corrispondere esattamente al vero però in termini realistici va più che bene).<br />
Vediamo i risultati:</p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/paralleloverificaelementareresults.jpg" border="0" alt="" /></p>
<p><img id="comm" src="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/images/paralleloverificaelementaretask.jpg" border="0" alt="" /></p>
<p>Praticamente non vi è alcuna differenza tra i due metodi di parallelizzazione.</p></div>
<h4>
Note finali</h4>
<div class="column1-unit">
<p>Il risultato finale dei diversi applicativi paralleli e di singolo.php variano di qualche decimale per errori dovuti all&#8217;approssimazione della somma effettuata successivamente all&#8217;esecuzione dei thread.</p>
<p>Il più preciso risulta quindi singolo.php: ciò non toglie il fatto che aumentando la precisione dei decimali il risultato degli applicativi paralleli possa coincidere a quello di singolo.php</p></div>
<h4>
Download</h4>
<table border="0">
<tbody>
<tr>
<th class="top" scope="col">Nome</th>
<th class="top" scope="col">Dimensione</th>
<th class="top" scope="col">Descrizione</th>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/italian/4-Informatica.sub/6-Programmazione_Parallela_in_PHP.dir/download.dwl/parallela.zip">parallela.zip</a></th>
<td>13 Kbytes</td>
<td>Esempio di programmazione parallela in PHP (richiesta conoscenza di javascript e html)</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/programmazione-parallela-in-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bellinux WebTV!</title>
		<link>http://www.bellinux.com/bellinux-webtv</link>
		<comments>http://www.bellinux.com/bellinux-webtv#comments</comments>
		<pubDate>Mon, 19 May 2008 22:49:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/blog/2008/05/19/bellinux-webtv/</guid>
		<description><![CDATA[Qui la mia WebTV: http://www.bellinux.com/blog/webtv/
Di tanto in tanto mi &#8220;trasmetterò&#8221; live mentre che studio il pianoforte!
Quando non sarò live saranno visualuzzati a rotazione i miei video inseriti su youtube!
]]></description>
			<content:encoded><![CDATA[<p>Qui la mia WebTV: <a href="http://www.bellinux.com/blog/webtv/">http://www.bellinux.com/blog/webtv/</a></p>
<p>Di tanto in tanto mi &#8220;trasmetterò&#8221; live mentre che studio il pianoforte!</p>
<p>Quando non sarò live saranno visualuzzati a rotazione i <a href="http://it.youtube.com/user/bellinuxcom">miei video inseriti su youtube</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/bellinux-webtv/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cantori Nuovi: Social Music Experiment</title>
		<link>http://www.bellinux.com/social-music-experiment</link>
		<comments>http://www.bellinux.com/social-music-experiment#comments</comments>
		<pubDate>Wed, 07 May 2008 13:25:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Musica]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/blog/2008/05/07/social-music-experiment/</guid>
		<description><![CDATA[Il web diventa sempre più fonte nuova di cooperazione, interazione ed analisi.
E’ per le ore 19,30 di domani 8 maggio, l’appuntamento che apre il nuovo Social Music Experiment.
Collegandoci alla web tv si potrà assistere e partecipare alle prove del Coro Polifonico Cantori Nuovi di Palermo; gli utenti, infatti, avranno la possibilità di interagire con gli [...]]]></description>
			<content:encoded><![CDATA[<p class="snap_preview">Il <strong>web</strong> diventa sempre più fonte nuova di <strong>cooperazione</strong>, <strong>interazione</strong> ed <strong>analisi</strong>.<br />
E’ per le <strong>ore 19,30</strong> di domani <strong>8 maggio</strong>, l’appuntamento che apre il nuovo <strong>Social Music Experiment</strong>.<br />
Collegandoci alla <a href="http://www.bellinux.com/sne/"><strong>web tv</strong> </a>si potrà assistere e partecipare alle prove del <strong>Coro Polifonico Cantori Nuovi</strong> di <strong>Palermo</strong>; gli utenti, infatti, avranno la possibilità di <strong>interagire</strong> con gli altri utenti e con i componenti del Coro stesso, comodamente seduti sulla poltrona di casa propria.<br />
Il <strong>fine</strong> dell’evento è quello di sperimentare <strong>nuove possibilità di partecipazione</strong> ad uno spettacolo rendendo lo spettatore parte dello spettacolo stesso.</p>
<p>Buona visione e… <strong>passate parola</strong> <img src="http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/social-music-experiment/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Animusic: arte digitale</title>
		<link>http://www.bellinux.com/animusic-arte-digitale</link>
		<comments>http://www.bellinux.com/animusic-arte-digitale#comments</comments>
		<pubDate>Tue, 06 May 2008 11:47:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Musica]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/blog/2008/05/06/animusic-arte-digitale/</guid>
		<description><![CDATA[Ci sono varie forme di Arte digitale, tutte sono più o meno artistiche&#8230;
Una davvero interessante, scoperta da me per caso, è animusic.
Inutile commentare a parole, meglio lasciarvi in compagnia di qualche video!
[C'é un video che non può essere mostrato in questo feed.Visita la pagina dell'articolo per poter vedere il video.]
[C'é un video che non può [...]]]></description>
			<content:encoded><![CDATA[<p>Ci sono varie forme di <strong>Arte digitale</strong>, tutte sono più o meno artistiche&#8230;</p>
<p>Una davvero interessante, scoperta da me per caso, è <strong>animusic</strong>.</p>
<p>Inutile commentare a parole, meglio lasciarvi in compagnia di qualche video!</p>
<p>[C'é un video che non può essere mostrato in questo feed.<a href="http://www.bellinux.com/animusic-arte-digitale">Visita la pagina dell'articolo per poter vedere il video.]</a></p>
<p>[C'é un video che non può essere mostrato in questo feed.<a href="http://www.bellinux.com/animusic-arte-digitale">Visita la pagina dell'articolo per poter vedere il video.]</a></p>
<p>E ce ne sono <a href="http://it.youtube.com/results?search_query=animusic&amp;search_type=&amp;aq=f">moolti altri</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/animusic-arte-digitale/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lightbox 2</title>
		<link>http://www.bellinux.com/lightbox-2</link>
		<comments>http://www.bellinux.com/lightbox-2#comments</comments>
		<pubDate>Sat, 19 Apr 2008 22:35:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=143</guid>
		<description><![CDATA[Lightbox è un applicativo scritto da Lokesh Dhakar in Javascript che permette la creazione di gallerie fotografiche sul web.
Questo sito, nelle photogallery utilizza una versione modificata di lightbox per la visualizzazione.
In queste pagine è mia intenzione documentare queste funzionalità aggiuntive da me implementate.
In breve: ridimenzionamento automatico delle immagini in base all&#8217;area visibile del browser o [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox</a> è un applicativo scritto da Lokesh Dhakar in Javascript che permette la creazione di gallerie fotografiche sul web.</p>
<p>Questo sito, nelle photogallery utilizza una versione modificata di lightbox per la visualizzazione.</p>
<p>In queste pagine è mia intenzione documentare queste funzionalità aggiuntive da me implementate.</p>
<p>In breve: ridimenzionamento automatico delle immagini in base all&#8217;area visibile del browser o in base a limiti di altezza e larghezza prefissati.</p>
<h4>File modificati</h4>
<div class="column1-unit">
<p>Lightbox è composto dai seguenti file:</p>
<ul>
<li><strong>js/lightbox.js</strong>: <em>modificato</em></li>
<li><strong>js/effects.js</strong>: nessuna modifica</li>
<li><strong>js/prototype.js</strong>: nessuna modifica</li>
<li><strong>js/scriptaculous.js</strong>: nessuna modifica</li>
<li><strong>css/lightbox.css</strong>: nessuna modifica</li>
</ul>
</div>
<h4>La modifica</h4>
<div class="column1-unit">
<h6>Motivazioni</h6>
<p>Allo stato originale, Lightbox, in presenza di immagini più grandi della superficie di visualizzazione del browser, non effettua ridimensionamenti, proponendo le immagini a dimenzione originale con lo svantaggio di dover utilizzare le barre di scorrimento per la visualizzazione con un ovvio impatto antiestetico.</p>
<p><a href="http://www.bellinux.com/lightboxdemo/">Qui</a> potrete trovare la dimostrazione delle funzionalità aggiuntive!</p>
<h6>Dettagli</h6>
<p>Il file <strong>lightbox.js</strong> è l&#8217;unico file che ha subito delle modifiche.</p>
<p>Nella parte relativa alla configurazione sono state aggiunte le seguenti linee:</p>
<pre>var autoSize=true;

var maxWidth=0;

var maxHeight=0;</pre>
<p>La variabile <strong>autoSize</strong> serve per abilitare la nuova funzione.</p>
<p>La variabile <strong>maxWidth</strong> setta la larghezza massima della foto.</p>
<p>La variabile <strong>maxHeight</strong> setta l&#8217;altezza massima della foto.</p>
<p>Se la variabile <strong>maxHeight</strong> (e/o <strong>maxWidth</strong>) è impostata a 0 il rispettivo valore sarà automatico, ciò dipenderà dall&#8217;area visibile del browser.</p>
<p>Nel caso in cui la dimenzione della foto rientra già nei limiti impostati, la nuova funzionalità non entrerà in funzione.</p>
<p>Nella parte relativa ai metodi per gli elementi sono state aggiunte le seguenti linee:</p>
<pre>setHeightImg: function(element,height) {

element = $(element);

element.height = height; 

},

setWidthImg: function(element,width) {

element = $(element);

element.width = width; 

},</pre>
<p>La funzione <strong>setWidthImg</strong> aggiunge il parametro Width all&#8217;immagine visualizzata per effettuarne il ridimenzionamento, stessa cosa per <strong>setHeightImg</strong> (che aggiunge il parametro Height).</p>
<p>Nella parte relativa alla visualizzazione delle immagini sono state aggiunte le seguenti linee:</p>
<pre>if (autoSize==true)

{

Element.setTop('lightbox', arrayPageScroll[1]+10);

//se autosize=true lascia come distanza dall'alto 10px

}

else

{

Element.setTop('lightbox', lightboxTop);

//se autoSize=false lascia la distanza dall'alto come quella originale

}

...

...

...

...

if (autoSize==true)

	{

	var winW = 630, winH = 460;

	if (parseInt(navigator.appVersion)&gt;3) {

	 if (navigator.appName=="Netscape") {

	  winW = window.innerWidth;

	  winH = window.innerHeight;

	 }

	 if (navigator.appName.indexOf("Microsoft")!=-1) {

	  winW = document.body.offsetWidth;

	  winH = document.body.offsetHeight;

	 }

	}

	if (maxWidth==0)

	  maxWidth=winW-70;

	if (maxHeight==0)

	  maxHeight=winH-90;

	if (imgPreloader.width&gt;maxWidth)

		{

		width=maxWidth;

		fattore=imgPreloader.width/width;

		height=imgPreloader.height/fattore;

		}

	else

		{

		width=imgPreloader.width;

		height=imgPreloader.height;

		}

	if (height&gt;maxHeight)

		{

		tmpHeight=maxHeight;

		fattore=height/tmpHeight;

		height=maxHeight;

		width=width/fattore;

		}

	Element.setWidthImg('lightboxImage', width);

	Element.setHeightImg('lightboxImage', height);

	myLightbox.resizeImageContainer(width, height);

	}

else

	{

	myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);

	}</pre>
<p>Considetando le spiegazioni date fin&#8217;ora il codice dovrebbe autocommentarsi da solo.</p>
<p><a href="http://www.bellinux.com/italian/4-Informatica.sub/5-Lightbox%20JS.dir/lightbox.js">Visualizza il file lightbox.js</a> completo.</p>
<p>In download, la versione modificata del software.</p>
<p><a href="http://www.bellinux.com/lightboxdemo/">Qui</a> potrete trovare la dimostrazione delle funzionalità aggiuntive!</div>
<h4>Come si usa</h4>
<div class="column1-unit">
<p>Un esauriente guida sull&#8217;utilizzo di lightbox la puoi trovare sul <a href="http://www.huddletogether.com/projects/lightbox2/">sito dell&#8217;autore</a></p>
<p>Per l&#8217;utilizzo della funzionalità aggiuntiva, dovrete scaricare la versione da me modificata dall&#8217;area download.</p></div>
<h4>Demo</h4>
<p><a href="http://www.bellinux.com/Data/lightboxdemo/">Qui</a> potrete trovare la dimostrazione delle funzionalità aggiuntive!</p>
<h4>Download</h4>
<table border="0">
<tbody>
<tr>
<th class="top" scope="col">Nome</th>
<th class="top" scope="col">Dimensione</th>
<th class="top" scope="col">Descrizione</th>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/4-Informatica.sub/5-Lightbox_2.dir/download.dwl/lightboxmod.zip">lightboxmod.zip</a></th>
<td>284 Kbytes</td>
<td>Lightbox, versione modificata: contiene anche un esempio utile per il suo utilizzo.</td>
</tr>
</tbody>
</table>
<p><a href="http://www.bellinux.com/italian/4-Informatica+5-Lightbox_2.dhtml"></a></p>
<p><a href="http://www.bellinux.com/italian/4-Informatica+5-Lightbox_2.dhtml"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/lightbox-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SuperSecurity</title>
		<link>http://www.bellinux.com/supersecurity</link>
		<comments>http://www.bellinux.com/supersecurity#comments</comments>
		<pubDate>Wed, 19 Mar 2008 20:15:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=137</guid>
		<description><![CDATA[Sicurezza avanzata sul Web!
Abstract
SuperSecurity è un sistema che permette di proteggere un area del sito attraverso un sistema di protezione Hardware!
SuperSecurity non richiede alcun username e alcuna password.
Come funziona?
Ogni computer ha un identificativo Hardware univoco, che potrebbe essere dato da piu&#8217; parametri, nel nostro caso l&#8217;unico parametro utilizzato è il seriale del disco fisso, che [...]]]></description>
			<content:encoded><![CDATA[<p>Sicurezza avanzata sul Web!</p>
<h4>Abstract</h4>
<p>SuperSecurity è un sistema che permette di proteggere un area del sito attraverso un sistema di protezione Hardware!</p>
<p>SuperSecurity non richiede alcun username e alcuna password.</p>
<p>Come funziona?</p>
<p>Ogni computer ha un identificativo Hardware univoco, che potrebbe essere dato da piu&#8217; parametri, nel nostro caso l&#8217;unico parametro utilizzato è il seriale del disco fisso, che è (o almeno dovrebbe essere) univoco.</p>
<p>SuperSecure Server, un applicazione che gira sul computer dal quale si accede alle pagine protette, prende questo seriale, genera una stringa numerica, e la invia al sito internet dove è installato SuperSecurity ogni volta che ne viene fatta richiesta.</p>
<p>SuperSecure contatta quindi il computer che tenta di connettersi richiedendo la stringa numerica ed effettua la verifica, è un caso positivo fa accedere alle pagine protette!</p>
<p>L&#8217;accesso al sito è quindi corelato esclusivamente al computer: se si tenta di accedere da un altro computer l&#8217;accesso fallisce!</p>
<p>Se vuoi testare SuperSecurity, all&#8217;indirizzo: <a href="http://www.bellinux.com/AreaProtetta/">http://www.bellinux.com/AreaProtetta/</a> trovi il software necessario e alcune pagine protette!</p>
<p>Prova ad effettuare la registrazione, ad accedere tramite un altro computer, ad accedere senza avviare il server ecc ecc.. <a href="mailto:info@bellinux.com">fammi sapere</a> se trovi bug o problemi!</p>
<h4>Lato Server</h4>
<div>
<p>Il software lato server (disponibile in download), scritto in php, e&#8217; composto dai seguenti componenti:</p>
<p>Una cartella SuperSecurity comprendente i file base del progetto e, nella root, alcune pagine protette di esempio, una pagina per eseguire le registrazioni e una index generica.</p>
<p>L&#8217;installazione e&#8217; praticamente inesistente, basta scompattare il file disponibile in download nella cartella all&#8217;interno della root del tuo sito.</p>
<p>Le pagine protette devono essere con estenzione php, e la protezione, sta nell&#8217;aggiunzione di una sola linea di codice:&#8221;&lt;\? include(&#8221;SuperSecurity/SuperSecurity.php&#8221;); ?\&gt;&#8221; (senza \)</p>
<p>A seguire il codice html della pagina che desiderate protegere!</p>
<p>Per protegere piu&#8217; pagine non vi sono differenze: basta inserire la linea di codice sovrastante all&#8217;inizio della pagina, non dimenticando che l&#8217;estensione stessa della pagine deve essere *.php.</p>
<p>Per registrare un nuovo computer basta utilizzare la pagina &#8221;registrazione.html&#8221; avendo attivato il client.</p>
<p>Per evitare la possibilita&#8217; di ulteriori registrazioni (se lo si vuole) basta eliminare i file &#8221;registrazione.htm&#8221; e &#8221;RegSS.php&#8221; contenuto nella cartella &#8221;SuperSecurity&#8221;</p>
<p>Per riattivare le registrazioni basta rimettere i file eliminati.</p>
<p>Il progetto vuole essere uno spunto per nuove idee: modificando i sorgenti e&#8217; possibile creare versioni personalizzate, molto piu&#8217; sicure.</p>
<p>Considerando comunque che i dati sulla rete viaggiano in chiaro e&#8217; sempre possibile intercettare i dati: sarebbe opportuna una modifica considerevole al software per criptare i dati e decriptarli all&#8217;arrivo attraverso il client, che potrebbe comportarsi come proxy locale (in grado di decriptare).</p>
<p>Tutte le modifiche sono consentite sotto licenza GNU GPL.</p></div>
<h4>Lato Client</h4>
<div>
<p>Non c&#8217;è molto da dire client parlando.</p>
<p>Il sorgente è disponibile in area download.</p>
<p>Per funzionare SuperSecurity deve avere un client al quale si connette per ricevere il seriale del computer: il client serve proprio a questo.</p>
<p>Il client è scritto in c++ ed è compilabile, molto semplicemente, con Dev-cpp ide gratuito basato su gcc.</p>
<p>Software sotto licenza GNU GPL.</p></div>
<h4>Download</h4>
<table border="0">
<tbody>
<tr>
<th scope="col">Nome</th>
<th scope="col">Dimensione</th>
<th scope="col">Descrizione</th>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/italian/1-Progetti.sub/4-SuperSecurity.dir/download.dwl/AreaProtetta.zip">AreaProtetta.zip</a></th>
<td>144 Kbytes</td>
<td>Server (all&#8217;interno client in exe)</td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/italian/1-Progetti.sub/4-SuperSecurity.dir/download.dwl/mioclient.cpp">mioclient.cpp</a></th>
<td>2 Kbytes</td>
<td>Client</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/supersecurity/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft teme il software libero!</title>
		<link>http://www.bellinux.com/microsoft-teme-il-software-libero</link>
		<comments>http://www.bellinux.com/microsoft-teme-il-software-libero#comments</comments>
		<pubDate>Mon, 28 Jan 2008 00:49:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[università]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/blog/2008/01/28/microsoft-teme-il-software-libero/</guid>
		<description><![CDATA[Con l&#8217;avvento del software libero BigM corre ai ripari.
Funziona un pò come la Chiesa: &#8220;indottrinali&#8221; sin da piccoli che non ti lasciano più!
Come ben saprete, il software by Microsoft si paga, e anche molto: prima piratare Windows era quasi legale e grazie a questo si è diffuso così tanto.
Adesso, dopo che Microsoft si è inferocita [...]]]></description>
			<content:encoded><![CDATA[<p>Con l&#8217;avvento del software libero BigM corre ai ripari.</p>
<p>Funziona un pò come la Chiesa: &#8220;indottrinali&#8221; sin da piccoli che non ti lasciano più!</p>
<p>Come ben saprete, il software by Microsoft si paga, e anche molto: prima piratare Windows era quasi legale e grazie a questo si è diffuso così tanto.</p>
<p>Adesso, dopo che Microsoft si è inferocita contro la pirateria, Windows (ma non solo) ce lo regalano!</p>
<p><span id="more-85"></span></p>
<p>A noi universitari, infatti, moltissimi dei software Microsoft li regalano gratis: è chiaro che nel mondo universitario il software libero sia oggetto di studio oltre che essere ampiamente utilizzato, e l&#8217;unica alternativa possibile per Microsoft è regalarlo (con un&#8217;unica limitazione, quella di non utilizzarlo a scopi commerciali).</p>
<p>Ma dicevamo&#8230; Windows e non solo!</p>
<p>Ecco tutta la lista dei software che posso scaricare gratis, legalmente, con licenza d&#8217;uso!</p>
<select>  <option value="543">.NET Framework 1.1 SDK</option> <option value="507">Access 2003</option> <option value="1279">Access 2007</option> <option value="1403">Access 2007 (Italian)</option> <option value="1382">Compute Cluster Pack</option> 	<option value="1383">Compute Cluster Pack SDK</option> <option value="469">Exchange Server 2003 Enterprise Edition</option> <option value="1331">Exchange Server 2007 Enterprise Edition</option> <option value="1440">Exchange Server 2007 Enterprise Edition (Italian)</option> <option value="1332">Exchange Server 2007 Standard Edition</option> <option value="1441">Exchange Server 2007 Standard Edition (Italian)</option> 	<option value="1392">Expression Blend</option> <option value="1443">Expression Blend (Italian)</option> <option value="1412">Expression Studio</option> <option value="1363">Expression Web</option> <option value="1434">Expression Web (Italian)</option> <option value="514">InfoPath 2003</option> 	<option value="978">InfoPath 2003 Toolkit for Visual Studio Tools for Office 2005</option> <option value="1282">InfoPath 2007</option> <option value="1436">InfoPath 2007 (Italian)</option> <option value="1448">ISA Server 2006 Enterprise Edition</option> <option value="536">MapPoint 2004 European &#8211; Run Disc (2/2)</option> <option value="535">MapPoint 2004 European &#8211; Setup Disc (1/2)</option> 	<option value="534">MapPoint 2004 North America &#8211; Run Disc (2/2)</option> <option value="533">MapPoint 2004 North America &#8211; Setup Disc (1/2)</option> <option value="1286">MapPoint 2006 European &#8211; DVD</option> <option value="1432">MapPoint 2006 Standard Edition (European Maps) &#8211; DVD (Italian)</option> <option value="679">MELL &#8211; Developer Edition for MSDNAA</option> <option value="1381">MSDN Library &#8211; April 2007 (DVD)</option> 	<option value="1426">MSDN Library &#8211; August 2006 &#8211; CD1</option> <option value="1427">MSDN Library &#8211; August 2006 &#8211; CD2</option> <option value="1428">MSDN Library &#8211; August 2006 &#8211; CD3</option> <option value="1442">MSDN Library &#8211; June 2007 &#8211; DVD (Italian)</option> <option value="1065">MSDN Library &#8211; May 2006 &#8211; CD1</option> <option value="1066">MSDN Library &#8211; May 2006 &#8211; CD2</option> 	<option value="1067">MSDN Library &#8211; May 2006 &#8211; CD3</option> <option value="990">MSDN Library &#8211; October 2005 &#8211; CD1</option> <option value="991">MSDN Library &#8211; October 2005 &#8211; CD2</option> <option value="992">MSDN Library &#8211; October 2005 &#8211; CD3</option> <option value="710">MSDN Library (Visual Studio .NET) CD1 ISO (Jan 2004)</option> <option value="711">MSDN Library (Visual Studio .NET) CD2 ISO (Jan 2004)</option> 	<option value="712">MSDN Library (Visual Studio .NET) CD3 ISO (Jan 2004)</option> <option value="713">MSDN Library (Visual Studio .NET) Full (Jan 2004)</option> <option value="969">MSDN Library for Visual Studio 2005 &#8211; CD1</option> <option value="970">MSDN Library for Visual Studio 2005 &#8211; CD2</option> <option value="971">MSDN Library for Visual Studio 2005 &#8211; CD3</option> <option value="1452">MSDN Library for Visual Studio 2008 (x86 and x64 WoW) &#8211; DVD</option> 	<option value="590">MS-DOS 6.0</option> <option value="1353">Office Groove 2007</option> <option value="1411">Office Groove Server 2007</option> <option value="1334">Office SharePoint Server 2007 Enterprise</option> <option value="1333">Office SharePoint Server 2007 Standard</option> <option value="531">OneNote 2003</option> 	<option value="1283">OneNote 2007</option> <option value="1433">OneNote 2007 (Italian)</option> <option value="539">Project Professional 2002 (Single-User)</option> <option value="519">Project Professional 2003</option> <option value="1281">Project Professional 2007</option> <option value="1431">Project Professional 2007 (Italian)</option> 	<option value="528">Project Server 2003</option> <option value="1280">SharePoint Designer 2007</option> <option value="1439">SharePoint Designer 2007 (Italian)</option> <option value="538">SQL Server 2000 Enterprise Edition</option> <option value="522">SQL Server 2000 SP3a</option> <option value="980">SQL Server 2005 Developer Edition &#8211; 32-bit &#8211; CD1</option> 	<option value="981">SQL Server 2005 Developer Edition &#8211; 32-bit &#8211; CD2</option> <option value="982">SQL Server 2005 Developer Edition &#8211; 64-bit Extended &#8211; CD1</option> <option value="983">SQL Server 2005 Developer Edition &#8211; 64-bit Extended &#8211; CD2</option> <option value="984">SQL Server 2005 Developer Edition &#8211; 64-bit Itanium &#8211; CD1</option> <option value="985">SQL Server 2005 Developer Edition &#8211; 64-bit Itanium &#8211; CD2</option> <option value="1447">SQL Server 2005 Developer Edition &#8211; DVD</option> 	<option value="1041">SQL Server 2005 Express Edition</option> <option value="1204">SQL Server 2005 Standard Edition &#8211; 32-bit &#8211; CD1</option> <option value="1205">SQL Server 2005 Standard Edition &#8211; 32-bit &#8211; CD2</option> <option value="986">SQL Server 2005 Standard Edition &#8211; 32-bit &#8211; DVD</option> <option value="1437">SQL Server 2005 Standard Edition &#8211; 32-bit &#8211; DVD (Italian)</option> <option value="1038">SQL Server 2005 Standard Edition &#8211; 64-bit Extended &#8211; CD1</option> 	<option value="1054">SQL Server 2005 Standard Edition &#8211; 64-bit Extended &#8211; CD2</option> <option value="987">SQL Server 2005 Standard Edition &#8211; 64-bit Extended &#8211; DVD</option> <option value="988">SQL Server 2005 Standard Edition &#8211; 64-bit Itanium &#8211; DVD</option> <option value="989">SQL Server 2005 Workgroup Edition &#8211; 32-bit &#8211; DVD</option> <option value="1451">System Center Operations Manager 2007</option> <option value="662">Virtual PC 2004</option> 	<option value="1435">Virtual PC 2004 (Italian)</option> <option value="1445">Virtual PC 2007</option> <option value="1013">Virtual PC for Mac 7.0.2</option> <option value="1063">Virtual Server 2005 Standard Edition R2 &#8211; x64 (English)</option> <option value="972">Visio for Enterprise Architects</option> <option value="524">Visio Professional 2003</option> 	<option value="1284">Visio Professional 2007</option> <option value="1430">Visio Professional 2007 (Italian)</option> <option value="1050">Visual Basic 2005 Express Edition</option> <option value="1052">Visual C# 2005 Express Edition</option> <option value="1051">Visual C++ 2005 Express Edition</option> <option value="541">Visual J# .NET</option> 	<option value="1053">Visual J# 2005 Express Edition</option> <option value="977">Visual SourceSafe 2005</option> <option value="443">Visual SourceSafe 6.0d</option> <option value="351">Visual Studio .NET 2003 Professional &#8211; Full Install</option> <option value="451">Visual Studio .NET Academic Student Tools 2003</option> <option value="452">Visual Studio .NET Academic Teaching Tools 2003</option> 	<option value="77">Visual Studio .NET Pro 2002 &#8211; ISO Image &#8211; CD1</option> <option value="78">Visual Studio .NET Pro 2002 &#8211; ISO Image &#8211; CD2</option> <option value="79">Visual Studio .NET Pro 2002 &#8211; ISO Image &#8211; CD3</option> <option value="80">Visual Studio .NET Pro 2002 &#8211; ISO Image &#8211; CD4</option> <option value="81">Visual Studio .NET Pro 2002 &#8211; ISO Image &#8211; CD5</option> <option value="76">Visual Studio .NET Professional 2002 (Full)</option> 	<option value="356">Visual Studio .NET Professional 2003 CD1 ISO</option> <option value="357">Visual Studio .NET Professional 2003 CD2 ISO</option> <option value="358">Visual Studio .NET Professional 2003 Prerequisites ISO</option> <option value="1409">Visual Studio 2005 Professional Edition &#8211; DVD (Italian)</option> <option value="964">Visual Studio 2005 Professional Edition Beta 2 DVD</option> <option value="973">Visual Studio 2005 Professional Edition CD1</option> 	<option value="974">Visual Studio 2005 Professional Edition CD2</option> <option value="975">Visual Studio 2005 Standard Edition CD1</option> <option value="976">Visual Studio 2005 Standard Edition CD2</option> <option value="1074">Visual Studio 2005 Team Foundation Server Trial Edition</option> <option value="1200">Visual Studio 2005 Team Suite &#8211; CD1</option> <option value="1201">Visual Studio 2005 Team Suite &#8211; CD2</option> 	<option value="1202">Visual Studio 2005 Team Suite &#8211; CD3</option> <option value="979">Visual Studio 2005 Tools for the Microsoft Office System</option> <option value="1446">Visual Studio 2008 Professional Edition (x86 and x64 WoW) &#8211; DVD</<br />
option> <option value="1033">Visual Web Developer 2005 Express Edition</option> <option value="1351">Windows Embedded CE 6.0 DVD</option> <option value="325">Windows Server 2003 Enterprise Edition</option> 	<option value="375">Windows Server 2003 Enterprise Edition &#8211; 64 Bit</option> <option value="1049">Windows Server 2003 R2 Enterprise Edition &#8211; Disc 1</option> <option value="1048">Windows Server 2003 R2 Enterprise Edition &#8211; Disc 2</option> <option value="1438">Windows Server 2003 R2 Enterprise Edition with SP2 &#8211; Disc 1 (Italian)</option> <option value="1444">Windows Server 2003 R2 Enterprise Edition with SP2 &#8211; Disc 2 (Italian)</option> <option value="1449">Windows Server 2003 R2 Enterprise x64 Edition with SP2 &#8211; Disc 1</option> 	<option value="1450">Windows Server 2003 R2 Enterprise x64 Edition with SP2 &#8211; Disc 2</option> <option value="1071">Windows Server 2003 R2 Standard Edition &#8211; Disc 1</option> <option value="1072">Windows Server 2003 R2 Standard Edition &#8211; Disc 2</option> <option value="377">Windows Server 2003 Standard Edition</option> <option value="1425">Windows Server 2003 Standard Edition with SP1</option> <option value="393">Windows Server 2003 Web Edition</option> 	<option value="540">Windows Services for UNIX 3.0</option> <option value="1352">Windows Vista Business 64bit DVD</option> <option value="1274">Windows Vista Business CD1</option> <option value="1319">Windows Vista Business CD1 (Italian)</option> <option value="1275">Windows Vista Business CD2</option> <option value="1320">Windows Vista Business CD2 (Italian)</option> 	<option value="1276">Windows Vista Business CD3</option> <option value="1325">Windows Vista Business CD3 (Italian)</option> <option value="1277">Windows Vista Business CD4</option> <option value="1321">Windows Vista Business CD4 (Italian)</option> <option value="1278">Windows Vista Business CD5</option> <option value="1285">Windows Vista Business DVD</option> 	<option value="1337">Windows Vista Business DVD (Italian)</option> <option value="124">Windows XP Embedded</option> <option value="72">Windows XP Professional (Single User)</option> <option value="959">Windows XP Professional (Single User) 64bit Edition</option> <option value="477">Windows XP Professional with SP1a (Single User) ISO Image</option> <option value="807">Windows XP Professional with SP2 (Single User) ISO Image</option> 	<option value="1429">Windows XP Professional with SP2 (Single User) ISO Image (Italian)</option> <option value="864">Windows XP Tablet PC Edition 2005, Disc 1</option> <option value="865">Windows XP Tablet PC Edition 2005, Disc 2</option> </select>
<p>La speranza di BigM sta proprio nel fatto che noi utilizziamo un software e poi non ne possiamo fare a meno in ambito lavorativo: loro ci provano, anche se credo che il tempo del software closed source sta per terminare.</p>
<blockquote><p>Universita degli Studi di Palermo</p>
<p>ELMS for MSDNAA Software Center: This message has been generated<br />
automatically from your ELMS. Please do not reply to this message<br />
as you will not receive a response. Please click on the SUPPORT<br />
link in your MSDNAA Online Software System for support contact<br />
information on your campus.</p>
<p>***** ***** ***** ***** ***** ***** ***** ***** ***** ***** *****</p>
<p>Hello,</p>
<p>Welcome! You have been registered in your university/college ELMS<br />
for MSDNAA online software system. Here you can download and<br />
access a wide range of Microsoft developer tools, servers, and<br />
platforms. There is no charge to download the software as long<br />
as you are an eligible user in the System.</p>
<p>How Does it Work?</p>
<p>Your university/college is licensed under the MSDN Academic<br />
Alliance Program which enables eligible students and faculty<br />
members to access software available under the Program. e-academy<br />
Inc., a partner of Microsoft, is providing ELMS for MSDNAA to you.<br />
Simply log into the System using your username and password<br />
included below and start browsing/ordering the software<br />
available to you.</p>
<p>Your MSDNAA Online Software System can be found at:<br />
http://msdn62.e-academy.com/udsp_fii</p>
<p>Your username is : XXXXXXXXXXXXXX@studenti.unipa.it<br />
Your password is : XXXXXXXXXXXXXX</p>
<p>Technical Support</p>
<p>If you have any technical difficulties while downloading the<br />
software, please go to the support section in the website and<br />
click on Request Customer Support. Technical support is<br />
provided by your MSDNAA Program Administrator at your school.</p>
<p>General Information</p>
<p>If you have general questions about the MSDNAA Program, who<br />
is eligible, general rules and regulations, etc., please go<br />
to the support section in the website for contact information.</p>
<p>Please keep this e-mail for future reference, as you will<br />
need your username and password in order access the online<br />
software system.</p>
<p>Remember, by accessing the Microsoft software through this<br />
system you are stating that you are authorized, and are<br />
agreeing to comply with all usage guidelines.</p>
<p>Sincerely,<br />
ELMS for MSDNAA Staff<br />
e-academy Inc.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/microsoft-teme-il-software-libero/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Musica e tecnologia</title>
		<link>http://www.bellinux.com/musica-e-tecnologia</link>
		<comments>http://www.bellinux.com/musica-e-tecnologia#comments</comments>
		<pubDate>Mon, 19 Mar 2007 20:52:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Musica]]></category>
		<category><![CDATA[Tecnologia]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=157</guid>
		<description><![CDATA[Tesina che presentai agli esami di maturità; riguarda la musica e la tecnologia.
Introduzione

I legami tra musica e tecnologia ultimamente si sono stretti moltissimo; dal musicista professionista che può avere un&#8217;anteprima della propria composizione scrivendo semplicemente note su un pentagramma virtuale, al dilettante che può divertirsi con effetti particolari, suoni &#8220;strambi&#8221;, e quant&#8217;altro la tecnologia mette [...]]]></description>
			<content:encoded><![CDATA[<p>Tesina che presentai agli esami di maturità; riguarda la musica e la tecnologia.</p>
<h4>Introduzione</h4>
<div class="column1-unit">
<p>I legami tra musica e tecnologia ultimamente si sono stretti moltissimo; dal musicista professionista che può avere un&#8217;anteprima della propria composizione scrivendo semplicemente note su un pentagramma virtuale, al dilettante che può divertirsi con effetti particolari, suoni &#8220;strambi&#8221;, e quant&#8217;altro la tecnologia mette a disposizione e comunque permette di fare.</p>
<p>Le varie parti che andremo ad analizzare sono:</p>
<p>Midi</p>
<p>Strumenti virtuali</p>
<p>Campionamento audio</p>
<p>DSP</p>
<p>Amplificatori</p>
<p>Elaborazione digitale del suono</p>
<p>Audio posizionale</p>
<p>Casse acustiche</p>
<p>Schede audio</p>
<p>Archiviazione musica in rete</p>
<p>Software musicale</p>
<p>Andremo ad analizzare e a fare prove realmente, sul &#8220;campo&#8221;oltre a dare nozioni teoriche su quanto detto.</p></div>
<h4>MIDI</h4>
<div class="column1-unit">
<p>Il MIDI è lo standard per la notazione musicale; Esso è un formato così strutturato: ogni strumento MIDI ha in se campioni di vari strumenti (pianoforte, clarinetto, violino) e ha 16 canali, ciò vuol dire che può suonare fino a 16 strumenti contemporaneamente; un file MIDI è quindi così strutturato (logicamente): per ogni canale è selezionato uno strumento e sempre per ogni canale viene stabilita la successione di note che deve essere suonata (e ovviamente anche il tempo che intercorre tra una nota e l&#8217;altra).</p>
<p>Per chiarire questo concetto vedi l&#8217;immagine sottostante:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/midi.png" border="0" alt="" /></p>
<p>Per ogni canale c&#8217;è una successione di note e la durata di ogni nota che, musicalmente parlando, sarebbe la figura (semibreve, minima, semiminima, ecc&#8230;); se dessimo &#8220;in pasto&#8221; questa successione di note ad un player MIDI verrebbero suonati pianoforte, viola e clarinetto con le note e le durata delle note &#8220;descrite&#8221;!</p>
<p>Ovviamente il tutto è stato esemplificato; non sono state considerate pause e la possibilità che uno strumento suoni più note contemporaneamente (es. il pianoforte).</p>
<p>Se si ci pensa bene, questo è il modo migliore per un musicista per far suonare una successione di note con tempi stabiliti (durata) a vari strumenti; un musicista legge un pentagramma allo stesso modo: l&#8217;altezza delle note è stabilita dalla posizione sul rigo musicale, la distanza tra le note è stabilita dalla figura di ogni nota. Pentagramma e MIDI sono quindi assimilabili perfettamente!</p>
<p>DSP</p>
<p>Vediamo un esempio:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/pentagramma-sequencer.PNG" border="0" alt="" /></p>
<p>Gli strumenti MIDI possono essere reali e virtuali; per conoscere quali porte MIDI sono attive nel nostro computer (S.O. Windows XP) andiamo su: Start -&gt; Impostazioni -&gt; Pannello di controllo -&gt; Suoni e periferiche audio -&gt; Audio</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/periferichemidi.jpg" border="0" alt="" /></p>
<p>Le porte disponibili sono contenute nella finestra scorrevole aperta in figura, le prime due sono virtuali e fanno riferimento a strumenti virtuali, la terza e reale e fa riferimento a uno strumento reale.</p>
<p>È necessario chiarire la differenza tra porta MIDI e strumento MIDI: la porta è un interfaccia alla quale collegare uno strumento MIDI, dalla porta passano tutte le informazioni sui canali, gli strumenti assegnati ai canali stessi, il volume di ogni canale, il volume di ogni nota, il bilanciamento tra il diffusore destro e il diffusore sinistro (lo standard MIDI è stereofonico) e tutto quanto necessario per una corretta riproduzione della musica; lo strumento interpreta tutte queste informazioni e suona a seconda di queste informazioni.</p>
<p>La differenza tra strumento virtuale e strumento reale sta invece nella fisicità dello strumento stesso! Uno strumento virtuale ha uno o più File di campioni musicale (pianoforte, clarinetto, sax, ecc) e a seconda dello strumento apre il campione relativo e lo fa &#8220;suonare&#8221; (su questo approfondiremo nella parte relativa al campionamento di strumenti). Il tutto viene fatto sul computer stesso senza hardware esterno, virtualmente; Uno strumento reale invece è generalmente una tastiera elettronica, la quale ha nella propria memoria i campioni dei vari strumenti e li fa suonare opportunamente a seconda delle informazioni che gli vengono passate tramite il cavo MIDI collegato alla porta MIDI fisica relativa.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/tastiera.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/miditastiera.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/midischeda.jpg" border="0" alt="" /></p>
<p>Adesso passiamo alla creazione di un file MIDI con del software musicale.</p>
<p>Scegliamo gli strumenti (Pianoforte e Chitarra classica):</p>
<p>Scegliamo il tempo:</p>
<p>Abbiamo il nostro pentagramma:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/pentagramma.jpg" border="0" alt="" /></p>
<p>Facciamo la nostra composizione:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/pentagrammafatto.jpg" border="0" alt=""" /></p>
<p>Salviamola come MIDI:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/salva.PNG" border="0" alt="" /></p>
<p>Così abbiamo creato un file MIDI che suonerà gli strumenti e le specifiche sulla durata e sull&#8217;altezza di ogni nota da noi indicata.</p></div>
<h4>Campionamento audio</h4>
<p>Adesso è importante capire come avviene il campionamento di ogni strumento; generalmente la qualità di un file MIDI è assolutamente mediocre e di scarso livello per una serie di motivi: oltre al fatto che il &#8220;tocco&#8221; del musicista è difficilmente emulabile da un computer, la qualità dei campioni offerti dagli strumenti virtuali non è buona: perché?</p>
<p>Per capirne i motivi è necessario citare Fourier: Qualsiasi segnale (periodico) può essere scomposto in infinite armoniche di ampiezza tendente a 0.</p>
<p>Prendiamo ad esempio il campionamento di un Pianoforte.</p>
<p>L&#8217;armonica fondamentale stabilisce l&#8217;altezza della nota (es. La = 440 Hz).</p>
<p>Le armoniche successive stabiliscono il timbro dello strumento (il timbro ci permette di differenziare ad esempio il pianoforte da un sax!). Quindi più armoniche ci sono, più il timbro del pianoforte campionato assomiglierà a quello dello strumento reale.</p>
<p>Per una qualità assimilabile a quella dello strumento reale è necessario acquisire le armoniche fino a 20 khz cioè la frequenza udibile dall&#8217;orecchio.</p>
<p>Considerato che il timbro varia (anche se di poco) anche passando da una nota all&#8217;altra (considerando sempre lo stesso strumento) è necessario acquisire il suono di ogni singola nota e tornando al caso del pianoforte che di note ne ha 88, è necessario acquisire ogni nota a 20 khz;</p>
<p>Considerando oltre tutto che la frequenza di campionamento deve essere almeno il doppio di quella del segnale (teorema di shannon), la frequenza di campionamento passa a 44.100 hz (standard in mondo informatico, qualità CD).</p>
<p>Campionando quindi ogni nota del pianoforte a 44khz a 16 bit (2byte) e considerato che ogni nota ha anche una certa durata (es. 10 secondi) (dal momento in cui si pressa il tasto a quando il suono diventa irrilevante) lo spazio necessario per campionare un pianoforte sarebbe esageratamente spropositato:</p>
<p>44.100 (frequenza di campionamento) * 2 (16bit=2byte) * 10 (secondi per ogni nota) = 882000 byte</p>
<p>Considerato quindi 900 kbyte per ogni nota: 900 * 88 (numero tasti) = 79200 kbyte.</p>
<p>Per campionare un solo pianoforte quindi sono necessari 80 megabyte! E non abbiamo considerato i vari tocchi dei tasti di un pianista, pianissimo, piano, medio piano, medio forte, forte, fortissimo; se dovessimo campionare anche il tocco del pianista (sono necessari 80 megabyte per 6 tipologie di tocchi differenti) 480 mb! E questo lo dovremmo fare per tutti gli strumenti, violino, sax, basso, viola, ci vorrebbero hard disk interi!</p>
<p>Allora i campioni degli strumenti MIDI standard sono presi in modo strategico: visto che il timbro di uno stesso strumento tra una nota e l&#8217;altra varia di poco, vengono prese le caratteristiche timbriche fondamentali di un singolo strumento (senza prendere tutte le armoniche ma solo una parte molto limitata di essa). Poi queste &#8220;caratteristiche&#8221; vengono estese a tutta l&#8217;estensione dello strumento variando la frequenza dell&#8217;armonica fondamentale. Fatto questo si ha lo strumento campionato in pochi kilobyte e quindi con una qualità timbrica al limite del ridicolo!</p>
<p>Un musicista non si accontenta di questo standard di qualità.</p>
<p>Ci sono infatti degli strumenti MIDI virtuali che permettono di utilizzare campioni esterni; ritornando al pianoforte, esistono campioni da oltre 1.7 gigabyte!</p>
<p>ERRATA CORRIGE</p>
<p>Errata</p>
<p>Allora i campioni degli strumenti MIDI standard sono presi in modo strategico: visto che il timbro di uno stesso strumento tra una nota e l&#8217;altra varia di poco, vengono prese le caratteristiche timbriche fondamentali di un singolo strumento (senza prendere tutte le armoniche ma solo una parte molto limitata di essa). Poi queste &#8220;caratteristiche&#8221; vengono estese a tutta l&#8217;estensione dello strumento variando la frequenza dell&#8217;armonica fondamentale. Fatto questo si ha lo strumento campionato in pochi kilobyte e quindi con una qualità timbrica al limite del ridicolo!</p>
<p>Corrige</p>
<p>In realta gli strumenti MIDI standard sono SINTETIZZATI, cioè fondamentale e armoniche sono il risultato di funzioni matematiche che generano onde (sonore).</p>
<h4>Strumenti virtuali</h4>
<p>Per far suonare uno strumento campionato la metodologia è sempre la stessa, come per gli strumenti reali.</p>
<p>Si fa in modo che il software di notazione musicale mandi i segnali MIDI ad una porta virtuale, successivamente si &#8220;collega&#8221; a questa porta virtuale lo strumento virtuale dopo che gli si carica il campione.</p>
<p>Si impone al software di notazione di utilizzare la porta MIDI dedicata (LoopBe Internal MIDI):</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/devicemidi.PNG" border="0" alt="" /></p>
<p>Si carica nello strumento virtuale il campione che si vuole fare suonare (pianoforte):</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/caricamentowav.PNG" border="0" alt="" /></p>
<p>Si collega lo strumento virtuale alla porta MIDI:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/inputvirtuale.PNG" border="0" alt="" /></p>
<p>Il rigo del pianoforte invierà le informazioni MIDI tramite il canale 1:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/canalemidi.PNG" border="0" alt="" /></p>
<p>Lo strumento virtuale, che ha precedentemente caricato il pianoforte lo suonerà rispetto le informazioni MIDI che gli arrivano dal canale 1</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/canalecampionatore.PNG" border="0" alt="" /></p>
<p>D&#8217;ora in poi, quando lo il software di notazione musicale &#8220;suona&#8221; il pianoforte, invia le informazioni tramite la porta interna LoopBe Internal MIDI al canale 1 e lo strumento musicale che è anch&#8217;esso collegato a questa porta riceve dal canale 1 le istruzioni sulle note da suonare e le esegue tramite i campioni precedentemente caricati (quindi di alta qualità) di pianoforte.</p>
<p>Uno strumento virtuale può caricare altri campioni su altri canali, e quindi possibile far suonare contemporaneamente più strumenti su più canali; volendo aggiungere un violino basta comandare al software di notazione di far suonale il violino tramite il canale 2, poi comandare allo strumento virtuale, dopo aver caricato il violino, di farlo suonare seguendo le istruzioni MIDI che gli arrivano dal canale 2.</p>
<p>Tutto questo fino a 16 strumenti.</p>
<p>Proviamo noi a campionare una ottava di un pianoforte acustico:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/piano1.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/piano2.jpg" border="0" alt="" /></p>
<p>Registriamo tramite un microfono ogni nota dell&#8217;ottava in formato Wave Mono a 44100hz e 16 Bit:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/softwave.png" border="0" alt="" /></p>
<p>Il tocco sarà unico per semplicità: Medio Forte</p>
<p>Avviamo la registrazione e suoniamo sempre con lo stesso tocco la prima nota (Do Centrale), ci manteniamo sulla stessa nota finche il suono si attenua a irrilevanti (durata della registrazione di ogni nota); facciamo questo per tutte le note fino al Do successivo.</p>
<p>Ottava di riferimento:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/ottava.jpg" border="0" alt="" /></p>
<p>Abbiamo ottenuto così i file wave contenenti i campioni di tutte le note.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/campione.JPG" border="0" alt="" /></p>
<p>La registrazione è stata effettuata con componenti hardware di qualità: microfono (veramente può esserci di meglio) e scheda audio di buona qualità servendoci di un computer; effettivamente però le registrazioni sono state effettuate in orari &#8220;di punta&#8221; e anche se non si avvertono le registrazioni sono state inquinate, anche solo minimamente, da rumori indesiderati (quali automobili, motori, voci e persino uccellini!).</p>
<p>Adesso passiamo alla creazione dello strumento:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/assiciazione.JPG" border="0" alt="" /></p>
<p>Assegniamo il campione di ogni nota alla tastiera virtuale fino a completare l&#8217;ottava presa in considerazione; quando si suonerà un tasto di quella ottava suonerà il campione wave relativo pre-registrato. Quindi è proprio come se suonasse lo strumento vero!</p>
<p>Facciamo un semplice MIDI con una serie di note dell&#8217;ottava presa in considerazione e lo facciamo eseguire dal nostro pianoforte virtuale e dagli strumenti MIDI standard della scheda audio; notiamo le differenze dal punto di vista qualitativo:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/pentagrammademo.jpg" border="0" alt="" /></p>
<p>Differenza tra il MIDI standard e il pianoforte campionato:</p>
<p>[Non online]</p>
<p>Campioni di tutte le note:</p>
<p>[Non online]</p>
<h4>DSP</h4>
<p>Passiamo ad analizzare in dettaglio il DSP:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/funzionidsp.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/screendsp.jpg" border="0" alt="" /></p>
<p>Il principio di funzionamento è sempre relativo a Fourier ogni segnale audio è formato da più armoniche. Il DSP è in grado di modificare l&#8217;andamento delle armoniche che si vuole, a piacimento e quindi modifica il suono.</p>
<p>Ad esempio aumentando l&#8217;ampiezza delle armoniche di frequenza compresa tra i 3 khz e i 20 khz avremo un suono più ricco agli alti; aumentando l&#8217;ampiezza delle armoniche di frequenza compresa fra 16hz e i 130 hz avremo un suono più ricco ai bassi; è possibile effettuare tutte le varianti che si vuole.</p>
<p>È poi possibile aumentare il riverbero, modificare la dinamica (compressione ed estensione del suono), tutte cose che analizzeremo dal punto di vista pratico.</p>
<p>Attraverso la combinazione di tutti questi elementi oltre a poter simulare qualsiasi condizione ambientale si può migliorare la resa alle varie frequenze migliorando la musica (ad esempio se ci sono troppi bassi li attenuiamo!).</p>
<p>Facciamo alcune prove pratiche e vediamo (o meglio sentiamo!) in dettaglio cosa ci permette di fare.</p>
<p>Abbiamo un file Wave di un di un pezzo musicale:</p>
<p>[Non online]</p>
<p>Sentiamo le differenze con le diverse tarature:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp1.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp2.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp3.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp4.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp5.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/dsp6.jpg" border="0" alt="" /></p>
<p>[Non online]</p>
<p>Le varie combinazione tra le diverse tarature di tutti gli strumenti di modifica del suono ci permettono di avere innumerevoli effetti.</p>
<h4>Amplificatori</h4>
<p>L&#8217;amplificatore deve essere in grado di amplificare tutte le frequenze delle armoniche che compongono il segnale audio in modo equo, senza attenuare certe frequenze; le casse acustiche devono essere in grado di riprodurre il segnale fedelmente a tutte le frequenze udibili dall&#8217;orecchio senza tagli di nessuna frequenza.</p>
<p>La risposta in frequenza di entrambi non deve avere quindi attenuazioni significative nel campo di frequenze udibili dall&#8217;orecchio.</p>
<p>Analizziamo e spieghiamo alcuni parametri per un&#8217;amplificatore:</p>
<p>Prendiamo ad esempio l&#8217;amplificatore &#8220;principale&#8221; usato per i diffusori anteriori.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/amplificatore.jpg" border="0" alt="" /></p>
<p>Questo è un possibile diagramma di bode dell&#8217;amplificatore: dal manuale d&#8217;uso: da 10 Hz a 50 kHz +0 dB ; -3 dB</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/bodeamp.gif" border="0" alt=""" /></p>
<p>La massima attenuazione da 10 Hz a 50 kHz è di -3 dB; sempre dal manuale d&#8217;uso vediamo che la massima amplificazione avviene ad 1 kHz: in RMS 95W + 95W a 1 kHz e con una distorsione totale del 5% (per avere una distorsione inferiore allo 0,5% bisogna utilizzare l&#8217;amplificatore a 80W + 80W RMS).</p>
<p>La potenza RMS indica la vera potenza dell&#8217;amplificatore; il suo valore massimo è imposto dal calore massimo che l&#8217;amplificatore può dissipare mentre funziona e dalla tensione massima delle alimentazioni.</p>
<p>Ogni canale dell&#8217;amplificatore è quindi in grado di amplificare con una potenza di 80W con una distorsione bassissima ed impercettibile; e soprattutto con un attenuazione nelle frequenze udibili dall&#8217;orecchio (20 Hz &#8211; 20 kHz) rispetto il valore massimo di amplificazione (1 kHz) irrilevante.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/amplificatore2.jpg" border="0" alt="" /></p>
<h4>Audio posizionale</h4>
<p>Un buon impianto deve avere una caratteristica fondamentale: deve riprodurre il suono in modo fedelmente alla registrazione originale. In impianti audio &#8220;normali&#8221; non è possibile però creare una situazione nella quale è possibile percepire la posizione dello strumento dello spazio; ad esempio avendo un pianoforte, un basso, una batteria e un sax essi si trovano in punti differenti nello spazio (ad esempio ai 4 angoli di una stanza) e la registrazione del suono anche se di qualità non permette di &#8220;riprodurre&#8221; la posizione dello strumento perché il suono esce al massimo da due altoparlanti (ad esempio basso e batteria nel canale destro e pianoforte e sax nel canale sinistro).</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/stereo.gif" border="0" alt="" /></p>
<p>Come fare allora per avere la sensazione di percepire gli strumenti in parti di spazio differenti?</p>
<p>Avendo 4 canali indipendenti è possibile! Supponendo che ogni canale (altoparlante) sia in un angolo della stanza è possibile far riprodurre ogni strumento ad ogni singolo altoparlante ed è quindi possibile avere la sensazione di percepire la provenienza del suono di ogni singolo strumento.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/quattro.gif" border="0" alt="" /></p>
<p>Poi, variando il volume di ogni strumento per singolo canale (ogni canale può avere un volume differente per lo stesso strumento) è possibile simulare la posizione precisa dello strumento nella stanza.</p>
<p>Esistono software musicali che permettono di spostare uno strumento dove si vuole nello spazio secondo questo principio.</p>
<p>È quindi possibile muovere ogni strumento nello spazio con il mouse spostando (in un quadrato virtuale che rappresenta la stanza) un pallino relativo ad ogni strumento.</p>
<p>Nell&#8217;impianto visto la scheda audio ha 6 uscite indipendenti (ma ne sono utilizzate 4) e il suono viene amplificato dai due amplificatori (stereo) quindi con 4 canali amplificati indipendenti (quando c&#8217;è la reale necessita di avere i 4 canali indipendenti, altrimenti vengono utilizzate due uscite della scheda audio collegate in parallelo ai due amplificatori (stereofonia standard anche se su 4 casse).</p>
<h4>Casse acustiche</h4>
<p>Analizziamo e spieghiamo alcuni parametri per i diffusori acustici:</p>
<p>Essi hanno il ruolo più importante nel determinare la qualità del suono; il suono &#8220;esce&#8221; proprio da essi ed è importante che i diffusori siano in grado di riprodurre perfettamente il segnale proveniente dall&#8217;amplificatore.</p>
<p>Ci sono delle considerazione da fare; il diffusore è un &#8220;sistema&#8221; più o meno complesso di riproduzione del suono, in esso vi sono vari componenti:</p>
<p>Altoparlanti (in alcuni casi 3, ma generalmente 2), crossover, cassa in legno.</p>
<p>Il crossover effettua una suddivisione delle frequenze per far arrivare ai singoli altoparlanti solo l&#8217;arco di frequenze che è in grado di &#8220;far suonare&#8221; meglio.</p>
<p>Gli altoparlanti invece generalmente sono due: uno di grosse dimensioni (woofer) e uno di dimensioni più piccole (tweeter), il primo ha il compito di riprodurre le basse frequenze, il secondo di riprodurre le alte frequenze. In alcune casse acustiche è anche presente il midtweeter in grado di riprodurre &#8220;meglio&#8221; le frequenze intermedie fra woofer e tweeter.</p>
<p>La cassa in legno è lo scheletro del diffusore ed è molto importante; nei sistemi di alta fedeltà gli altoparlanti vengono messi nella cassa e vengono sigillati in essa, questo per riprodurre un tipo di suono molto frenato e pulito infatti l&#8217;escursione degli altoparlanti è limitata dal fatto che sono sigillati. Questo sistema viene definito a sospensione pneumatica.</p>
<p>Esistono altri sistemi ma non posso analizzarli nel concreto (non avendone la disponibilità).</p>
<p>Prendiamo ad esempio le due casse anteriori collegati all&#8217;amplificatore &#8220;principale&#8221;.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/cassacoperta.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/cassascoperta.jpg" border="0" alt="" /></p>
<p>Gli altoparlanti in questo caso sono 3, un woofer, un midtweeter ed un tweeter. È di tipo a sospensione pneumatica e all&#8217;interno c&#8217;è un crossover che spartisce le frequenze ai 3 altoparlanti.</p>
<p>Il crossover non è altro che una serie di filtri passa banda: si stabilisce quali frequenze un altoparlante è in grado di esprimere al meglio e prima di ogni singolo altoparlante viene messo un filtro passa banda che fa &#8220;passare&#8221; le frequenze che l&#8217;altoparlante è in grado di esprimere al meglio. È normale che non ci debbano essere frequenze che rimangano fuori (anche solo minimamente) nel passaggio da un campo di frequenze all&#8217;altro (per capire meglio si veda sotto):</p>
<p>(Nel manuale d&#8217;uso vediamo che il campo di frequenza che i diffusori sono in grado di emettere è compreso fra 20 Hz e 30 kHz.)</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/bodecassa.png" border="0" alt=""/></p>
<p>Ecco come tra il campo di frequenze del Woofer e quello del MidTweeter le frequenze non vengono attenuate (stessa cosa tra MidTweeter e Tweeter): i punti di transizione tra le bande dei vari altoparlanti sono &#8220;accavallati&#8221; in modo da non perdere nessuna frequenza &#8220;intermedia&#8221; tra le bande;</p>
<p>Poi nelle casse acustiche è espressa anche una potenza: essa è relativa alla potenza in grado di esprimere prima della rottura; le casse in questione sono in grado di esprimere 95W x 95W in RMS e quindi si sposano perfettamente con l&#8217;amplificatore al quale sono collegate.</p>
<p><img src="http://www.bellinux.com/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/cassacoperta2.jpg" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/cassascoperta2.jpg" border="0" alt="" /></p>
<p>Esempio di diffusore a due altoparlanti</p>
<h4>Acquisizione e riproduzione</h4>
<p>Adesso analizziamo in dettaglio come avviene l&#8217;acquisizione e la riproduzione di un suono.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/percorso.png" border="0" alt=""" /></p>
<p>Microfono: è fatto da una membrana che vibrando genera un segnale elettrico.</p>
<p>Amplificazione e condizionamento: il segnale proveniente dal microfono viene amplificato dalla scheda audio.</p>
<p>Filtro Anti-aliasing: vengono filtrate con un passa basso le componenti spettrali che superano i calore di campionamento.</p>
<p>Simple &amp; Hold: il segnale viene bloccato per effettuare la conversione (se il segnale variasse durante la conversione il valore convertito non sarebbe quello reale).</p>
<p>Convertitore A/D: effettua la conversione da analogico a digitale.</p>
<p>Software musicale: una volta digitalizzato il segnale viene elaborato tramite software musicale.</p>
<p>DSP: Il segnale viene rielaborato al DSP (se è necessario) ad esempio per simulare certe condizioni ambientali.</p>
<p>Convertitore D/A: dopo l&#8217;elaborazione nel DSP è contenuto un convertitore digitale analogico</p>
<p>Smoothing Filther: Il segnale ha i gradini tipici della conversione digitale analogico, quindi viene fatto passare da un filtro in grado di smussare i gradini.</p>
<p>Amplificazione: una volta che il segnale è diventato analogico viene amplificato con un amplificatore di potenza per poi passare ai diffusori.</p>
<p>Diffusori: ci permettono di sentire un suono; il segnale proveniente dall&#8217;amplificatore fa vibrare la membrana di cui sono fatti i diffusori e il suono si propaga nell&#8217;ambiente (funzionamento inverso del microfono).</p>
<p>Effettuiamo adesso una registrazione di un suono e la riproduzione seguendo lo schema precedente.</p>
<p>Andiamo al pianoforte e dopo aver preparato l&#8217;impianto di registrazione formato da computer, scheda audio e microfono, avviamo la registrazione, suoniamo il pezzo e interrompiamo la registrazione.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/piano3.jpg" border="0" alt="" /></p>
<p>Abbiamo quindi il nostro file audio in formato Wave Mono a 44.100 hz e 16 bit.</p>
<p>[Non online]</p>
<p>Modifichiamo l&#8217;audio tramite software musicale; ad esempio eliminiamo eventuali rumori di fondo e facciamo suonare il brano al contrario, vediamo cosa esce fuori!</p>
<p>[Non online]</p>
<p>Riproducendo l&#8217;audio lo facciamo rielaborare dal DSP aumentando la dinamica del suono (riverbero) per simulare un grande ambiente con molto riverbero.</p>
<p>[Non online]</p>
<p>Amplifichiamo il suono con i due amplificatori collegati in parallelo (uno per i due canali anteriori, l&#8217;altro per i due canali posteriori); così il suono esce dai 4 diffusori con le modifiche da noi effettuate.</p>
<p>Il &#8220;percorso&#8221; dell&#8217;audio sarà quindi:</p>
<p>Percorso &gt; Tipo segnale</p>
<p>Microfono &gt; Analogico</p>
<p>Scheda audio &gt; Analogico (conversione A/D)</p>
<p>Computer (elaborazione) &gt; Digitale</p>
<p>Scheda audio &gt; Digitale (collegamento ottico al DSP)</p>
<p>DSP &gt; Digitale (conversione D/A)</p>
<p>Amplificatori &gt; Analogico</p>
<p>Diffusori &gt; Analogico</p>
<p>Analizziamo in dettaglio la scheda audio.</p>
<p>Una scheda audio può avere ingressi, uscite e una porta MIDI fisica.</p>
<p><img src="http://www.bellinux.com/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/scheda.jpg" border="0" alt="" /></p>
<p>Iniziamo con le uscite: generalmente le uscite sono 2, ma ci possono essere fino a 6 uscite indipendenti; la scheda audio presente nell&#8217;impianto visto fino ad ora possiede 6 uscite, ma ne sono utilizzate 4; ci sono nel concreto 4 canali indipendenti, quindi con 4 diffusori e due amplificatori (stereo). Poi nella scheda audio in questione è prevista anche l&#8217;uscita digitale ottica (per il collegamento ad un amplificatore con entrata ottica) nel nostro caso collegata direttamente al DSP. Questa uscita è priva di alcun disturbo, anche amplificando a vuoto, al massimo dei due amplificatori i rumori di fondo sono quasi nulli; con le uscite analogiche invece è presente un leggero rumore di fondo, che è comunque costante e poco rilevante.</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/scheda1.jpg" border="0" alt="" /></p>
<p>Gli ingressi generalmente sono anche 2, uno per il microfono e un altro stereo; la scheda audio in questione ne possiede vari analogici (microfono, due ingressi stereo) e uno digitale, che può essere collegato al DSP in maniera ottica. Come per gli ingressi in questo caso i disturbi sono praticamente nulli; se dal lettore cd collegato anch&#8217;esso otticamente al DSP viene registrato un brano sul PC tramite l&#8217;ingresso ottico della scheda audio, dato che con c&#8217;è conversione D/A e A/D non c&#8217;è nessuna perdita d&#8217;informazione e non si &#8220;inserisce&#8221; nessun disturbo. Per gli ingressi analogici invece è possibile qualche rumore di fondo, ma comunque ridotto davvero al minimo (data la qualità complessiva della scheda).</p>
<p>In questo modello è anche presente un ingresso con preamplificatore Phono per digitalizzare vecchi dischi in vinile. Il lettore di dischi infatti manda un segnale di bassissima intensità che va quindi pre-amplificato prima di essere registrato.</p>
<p>Sia in registrazione che in riproduzione è possibile variare la frequenza di campionamento e i bit di campionamento fino a 96 khz a 24 bit; questi parametri non verranno però mai utilizzati.</p>
<p>La porta MIDI è stata descritta prima abbondantemente.</p>
<h4>Software musicale</h4>
<p>Il Software Musicale è un argomento già affrontato indirettamente nella parte precedente; facciamo un piccolo riassunto e classifichiamoli in alcune tipologie.</p>
<p>In genere esistono tre tipologie: software orientate all&#8217;editing MIDI, software orientate editing AUDIO, software orientate al Sequencing (audio e midi).</p>
<p>I software orientati al MIDI permettono di scrivere tracce MIDI sottoforma di note, generalmente vengono chiamati anche software di notazione musicale.</p>
<p>I software orientati all&#8217;AUDIO permettono di editare il suono (non inteso come nota ma così per com&#8217;è, anche un battito di mani!), aggiungere affetti, tagliare parti, eliminare rumori di fondo e varie.</p>
<p>I software orientati al Sequencing permettono di realizzare di un brano audio completo: permettono di unire tracce MIDI e tracce AUDIO per la realizzazione finale del file audio del brano completo; vengono chiamati di sequencing perché permettono di mettere, come dice la parola stessa, in &#8220;sequenza&#8221; più tracce che possono essere AUDIO, MIDI, EFFETTI per la produzione del brano finito (generalmente comprendono strumenti dedicati al MIDI e strumenti dedicati all&#8217;AUDIO e sono complessi).</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/sequencer.png" border="0" alt="" /></p>
<h4>Archiviazione musica in rete</h4>
<p>Quando si ha a che fare con molte composizioni musicali, bisogna trovare il modo di organizzarle; lo spazio è un elemento fondamentale, varie ore di musica in alta qualità possono occupare davvero tanto; il portatile con il quale lavoro non dispone di spazio a sufficienza per tutta la musica che produco, il PC Desktop collegato in rete (insieme al portatile) invece dispone di due dischi da 80Gb, e una simile capacità di memorizzazione, fa di certo comodo.</p>
<p><img src="http://www.bellinux.com/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/client-server.JPG" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/switch.jpg" border="0" alt="" /></p>
<p>Ho quindi progettato un sistema di archiviazione dei progetti fruibile tramite browser.</p>
<p>Ecco un modello:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/modello.gif" border="0" alt=""  /></p>
<p>I lavori, musicalmente parlando, li faccio sul portatile in quanto dispone di una potenza di calcolo di molto superiore a quella del PC Desktop; appena finito il lavoro lo archivio sul PC Desktop tramite lo Switch di rete con velocità di 100 MBit/s.</p>
<p>Ecco come è configurato il PC Desktop:</p>
<p>[Hardware]</p>
<p>Processore: AMD Athlon 800Mhz</p>
<p>Ram: 256 MB SDRAM</p>
<p>Scheda video: Nvidia TNT 2</p>
<p>Disco fisso: 2 x 80 GB Maxtor</p>
<p>Scheda madre: ASUS A7PRO</p>
<p>Scheda di rete: 10/100 MBit</p>
<p>Lettore floppy</p>
<p>Scheda audio, tastiera e mouse assenti.</p>
<p>[Software]</p>
<p>Linux</p>
<p>Driver necessari</p>
<p>Server web Apache</p>
<p>PHP</p>
<p>MySQl</p>
<p>Il funzionamento in linea pratica è il seguente:</p>
<p>Dal portatile si accede tramite browser al PC Desktop digitandone l&#8217;indirizzo IP (nello specifico: 192.168.8.18), si accede al servizio offerto dal PC Desktop: arrivati a questo punto si sceglie l&#8217;operazione da effettuare (archiviazione di un nuovo file, download di un file già esistente e cancellazione di un file/progetto archiviato).</p>
<p>Archiviazione di un nuovo file:</p>
<p>1. se il file fa parte di un nuovo progetto viene chiesto di compilare un Form con tutti i dati del nuovo progetto per la creazione del progetto stesso;</p>
<p>2. si specifica il progetto al quale aggiungere il file zippato;</p>
<p>Nel caso il file vada aggiunto ad un progetto già esistente si parte dal punto 2.</p>
<p>Senza alcun problema è possibile creare un nuovo progetto senza che in esso vi sia alcun file.</p>
<p>Download di un file esistente:</p>
<p>Viene chiesto il nome del progetto da cui effettuare il download di uno specifico file; è stato previsto anche lo scorrimento di tutti i progetti esistenti ed i relativi file appartenenti ad ogni progetto (si era già intuito che un singolo progetto può essere composto da più file).</p>
<p>Cancellazione di un file/progetto archiviato:</p>
<p>Non è possibile per ragioni di sicurezza cancellare un progetto se ad esso sono associati dei file; prima è necessario cancellare tutti i file appartenenti al progetto che si vuole cancellare e successivamente è possibile cancellare il progetto stesso.</p>
<p>Se si sceglie di cancellare dei file da un progetto il sistema chiede il nome del progetto (è sempre possibile scorrere tutti i progetti esistenti ad esempio nel caso non si ricordi il nome del progetto); una volta dato il nome del progetto il sistema visualizza un elenco di tutti i file e da la possibilità di selezionare il file che si vuole cancellare. Dato l�OK il sistema provvede alla cancellazione del file selezionato.</p>
<p>Nel caso si voglia cancellare un progetto viene chiesto sempre il nome del progetto (ma è sempre possibile scorrersi tutti i progetti esistenti come negli altri casi) e dato l�OK il sistema provvede alla cancellazione del progetto; come già detto al progetto non deve essere associato alcun file (in caso contrario il sistema da errore)!</p>
<p>Passiamo alla progettazione del database:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/relazionidb0.gif" border="0" alt="" /></p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/relazionidb.gif" border="0" alt="" /></p>
<p>Le entità sono:</p>
<p>1. Progetto: tutte le specifiche per i progetti</p>
<p>2. File: tutte le specifiche per i file</p>
<p>3. Genere: tutti i generi musicali</p>
<p>Nello specifico l&#8217;entità Progetto contiene i seguenti attributi:</p>
<p>1. idProgetto: identifica univocamente un progetto (Primary Key); integer, 2 byte</p>
<p>2. Nome: nome che gli si da al progetto; string, 20 byte</p>
<p>3. idGenere: identificativo del genere musicale; integer, 2 byte</p>
<p>4. Descrizione: descrizione del progetto; string, 100 byte</p>
<p>Nello specifico l&#8217;entità File contiene i seguenti attributi:</p>
<p>1. idFile: identifica univocamente un file (Primari Key); integer, 2 byte</p>
<p>2. idProgetto: specifica l&#8217;identificativo del progetto al quale appartiene il file; integer, 2 byte</p>
<p>3. Descrizione: descrizione del file specifico; string, 100 byte</p>
<p>4. Link: contiene il collegamento al file per il download; string, 100 byte</p>
<p>Nello specifico l&#8217;entità Genere contiene i seguenti attributi:</p>
<p>1. idGenere: identifica univocamente il genere musicale (Primary Key); integer, 2 byte</p>
<p>2. Genere: nome del genere musicale; string, 10 byte</p>
<p>REALIZZAZIONE</p>
<p>Ecco un elenco di tutti i file che fanno parte del progetto:</p>
<p><img src="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/images/struttura.gif" border="0" alt="" /></p>
<p>La cartella files contiene tutti i file eventualmente caricati.</p>
<p>Vediamo invece i file:</p>
<p>I file sono disponibili per la visualizzazione in area Download. E&#8217; disponibile anche tutto il progetto in *.zip!</p>
<h4>Download</h4>
<table border="0">
<tbody>
<tr>
<th class="top" scope="col">Nome</th>
<th class="top" scope="col">Dimensione</th>
<th class="top" scope="col"></th>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/accdb.txt">accdb.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/aggiungi_file_a_progetto.txt">aggiungi_file_a_progetto.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/aggiungifile2.txt">aggiungifile2.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/aggiungifileprogetto.txt">aggiungifileprogetto.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/closedb.txt">closedb.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/conf_db.txt">conf_db.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/downloadfile.txt">downloadfile.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/eliminaf.txt">eliminaf.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/eliminaf2.txt">eliminaf2.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/eliminafile.txt">eliminafile.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/eliminap.txt">eliminap.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/eliminaprogetto.txt">eliminaprogetto.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/form_nuovo_progetto.txt">form_nuovo_progetto.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/genera.txt">genera.txt</a></th>
<td>3 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/index.txt">index.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/ins_gen.txt">ins_gen.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/intro.txt">intro.txt</a></th>
<td>1 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/listadown.txt">listadown.txt</a></th>
<td>4 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/nuovoprogetto.txt">nuovoprogetto.txt</a></th>
<td>2 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/progetto.zip">progetto.zip</a></th>
<td>12 Kbytes</td>
<td></td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/2-Musica.sub/1-Musica_e_tecnologia.dir/download.dwl/scelta.txt">scelta.txt</a></th>
<td>2 Kbytes</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/musica-e-tecnologia/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HttpIRC</title>
		<link>http://www.bellinux.com/httpirc</link>
		<comments>http://www.bellinux.com/httpirc#comments</comments>
		<pubDate>Mon, 19 Mar 2007 19:46:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tecnologia]]></category>
		<category><![CDATA[telecomando virtuale]]></category>

		<guid isPermaLink="false">http://www.bellinux.com/?p=129</guid>
		<description><![CDATA[Vuoi comandare il mondo da tutto il mondo?
Abstract
Sembra strano, però è quello che permette di fare questo Sub-Server: ogni apparechiatura elettronica, ormai, ha un ricevitore ad infrarosso per essere comandata quasi interamente a distanza. Il progetto permette di virtualizzare su un qualsiasi browser Http (quindi ad esempio anche su un telefonino) un qualsiasi telecomando, quindi [...]]]></description>
			<content:encoded><![CDATA[<p>Vuoi comandare il mondo da tutto il mondo?</p>
<h4>Abstract</h4>
<p>Sembra strano, però è quello che permette di fare questo Sub-Server: ogni apparechiatura elettronica, ormai, ha un ricevitore ad infrarosso per essere comandata quasi interamente a distanza. Il progetto permette di virtualizzare su un qualsiasi browser Http (quindi ad esempio anche su un telefonino) un qualsiasi telecomando, quindi basterebbe collegarsi via internet al proprio server casalingo (che ha preimpostato il telecomando virtuale) per inviare comandi virtuali, che il sistema traduce in comandi Infrarosso per le tue apparecchiature.</p>
<p>Il nome del progetto, HttpIrc, si rifa al nome di lIRC/winlIRC, cioè un software che serve per apprendere comandi infrarosso e trasmetterli all&#8217;occorrenza (tramire Hardware apposito), HttpIrc possiamo quindi considerarla un estenzione che permette di trasmettere all&#8217;occorrenza il segnale (tramite Lirc/WinLirc), però in questo caso, permette di farlo da qualsiasi parte del mondo lo si voglia!</p>
<h4>Principio di funzionamento</h4>
<hr />
<div>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/httpirc.png" border="0" alt="" width="440" /></div>
<h4>Come funziona</h4>
<div>
<p>La parte più riuscita del progetto, secondo me, sta nel fatto che il sistema è  in grado di trasmettere un comando (cioè una pressione &#8220;virtuale&#8221; di un tasto del  telecomando) da qualsiasi terminale che abbia la possibilita di visualizzare  pagine web HTML standard tramite il protocollo Http.</p>
<p>In breve, da un terminale (ad esempio un telefonino) tramite browser mi collego al server Http (nel caso specifico ho utilizzato Apache) e tramite delle pagine HTML (precompilate dal PHP e del tutto trasparenti al browser che le rileva tutte come HTML) invio &#8220;la pressione&#8221; di un tasto del telecomando; HttpIrc, rilevando la pressione si connette tramite socket tcp a Lirc/WinLirc inviando il nome del tasto e del telecomando. Lirc/Winlirc tramite queste due informazioni è in grado di inviare il segnale infrarosso desiderato.</p>
<p>Ovviamente Lirc/Winlirc deve essere pre-configurato con i parametri dei telecomandi virtualizzati.</p>
<p>Da notare che il terminale è indipendente da tutto il sistema: basta che  esso abbia la possibilità di visualizzare pagine HTML; posso utilizzare un pc,  un palmare, un vecchio telefonino con browser java ecc ecc&#8230;</p>
<p>Adesso lo schema &#8220;Principio di funzionamento&#8221; dovrebbe risultare più chiaro anche ad i meno esperti.</p></div>
<h4>Lato client</h4>
<div>
<p>Non è necessaria alcuna installazione da parte del Client, basta utilizzare  un normale browser html per accedere al server (ovviamente il sistema client  deve sia essere collegato ad internet, sia avere un browser http).</p>
<p><a href="http://www.mozilla-europe.org/it/products/firefox/start/central.html">Firefox</a></p>
<p><a href="http://www.opera.com/">Opera</a> disponibile anche per sistema operativo Symbian</p>
<p><a href="http://www.microsoft.com/ie">Internet Explorer</a></div>
<h4>Installazione</h4>
<div>
<p>La compatibilita del progetto è ampia anche per il sistema server: è sufficiente un sistema dotato di Webserver con PHP, nel caso specifico ho utilizzato Apache (con PHP) per Windows, per l&#8217;installazione di entrambi mi sono servito di <a href="http://www.easyphp.org/">EasyPHP</a> il quale senza imbattersi in configurazioni particolari, installa una base da subito funzionante di Apache, PHP e MySQL (che a noi non servirà a niente).</p>
<p>Apache e PHP sono disponibili anche per sistemi Linux: anzi il supporto per tale sistema è di maggiore livello (anche Lirc, nato per Linux è disponibile nella versione WinLirc per Windows).</p>
<p>Eseguita l&#8217;installazione del pacchetto EasyPHP, dobbiamo configurare le estensioni di php: Basta aggiungere nell&#8217;elenco delle estensioni php_sockets, senza questa estensione il Sub-Server non funzionerà.</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/estensioni.png" border="0" alt="" /></p>
<p>Nella directory di installazione di EasyPHP troveremo una directory &#8220;WWW&#8221; che sarà la root del Web-server, basterà estrarre il file telecomando.zip (disponibile in download) nella cartella WWW per eseguire l&#8217;installazione.</p>
<p>Per verificare accediamo dal un browser all&#8217;indirizzo: <a href="http://locahost/telecomando/">http://locahost/telecomando/</a> se troviamo riscontro abbiamo effettuato il tutto correttamente.</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/httpircnull.png" border="0" alt="" width="440" /></p>
<p>Per sistemi Linux l&#8217;installazione sarà analoga almeno &#8220;logicamente&#8221;, la procedura di installazione, invece, differirà sicuramente di un bel pò.</p>
<p><strong>N.B. </strong>WinLirc (credo anche Lirc) non riceve alcuna connessione se non si imposta una password (vedi WinLirc Password); La password su HttpIrc va impostata nel file &#8220;send.php&#8221; contenuto della directory &#8220;telecomando&#8221; (Il file è commentato e non necessita di spiegazioni).</div>
<h4>Nuovo telecomando</h4>
<p>Accedere a <a href="../../../telecomando/">http://localhost/telecomando/</a></p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/httpircnull.png" border="0" alt="" width="440" /></p>
<p>Cliccare su &#8220;Crea telecomando&#8221;</p>
<p>Inserire il nome del telecomando e premere crea (deve esserci corrispondenza con Lirc/Winlirc, vedi &#8220;Corrispondenza Lirc (WinLirc)</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/creatcmd.png" border="0" alt="" /></p>
<p>Inserire i bottoni della prima fila di tasti orizzontale del telecomando separati da virgole (deve esserci corrispondenza con Lirc/Winlirc, vedi &#8220;Corrispondenza Lirc (WinLirc) e premere &#8220;Crea riga&#8221;</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/corrispondenza.png" border="0" alt="" width="440" /></p>
<p>HttpIrc crea la fila, cliccare su indietro</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/filacreata.png" border="0" alt="" /></p>
<p>Inserire le file successive (passaggio precedente); quando non ci sono più nuove file cliccare su:&#8221;Nessuna nuova riga! vai al telecomando&#8230;&#8221;</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/demotcmd.png" border="0" alt="" /> Si avrà a disposizione un modello, per disposizione dei tasti, simile al telecomando originale e bastera cliccare sul nome del tasto per inviare una pressione virtuale a Lirc/WinLirc tramite Sub-server HttpIrc)</p>
<h4>Altre funzioni</h4>
<div>
<p>Altre funzioni disponibili sono: Lista telecomando ed  Elimina telecomando, non anno bisogno di molte spiegazioni; il primo visualizza  tutti i telecomandi creati, il secondo elimina un telecomando sapendone il nome.</p>
<p><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/listatcmd.png" border="0" alt="" /></div>
<div><img src="http://www.bellinux.com/italian/1-Progetti.sub/2-HttpIrc.dir/images/eliminatcmd.png" border="0" alt="" /></div>
<h4>Corrispondenza (Win)Lirc</h4>
<div>
<p>In Lirc/WinLirc ogni telecomando ha un nome, e i tasti associati al telecomando hanno anche essi un nome: questi nomi devono corrispondere con le configurazioni di HttpIrc.</p>
<p>Maggiori dettagli dettagli su:</p>
<p><a href="http://www.lirc.org/">Lirc</a></p>
<p><a href="http://winlirc.sourceforge.net/">WinLirc</a></div>
<h4>WinLirc Password</h4>
<div>
<p>Dove si trova la password di WinLirc?</p>
<p>Apparentemente nella configurazione di WinLirc non vi è alcun campo dove impostare la password, infatti WinLirc di default non accetta alcuna connessione al proprio server, per far si che invece accetti le connessioni provenienti da HttpIrc bisogna impostare la password nel seguente modo:</p>
<p>Start&gt;Esegui&gt;regedit&gt;OK</p>
<p>Posizionarsi in: HKEY_LOCAL_MACHINE\SOFTWARE\LIRC</p>
<p>Aggiungere, se non esiste già un campo String dal nome password e impostarlo con la password scelta</p>
<p>Nell&#8217;area sezione Download è disponibile un file *.reg che esegue la configurazione automaticamente.</p></div>
<h4>Download</h4>
<table border="0">
<tbody>
<tr>
<th scope="col">Nome</th>
<th scope="col">Dimensione</th>
<th scope="col">Descrizione</th>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/1-Progetti.sub/2-HttpIrc.dir/download.dwl/telecomando.zip">telecomando.zip</a></th>
<td>11 Kbytes</td>
<td>HttpIrc v0.1</td>
</tr>
<tr>
<th scope="row"><a href="http://www.bellinux.com/Data/italian/1-Progetti.sub/2-HttpIrc.dir/download.dwl/winlirc.reg">winlirc.reg</a></th>
<td>1 Kbytes</td>
<td>File registro che imposta la password di WinLirc</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bellinux.com/httpirc/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
