<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>L'importante è avere un titolo</title>
	<atom:link href="http://natonelbronx.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://natonelbronx.wordpress.com</link>
	<description>se ti dicono che per vivere devi stare seduto e zitto, allora alzati grida e muori!</description>
	<lastBuildDate>Thu, 05 Jan 2012 07:27:53 +0000</lastBuildDate>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='natonelbronx.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>L'importante è avere un titolo</title>
		<link>http://natonelbronx.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://natonelbronx.wordpress.com/osd.xml" title="L&#039;importante è avere un titolo" />
	<atom:link rel='hub' href='http://natonelbronx.wordpress.com/?pushpress=hub'/>
		<item>
		<title>UEFI Secure Booting: Così Windows 8 potrebbe impedire l&#8217;installazione di Linux</title>
		<link>http://natonelbronx.wordpress.com/2011/10/12/uefi-secure-booting-cosi-windows-8-potrebbe-impedire-linstallazione-di-linux/</link>
		<comments>http://natonelbronx.wordpress.com/2011/10/12/uefi-secure-booting-cosi-windows-8-potrebbe-impedire-linstallazione-di-linux/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 18:36:21 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Giochi sporchi di microsoft]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segnalazioni]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[uefi]]></category>
		<category><![CDATA[windows8]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=292</guid>
		<description><![CDATA[Di che si tratta? Un protocollo di sicurezza che impedisce ad un computer, all&#8217;accensione, di avviare un software che non sia certificato&#8230; In sostanza rende impossibile avviare un live CD o un sistema operativo che non sia certificato. I fatti: la certificazione a Windows 8 richiede che il sistema abbia UEFI Secure Booting ABILITATO la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=292&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Di che si tratta? Un protocollo di sicurezza che impedisce ad un computer, all&#8217;accensione, di avviare un software che non sia certificato&#8230; In sostanza rende impossibile avviare un live CD o un sistema operativo che non sia certificato.</p>
<p>I fatti:</p>
<ul>
<li>la certificazione a <strong>Windows 8</strong> richiede che il sistema abbia UEFI Secure Booting ABILITATO</li>
<li>la certificazione a Windows 8 NON richiede che l&#8217;utente abbia la possibilità di disabilitare l&#8217;UEFI, e vi sono dei produttori di hardware (computer) che hanno già affermato che questo non sarà possibile</li>
<li>la certificazione a Windows 8 NON richiede che il computer venga fornito con altre chiavi se non quelle Microsoft (ovvero, certificati firmati da Microsoft)</li>
<li>Un sistema che viene venduto con UEFI abilitato (e non disabilitabile) e contiene solo chiavi Microsoft avvierà sempre e solo sistemi operativi Microsoft</li>
</ul>
<p>Avete presente quel bollino che trovate sui vostri computer con il logo di Windows?</p>
<p>Sul mio portatile ne ho uno con il simbolo di Windows e la scritta &#8220;Windows 7&#8243;.</p>
<p>I produttori di computer, per ottenere la certificazione di Microsoft DEVONO sottostare al programma di certificazione di Microsoft, chi ottiene il Logo di certificazione ottiene incentivi da Microsoft.</p>
<p>Ogni produttore può decidere, in autonomia, se sottostare al programma di certificazione ma, siccome Windows è in posizione dominante (90% del mercato circa) ottenere la certificazione è fondamentale per non perdere competitività con gli altri produttori. È facile prevedere che tutti i produttori venderanno PC con UEFI Secure Booting attivo, come richiesto per la certificazione Microsoft.</p>
<p>In genere questa certificazione si applica ai PC OEM, ovvero quelli con Windows preinstallato, la quasi-totalità dei computer acquistati dai comuni mortali <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p><strong>Fonte</strong>: <em>Mathew Garret</em> (aka <strong><a title="Mathew Garret Blog" href="http://mjg59.dreamwidth.org/">mjg59</a></strong>) e nello specifico <em><a title="UEFI Secure Booting" href="http://mjg59.dreamwidth.org/5552.html">questo</a></em> e <em><a title="UEFI Secure Boot (part2)" href="http://mjg59.dreamwidth.org/5850.html">questo</a></em> post sul suo blog; mjg59 è uno sviluppatore Red Hat molto attivo nella community Linux; ultima fonte è <a title="Building Windows 8" href="http://blogs.msdn.com/b/b8/archive/2011/09/22/protecting-the-pre-os-environment-with-uefi.aspx">Microsoft stessa</a>.</p></blockquote>
<p>Interrompo il lungo silenzio per riassumere quanto dice <em>mjg59</em> nei suoi due articoli linkati qui sopra: in italiano, sia per dar eco alla notizia che NON DEVE passare inosservata sia per permettere anche ai non anglofoni di venirne informati.</p>
<p><strong>È presto per andare nel panico ma è il caso di iniziare a preoccuparsi</strong>.</p>
<h1>Vi state chiedendo, più nello specifico, cosa questo comporta?</h1>
<p><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">Comincio subito spiegando un po&#8217; meglio a cosa serve e come funziona questo UEFI Secure Booting, senza andare troppo nel tecnico:</span></p>
<div><span id="more-292"></span></div>
<h2>Spiegazione semi-tecnica</h2>
<p>Sostanzialmente il vostro computer, quando si avvia, dopo le inizializzazioni (tipicamente gestite dal BIOS) manda in esecuzione sul processore (CPU) del vostro computer il <strong>boot loader</strong> del vostro sistema operativo.</p>
<p>Il <strong>boot loader</strong> può essere, in realtà, qualunque software in grado di gestire l&#8217;avvio del vostro PC: windows ha il suo bootloader, Linux ne ha diversi (grub, lilo, &#8230;), se avviate da LiveCD/DVD o chiavetta USB state eseguendo altri programmi che &#8220;sanno&#8221; come avviare il vostro computer, d&#8217;ora in avanti chiamerò &#8220;<strong>software di avvio</strong>&#8221; il generico programma che si occupa di far avviare il vostro computer.</p>
<p>In realtà l&#8217;<em>UEFI Secure Booting</em> parla di <strong>Firmware</strong>, il che significa, più in generale, qualunque software, compresi software interni ai dispositivi fisici nel vostro computer (<em>schede video, schede di rete, &#8230;.</em>) vedremo più sotto che questo comporta problemi anche per chi non è interessato a sistemi operativi NON-Windows.</p>
<p>Richiedere che il <em>software di avvio</em> sia certificato significa FIRMARE digitalmente il software e controllare che la firma sia valida prima di eseguirlo.</p>
<p>Tipicamente questo avviene generando delle chiavi, una <em>pubblica</em> ed una <em>privata</em>: la <strong>chiave privata</strong> è segreta e viene usata per firmare il <em>software di avvio</em> prima di venderlo / distribuirlo; la <strong>chiave pubblica</strong> viene invece installata nei computer ed è in grado di determinare se la firma è valida (perché firmata con la corrispettiva <strong>chiave privata</strong>) o, in caso negativo, negare l&#8217;avvio.</p>
<h2>Perché questo è un problema?</h2>
<p>Per l&#8217;UEFI Secure Booting non esistono Certification Authorities, il che significa che ogni produttore di hardware potrà scegliere (oltre alle chiavi microsoft) di includere le chiavi che più ritiene opportune.</p>
<p>Microsoft è in una posizione avvantaggiata perché può richiedere che su tutti i computer vi siano le proprie chiavi, nessun altro è nella stessa posizione per farlo, ne Red Hat, ne Canonical (Ubuntu) ne AMD, nVidia, Intel.</p>
<p>Sono i produttori dei computer (Dell, Asus, Acer, &#8230;.) a decidere quali <em>chiavi pubbliche</em> installare sui computer prima di venderli, e sono sempre loro a decidere se dare la possibilità a chi li compra di disabilitare l&#8217;UEFI Secure Booting (tipicamente tramite BIOS). Come già detto, però, nessun produttore sceglierà di rinunciare alla certificazione Microsoft perché verrebbe messo in una posizione di svantaggio rispetto agli altri.</p>
<p>È importante comprendere che questo interessa anche i dispositivi installati sul vostro computer: <strong>se voleste cambiare la scheda video o la scheda di rete il computer potrebbe non avviarsi più</strong>: dipende dalle chiavi installate, se la scheda di rete che avete comprato non è riconosciuta come certificata dal vostro PC questo potrebbe rifiutare di avviarsi.</p>
<blockquote><p>A mio personale parere questo non avverrà perché i produttori sigleranno accordi appositamente per evitare che succeda, pagando Microsoft o i singoli fornitori per assicurarsi che le proprie chiavi siano inserite in tutti i computer&#8230; significa però aumento dei costi per l&#8217;utente finale, su qualcuno quelle spese devono ricadere.</p></blockquote>
<h2>Cosa può fare chi comprerà un computer con Windows 8?</h2>
<p>Occorrerà prestare attenzione durante l&#8217;acquisto ecco quindi un piccolo sommario delle casistiche possibili.</p>
<p>Per il momento non esiste alcun modo di conoscere queste informazioni a priori se non cercando su Internet prima di recarsi a comprare.</p>
<p>Non esiste infatti, per ora, alcun obbligo per i produttori di comunicare al cliente finale questo tipo di informazioni.</p>
<h3>Se sul vostro computer è IMPOSSIBILE disabilitare UEFI Secure Booting + solo chiavi Microsoft</h3>
<blockquote><p>Questo è il caso peggiore.</p>
<p>In questo caso NULLA se non prodotti Microsoft certificati potranno essere avviati sul computer.</p>
<p>Nessun hardware potrà essere cambiato se il nuovo hardware non è certificato da Microsoft (quali saranno le richieste di microsoft perché l&#8217;hardware sia certificato?)</p>
<p>Niente Linux, niente Live CD/DVD, niente boot da chiavetta, nulla che Microsoft non abbia certificato.</p>
<p>Per quel che ne so potrebbe essere impossibile avviare una versione precedente di Windows (come Windows Vista o Windows 7) a meno che Microsoft le fornisca firmate (non sono informato in merito e non so se le precedenti versioni sono state distribuite certificandole).</p></blockquote>
<h3>Se sul vostro computer è IMPOSSIBILE disabilitare UEFI Secure Booting + chiavi di diversi fornitori</h3>
<blockquote><p>La situazione è identica al caso precedente con la differenza che potrete avere software di avvio e dispositivi hardware firmati da Microsoft oppure da uno degli altri fornitori per cui è stata installata una chiave.</p>
<p>Per capire cosa questo significa vi descriverò una situazione molto <strong>improbabile</strong>, ma plausibile: immaginate che Dell stringa un accordo con Canonical (Ubuntu), e che quindi Dell installi nei propri computer le chiavi Microsoft (necessarie alla certificazione) e le chiavi Ubuntu. (NOTA: ho preso Dell e Ubuntu in modo totalmente casuale, l&#8217;esempio è valido con qualunque altra accoppiata).</p>
<p>Supponendo quindi che questo sia il PC in vostro possesso potrete installare Ubuntu ma nessun altra distribuzione Linux. Non potreste comunque installare versioni non certificate da Canonical del kernel e/o del boot loader. La vostra libertà sarebbe quindi, comunque, limitata.</p>
<p>Quindi in sostanza, ciò che potete fare, dipenderebbe dalle chiavi installate e da ciò che i proprietari delle chiavi hanno previsto; se non è stato previsto per voi dai produttori, non lo potete fare.</p>
<p>A prescindere dalle chiavi installate avrete sempre delle limitazioni, specialmente se siete un po&#8217; tecnici e volete poter utilizzare il PC che avete comprato come più vi aggrada.</p>
<p>Ad esempio non sarà possibile utilizzare Grub2, l&#8217;attuale boot loader predefinito di Ubuntu e molte altre distribuzioni, per problemi di incompatibilità della licenza (GPLv3) [vedi sotto].</p>
<p>Non potrete mai compilare una versione personalizzata del kernel (Linux/FreeBSD) o del boot loader, non verrebbe riconosciuto come certificato.</p></blockquote>
<h3>Se sul vostro computer è POSSIBILE disabilitare UEFI Secure Booting</h3>
<blockquote><p>A patto che UEFI Secure Booting venga disabilitato qualunque software (compreso Linux) e dispositivo può essere installato.</p>
<p>In futuro, quando acquisterete un computer ASSICURATEVI di cosa state comprando e informatevi bene che l&#8217;UEFI si possa disabilitare prima di pagare!</p>
<p>Mi resta un dubbio, ma è solo un dubbio, Windows 8 si rifiuterà di avviarsi senza l&#8217;UEFI Secure Booting abilitato?</p>
<p>Se così fosse il Dual Booting Windows 8 / Linux non sarebbe possibile.</p>
<p>Questo però, ripeto, è solo un mio dubbio, non esiste al momento alcuna indicazione in merito.</p></blockquote>
<h3>Se sul vostro computer è POSSIBILE UEFI Secure Booting + possibile installare proprie chiavi</h3>
<blockquote><p>Questo è il caso più &#8220;roseo&#8221;.</p>
<p>Avete la possibilità di disabilitare l&#8217;UEFI Secure Booting, installando quindi quel che volete ma, gli utenti più tecnici, avrebbero anche la possibilità di aggiungere le proprie chiavi e firmare i propri software e/o hardware perché funzionino (_solo_ sul proprio computer) anche con UEFI Secure Booting attivo.</p>
<p>L&#8217;ironia è che comunque, anche volendolo, non potrete impedire a Windows 8 di avviarsi a meno che non vi sia fornita anche la possibilità di rimuovere le chiavi.</p></blockquote>
<h2>I software GPLv3 sono tagliati fuori dall&#8217;UEFI Secure Booting</h2>
<p>Se prendiamo in esame la <strong>GPLv3</strong> notiamo che questa obbligherebbe, firmando il software di avvio, a rilasciare anche la <strong>chiave privata:</strong> il che renderebbe inutile l&#8217;UEFI Secure Booting in quanto chiunque potrebbe firmare il proprio software e l&#8217;UEFI lo accetterebbe come valido, questo è sufficiente a farci capire che mai nessun produttore hardware includerebbe una simile chiave nel sistema.</p>
<p><strong>Grub2</strong>, il recente boot loader Linux utilizzato da quasi tutte le moderne distribuzioni, utilizza la licenza GPLv3: non potrà mai essere firmato e quindi non funzionerà mai con UEFI Secure Booting attivo.</p>
<h3>La natura di Linux</h3>
<p>Il suo predecessore Grub (versione 1) è sotto a GPLv2, ma questo non risolverebbe il problema.</p>
<p>Prima di tutto perché Linux si sta evolvendo in modo da includere il boot loader stesso che quindi non sarà più un software separato (ecco perché parlavo di impossibilità di ricompilare il kernel), in secondo luogo perché gli utenti Linux e gli sviluppatori Linux sono abituati e hanno bisogno di compilare il kernel e il boot loader in proprio e non è pertanto sufficiente limitarsi ad utilizzare versioni compilate e firmate da fornitori certificati.</p>
<h2>Concludendo</h2>
<p>Microsoft afferma di non voler togliere agli utenti finali il controllo del proprio computer, ma i fatti dicono il contrario.</p>
<p>Al momento della scrittura della questo post NON esistono hardware in commercio che supportino il protocollo UEFI Secure Booting e l&#8217;unico produttore che ha un&#8217;implementazione è Intel.</p>
<p>Potrebbe risolversi tutto in fumo nei prossimi mesi, ma è importante restare sul chi vive e seguire attentamente la faccenda, seguite le fonti che vi ho indicato ad inizio articolo, io tenterò di mantenere questo post aggiornato ma non posso garantirlo. Aggiornamenti e altre segnalazioni correlate sono benvenute nei commenti.</p>
<br />Filed under: <a href='http://natonelbronx.wordpress.com/category/informatica/microsoft/giochi-sporchi-di-microsoft/'>Giochi sporchi di microsoft</a>, <a href='http://natonelbronx.wordpress.com/category/informatica/hardware/'>Hardware</a>, <a href='http://natonelbronx.wordpress.com/category/links/'>Links</a>, <a href='http://natonelbronx.wordpress.com/category/informatica/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/category/segnalazioni/'>Segnalazioni</a> Tagged: <a href='http://natonelbronx.wordpress.com/tag/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/tag/microsoft-2/'>microsoft</a>, <a href='http://natonelbronx.wordpress.com/tag/uefi/'>uefi</a>, <a href='http://natonelbronx.wordpress.com/tag/windows8/'>windows8</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/292/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/292/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/292/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=292&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2011/10/12/uefi-secure-booting-cosi-windows-8-potrebbe-impedire-linstallazione-di-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Disabilitare l&#8217;emulazione del terzo bottone del mouse (Linux)</title>
		<link>http://natonelbronx.wordpress.com/2010/05/15/disabilitare-lemulazione-del-terzo-bottone-del-mouse-linux/</link>
		<comments>http://natonelbronx.wordpress.com/2010/05/15/disabilitare-lemulazione-del-terzo-bottone-del-mouse-linux/#comments</comments>
		<pubDate>Sat, 15 May 2010 12:06:57 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips&Tricks]]></category>
		<category><![CDATA[emulate3button]]></category>
		<category><![CDATA[hal]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[quake]]></category>
		<category><![CDATA[quakelive]]></category>
		<category><![CDATA[tips&trick]]></category>
		<category><![CDATA[X11]]></category>
		<category><![CDATA[xorg.conf]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=279</guid>
		<description><![CDATA[disabilitare l'emulazione del terzo bottone:
creare il file /etc/hal/fdi/policy/mouseEmulate3Button.fdi e scriverci dentro:
<blockquote><pre>&#60;?xml version="1.0" encoding="ISO-8859-1"?&#62;
&#60;deviceinfo version="0.2"&#62;
 &#60;device&#62;
  &#60;match key="info.capabilities" contains="input.mouse"&#62;
   &#60;merge key="input.x11_options.Emulate3Buttons" type="string"&#62;false&#60;/merge&#62;
  &#60;/match&#62;
 &#60;/device&#62;
&#60;/deviceinfo&#62;</pre>
</blockquote><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=279&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Se anche a voi capita che per il vostro mouse con 3 bottoni (o più) venga abilitato talvolta l&#8217;emulazione del terzo bottone nonostante abbiate specificato in xorg.conf l&#8217;opzione <strong>Emulate3Button</strong> Disable/false/off/no qui vi spiego come risolvere il problema.</p>
<p>L&#8217;emulazione del terzo bottone, per chi non sapesse, è questa: pressione contemporanea di Bottone sinistro + Bottone destro = Terzo bottone (o centrale &#8211; tipicamente la rotellina)</p>
<p>Se avete dei giochi o programmi (io per esempio gioco a QuakeLive) per cui è necessario usare sinistro e destro contemporaneamente l&#8217;emulazione è fastidiosa, ma a prescindere da questo rallenta il mouse (nei pc moderni non si nota neppure).</p>
<p>Bene il responsabile di tutto è Hal.</p>
<p>e per risolvere basta creare un file /etc/hal/fdi/policy/mouseEmulate3Button.fdi (serve essere root) e copiarci questo contenuto:</p>
<blockquote>
<pre>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;deviceinfo version="0.2"&gt;
 &lt;device&gt;
  &lt;match key="info.capabilities" contains="input.mouse"&gt;
   &lt;merge key="input.x11_options.Emulate3Buttons" type="string"&gt;false&lt;/merge&gt;
  &lt;/match&gt;
 &lt;/device&gt;
&lt;/deviceinfo&gt;</pre>
</blockquote>
<p>quindi riavviare oppure rimuovere il mouse e lanciare /etc/init.d/hal restart da root prima di ricollegarlo.</p>
<p>abbiamo detto ad hal che non vogliamo l&#8217;emulazione dei 3 bottoni!</p>
<p>Hal, semplificando, è un server che &#8220;ascolta&#8221; eventi hardware per scatenare delle operazioni, per esempio quando inserite una chiavetta o un disco esterno questo viene montato grazie ad Hal.[¹]</p>
<p>[¹] Hal è uno dei software più criticati, con udev, perché introduce negli ambienti Linux comportamenti &#8220;random / casuali&#8221; tipici di ambienti windows: la stessa operazione effettuata due volte da due risultati diversi&#8230; d&#8217;altra parte senza non funzionerebbe alcuni automatismi come il mount delle chiavette.</p>
<br />Filed under: <a href='http://natonelbronx.wordpress.com/category/informatica/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/category/tipstricks/'>Tips&amp;Tricks</a> Tagged: <a href='http://natonelbronx.wordpress.com/tag/emulate3button/'>emulate3button</a>, <a href='http://natonelbronx.wordpress.com/tag/hal/'>hal</a>, <a href='http://natonelbronx.wordpress.com/tag/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/tag/mouse/'>mouse</a>, <a href='http://natonelbronx.wordpress.com/tag/quake/'>quake</a>, <a href='http://natonelbronx.wordpress.com/tag/quakelive/'>quakelive</a>, <a href='http://natonelbronx.wordpress.com/tag/tipstrick/'>tips&amp;trick</a>, <a href='http://natonelbronx.wordpress.com/tag/x11/'>X11</a>, <a href='http://natonelbronx.wordpress.com/tag/xorg-conf/'>xorg.conf</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/279/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/279/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/279/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=279&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2010/05/15/disabilitare-lemulazione-del-terzo-bottone-del-mouse-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Risolvere il problema degli oggetti Flash che coprono l&#8217;html su Linux</title>
		<link>http://natonelbronx.wordpress.com/2010/05/14/risolvere-il-problema-degli-oggetti-flash-che-coprono-lhtml-su-linux/</link>
		<comments>http://natonelbronx.wordpress.com/2010/05/14/risolvere-il-problema-degli-oggetti-flash-che-coprono-lhtml-su-linux/#comments</comments>
		<pubDate>Fri, 14 May 2010 09:44:32 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips&Tricks]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[FP-80]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[over]]></category>
		<category><![CDATA[sovrapposto]]></category>
		<category><![CDATA[tips&trick]]></category>
		<category><![CDATA[trasparenza]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[wmmode]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=268</guid>
		<description><![CDATA[Installate FlashPlayer 10 se già non lo avete fatto, per Debian/Ubuntu:
(sudo) aptitude install flashplugin-nonfree
(sudo) update-flashplugin-nonfree --install --verbose

poi assicuratevi di non avere il plugin Flash installato in Firefox:
rm ~/.mozilla/plugins/libflashplayer.so
rm ~/.mozilla/plugins/flashplayer.xpt
riavviate firefox/chrome.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=268&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Andate su un sito web con flash e non potete utilizzare il sito perché Flash copre un menù? o l&#8217;intero sito web (flash come &#8220;sfondo&#8221;)?</p>
<p>Cliccando con il destro su un oggetto flash vi dice che avete la versione 9 del flash player? Vi spiego come risolvere il problema su firefox e goggle chrome per Linux.</p>
<p>Il bug Adobe di riferimento è questo:﻿ <a title="transparency is not working in all version of firefox / konqueror / opera" href="https://bugs.adobe.com/jira/browse/FP-80">transparency is not working in all version of firefox / konqueror / opera</a></p>
<p>Che è stato chiuso con Flash Player 10 per Linux. La soluzione, che sembra banale, è quella di aggiornare Flash <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>su Debian/Ubuntu (dopo aver abilitato i repository non-free):</p>
<blockquote><p>(sudo) aptitude install flashplugin-nonfree</p>
<p>(sudo) update-flashplugin-nonfree &#8211;install &#8211;verbose</p></blockquote>
<p>Con il secondo comando potete aggiornare flash quando esce una nuova versione.</p>
<p>Trovate queste informazioni ovunque&#8230;</p>
<p>Questo post è per chi ha aggiornato Flash ma continua a ritrovarsi con il problema perché Firefox/Chrome insistono ad usare Flash 9!</p>
<p>Non so sulle altre distribuzioni ma su Ubuntu e Debian quando, con Firefox, si visita per la prima volta un sito web con un oggetto Flash viene proposto di installarlo. Se avete installato il 10 ma Firefox / Chrome usano il 9 è per quell&#8217;installazione che avete fatto un po&#8217; di tempo fa&#8230;</p>
<p>è sufficiente eliminare 2 file (non serve sudo):</p>
<blockquote><p>rm ~/.mozilla/plugins/libflashplayer.so</p>
<p>rm ~/.mozilla/plugins/flashplayer.xpt</p></blockquote>
<p>poi chiudere e riaprire Firefox/IceWeasel/Chrome. Eventualmente fatevi un backup dei 2 file invece che eliminarli <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />Filed under: <a href='http://natonelbronx.wordpress.com/category/informatica/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/category/tipstricks/'>Tips&amp;Tricks</a> Tagged: <a href='http://natonelbronx.wordpress.com/tag/adobe/'>adobe</a>, <a href='http://natonelbronx.wordpress.com/tag/bug/'>bug</a>, <a href='http://natonelbronx.wordpress.com/tag/chrome/'>chrome</a>, <a href='http://natonelbronx.wordpress.com/tag/debian/'>Debian</a>, <a href='http://natonelbronx.wordpress.com/tag/firefox/'>Firefox</a>, <a href='http://natonelbronx.wordpress.com/tag/flash/'>flash</a>, <a href='http://natonelbronx.wordpress.com/tag/flashplayer/'>flashplayer</a>, <a href='http://natonelbronx.wordpress.com/tag/fp-80/'>FP-80</a>, <a href='http://natonelbronx.wordpress.com/tag/html/'>html</a>, <a href='http://natonelbronx.wordpress.com/tag/linux/'>Linux</a>, <a href='http://natonelbronx.wordpress.com/tag/over/'>over</a>, <a href='http://natonelbronx.wordpress.com/tag/sovrapposto/'>sovrapposto</a>, <a href='http://natonelbronx.wordpress.com/tag/tipstrick/'>tips&amp;trick</a>, <a href='http://natonelbronx.wordpress.com/tag/trasparenza/'>trasparenza</a>, <a href='http://natonelbronx.wordpress.com/tag/ubuntu/'>Ubuntu</a>, <a href='http://natonelbronx.wordpress.com/tag/wmmode/'>wmmode</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/268/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/268/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/268/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=268&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2010/05/14/risolvere-il-problema-degli-oggetti-flash-che-coprono-lhtml-su-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Linux Day 2009 &#8211; Git LoLug</title>
		<link>http://natonelbronx.wordpress.com/2009/10/27/linux-day-2009-git-lolug/</link>
		<comments>http://natonelbronx.wordpress.com/2009/10/27/linux-day-2009-git-lolug/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 12:47:14 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Segnalazioni]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[linuxday]]></category>
		<category><![CDATA[lolug]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[versioning]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=248</guid>
		<description><![CDATA[Quest&#8217;anno sono andato a Lodi e ho partecipato al Linux Day del LoLug.. Ho parlato di Git: uno dei più avanzati sistemi di versionamento distribuiti (e multipiattaforma)! Se scrivete software, tesi, libri, pagine internet vi farebbe davvero comodo! Rispetto a SVN è un&#8217;altro pianeta&#8230; SVN è vecchio, scarno, scomodo! Git è al passo con la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=248&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Quest&#8217;anno sono andato a Lodi e ho partecipato al Linux Day del <a title="Lodi Linux User Group" href="http://www.lolug.org/">LoLug</a>..</p>
<p>Ho parlato di <a title="Git: Fast version control system" href="http://git-scm.com/">Git</a>: uno dei più avanzati sistemi di versionamento distribuiti (e multipiattaforma)! Se scrivete software, tesi, libri, pagine internet vi farebbe davvero comodo!</p>
<p>Rispetto a SVN è un&#8217;altro pianeta&#8230; SVN è vecchio, scarno, scomodo! Git è al passo con la tecnologia, pieno di funzionalità, veloce e comodo!</p>
<p>Git è il sistema di versionamento ideato da Linus Torvalds e utilizzato da tutti i progetti legati a Linux, da grossi progetti in casa google e da moltissime altre aziende e progetti tecnologicamente avanzati.</p>
<p>Moltissimi progetti stanno inoltre migrando a git (fra pochi giorni verrà probabilmente annunciata l&#8217;avvenuta migrazione da parte di <a title="The Write Less, Do More, Javascript Library" href="http://jquery.com/">jquery</a>¹ (migrazione iniziata meno di una settimana fa e che sta avvenendo silenziosamente).</p>
<p>La mia presentazione scaricabile <a title="ZIP contenente la presentazione" href="http://www.mediafire.com/?oov2yyu0mwn">QUI</a> è un&#8217;introduzione a git: formati ODS (non supportato da wordpress, lo trovate nello Zip), <a title="Presentazione" href="http://natonelbronx.files.wordpress.com/2009/10/linuxday2009-git.pdf">PDF</a> e <a title="Versione con le note per ogni slide" href="http://natonelbronx.files.wordpress.com/2009/10/linuxday2009-git-notes.pdf">PDF con le note</a> che pressappoco dicono ciò che ho detto a voce nel talk.</p>
<p>[¹] jquery è una famosa libreria javascript per realizzare complessi effetti grafici con poche righe di codice! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Se scrivete javascript e non lo conoscete dovete ASSOLUTAMENTE colmare questa mancanza.</p>
<p>Nota Off Topic: il blog non è morto, è solo semi-deceduto! <em>Deceduto</em> perché non vi scrivo da mesi, <em>semi</em> perché continuo a rispondere ai commenti e ho sempre la speranza di trovare il tempo per tornare a scriverci&#8230; Se ancora qualcuno mi segue battete un colpo! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<br />Pubblicato in: Git, Segnalazioni Tagged: 2009, Git, jquery, linuxday, lolug, svn, versioning <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/248/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=248&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2009/10/27/linux-day-2009-git-lolug/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian e derivati: completamento automatico avanzato nel terminale</title>
		<link>http://natonelbronx.wordpress.com/2009/07/21/debian-e-derivati-completamento-automatico-avanzato-nel-terminale/</link>
		<comments>http://natonelbronx.wordpress.com/2009/07/21/debian-e-derivati-completamento-automatico-avanzato-nel-terminale/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 19:07:47 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Tips&Tricks]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[automatico]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bashrc]]></category>
		<category><![CDATA[completamento]]></category>
		<category><![CDATA[terminale]]></category>
		<category><![CDATA[tips&trick]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=192</guid>
		<description><![CDATA[Questa è una piccola configurazione che applico a qualunque installazione Debian/Ubuntu/Debian-derivati vari che mi passa tra le mani&#8230; moltissimi già la conoscono immagino.. ritengo che senza l&#8217;utilizzo del terminale perda gran parte della sua utilità! Semplicemente quando scrivete nel terminale un comando è molto molto molto comodo poter completare i comandi con il tasto [TAB]. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=192&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Questa è una piccola configurazione che applico a qualunque installazione Debian/Ubuntu/Debian-derivati vari che mi passa tra le mani&#8230;</p>
<p>moltissimi già la conoscono immagino.. ritengo che senza l&#8217;utilizzo del terminale perda gran parte della sua utilità!</p>
<p>Semplicemente quando scrivete nel terminale un comando è molto molto molto comodo poter completare i comandi con il tasto [TAB].</p>
<p>Di default vengono completati solo i comandi semplici e i &#8220;path&#8221; ai file&#8230;</p>
<p>però se per esempio scrivete:</p>
<blockquote><p><code>apt-get up<strong>[TAB]</strong></code></p></blockquote>
<p>non succede proprio nulla&#8230;</p>
<p>e ovviamente anche scrivendo</p>
<blockquote><p><code>apt-get install gnome-<strong>[TAB]</strong></code></p></blockquote>
<p>non succede nulla&#8230; <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>questa configurazione semplice e veloce vi permette di attivare auto-completamenti &#8220;<em>complessi</em>&#8221; come questi qui sopra.</p>
<p>Tali auto-completamenti sono presenti non solo per il comando apt-get ma per moltissimi altri comandi anche non direttamente legati a Debian..</p>
<p>ma veniamo alla guida:</p>
<p>aprite un terminale:</p>
<blockquote><p><code>$ gedit ~/.bashrc</code></p></blockquote>
<p>scorrete in basso fino a:</p>
<blockquote><p># enable programmable completion features (you don&#8217;t need to enable<br />
# this, if it&#8217;s already enabled in /etc/bash.bashrc and /etc/profile<br />
# sources /etc/bash.bashrc).<br />
#if [ -f /etc/bash_completion ]; then<br />
#. /etc/bash_completion<br />
#fi</p></blockquote>
<p>rimuovete i cancelletti (#) dalle ultime 3 righe</p>
<p>ottenendo questo:</p>
<blockquote><p># enable programmable completion features (you don&#8217;t need to enable<br />
# this, if it&#8217;s already enabled in /etc/bash.bashrc and /etc/profile<br />
# sources /etc/bash.bashrc).<br />
if [ -f /etc/bash_completion ]; then<br />
. /etc/bash_completion<br />
fi</p></blockquote>
<p>già che ci siete cercate questa riga:</p>
<blockquote><p># Comment in the above and uncomment this below for a color prompt<br />
#PS1=&#8217;${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ &#8216;</p></blockquote>
<p>e togliete il cancelletto davanti a PS1:</p>
<blockquote><p># Comment in the above and uncomment this below for a color prompt<br />
PS1=&#8217;${debian_chroot:+($debian_chroot)}\[33[01;32m\]\u@\h\[33[00m\]:\[33[01;34m\]\w\[33[00m\]\$ &#8216;</p></blockquote>
<p>salvate e chiudete!</p>
<p>Ora vi basta chiudere e riaprire il terminale per vedere l&#8217;effetto funzionante!!!</p>
<p>oppure potete lanciare questo comando per attivarlo senza chiudere e riaprire il terminale:</p>
<blockquote><p><code>. ~/.bashrc</code></p></blockquote>
<p>un punto seguito da uno spazio e poi il path al file <code>.bashrc</code> nella vostra home directory <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>la prima cosa che vi ho fatto fare attiva l&#8217;auto-completamento avanzato, la seconda <strong>rende più colorato il prompt dei comandi</strong>!</p>
<p>Se volete le stesse cose per l&#8217;utente <em>root</em> non vi resta che diventare <em>root</em> (<code>su</code> o <code>sudo -i</code>) e copiare quelle linee nel file <code>/root/.bashrc</code></p>
<p>Ci sono molte altre cose che potete fare per personalizzarvi il terminale&#8230; qualcuna già &#8220;preimpostata&#8221; in quel file.. dategli un&#8217;occhiata ma fatevi un backup per evitare casini  se volete sperimentare <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>NOTA: l&#8217;autocompletamento funziona anche ad un settaggio che c&#8217;è altrove nel vostro sistema, e precisamente in <code>/etc/bash.bashrc</code>. Normalmente non è necessario far nulla in questo file</p>
<p>ps: sto cambiando look al blog nella speranza che i caratteri siano più leggibili! L&#8217;altro layout aveva alcuni caratteri davvero troppo piccoli!</p>
<br />Pubblicato in: Debian, Tips&amp;Tricks, Ubuntu Tagged: automatico, bash, bashrc, completamento, Debian, terminale, tips&amp;trick, Ubuntu <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/192/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/192/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/192/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=192&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2009/07/21/debian-e-derivati-completamento-automatico-avanzato-nel-terminale/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>gawk: semplice e potente linguaggio per processare dati testuali</title>
		<link>http://natonelbronx.wordpress.com/2009/07/20/gawk-semplice-e-potente-linguaggio-per-processare-dati-testuali/</link>
		<comments>http://natonelbronx.wordpress.com/2009/07/20/gawk-semplice-e-potente-linguaggio-per-processare-dati-testuali/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 21:13:00 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Software per Linux]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[awk]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[esempi]]></category>
		<category><![CDATA[testi]]></category>
		<category><![CDATA[manipolare]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[imparare]]></category>
		<category><![CDATA[tabelle]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=165</guid>
		<description><![CDATA[(rieccomi dopo mesi di nulla.. a casa malato e mi do da fare ) Quest&#8217;articolo fa parte di una serie di articoli sui tool GNU (e quindi Linux) per manipolare testi. L&#8217;esempio che si era visto in quell&#8217;articolo, con awk, è il seguente: cat sottotitoli.srt &#124; awk 'NR%2==1' &#62; sottotitoli-dispari.srt il cui scopo era rimuovere [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=165&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>(rieccomi dopo mesi di nulla.. a casa malato e mi do da fare <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<p>Quest&#8217;articolo fa parte di <a href="http://natonelbronx.wordpress.com/2007/12/02/manipolare-un-testo-con-sed-awk-e-le-espressioni-regolari/">una serie di articoli</a> sui tool GNU (e quindi Linux) per manipolare testi.</p>
<p>L&#8217;esempio che si era visto in quell&#8217;articolo, con awk, è il seguente:<br />
<code>cat sottotitoli.srt | awk 'NR%2==1' &gt; sottotitoli-dispari.srt</code></p>
<p>il cui scopo era rimuovere tutte le righe pari&#8230; fra poco sarà tutto più chiaro!</p>
<p><strong><em>awk</em></strong> è un altro software per la manipolazione dei testi, secondo il mio parere si adatta meglio a lavorare su testi con una struttura rigida, ad esempio divisi per colonne (tipo tabella), ogni elemento di questa &#8220;tabella&#8221; è chiamato &#8216;campo&#8217;. Per elaborare il risultato di molti comandi Linux questo strumento è comodissimo <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Per comprendere cosa intendo ecco un piccolo esempio che potete replicare facilmente aprendo un terminale:</p>
<blockquote><p><strong><code>$ cal</code></strong><br />
luglio 2009<br />
lu ma me gi ve sa do<br />
1  2  3  4  5<br />
6  7  8  9 10 11 12<br />
13 14 15 16 17 18 19<br />
20 21 22 23 24 25 26<br />
27 28 29 30 31</p></blockquote>
<p>Il comando <strong><em>cal</em></strong> senza parametri stampa il calendario del mese corrente (Luglio 2009 in questo caso).<br />
Vediamo cosa succede se diamo in pasto il risultato del comando cal ad awk.</p>
<blockquote><p><strong><code>$ cal | awk '{ print $3; }'</code></strong><br />
me<br />
3<br />
8<br />
15<br />
22<br />
29</p></blockquote>
<p>Quel che ho fatto qui è semplicissimo: eseguo il comando <strong><em>cal</em></strong>, quindi il risultato lo butto in pasto al comando <strong><em>awk</em></strong> (si ottiene grazie al pipe, ovvero la linea verticale &#8216;|&#8217;).<br />
il &#8220;programma&#8221; che viene fatto girare da awk è semplicemente: <code>{ print $3; }</code>. Ovvero: stampa la terza colonna (Mercoledì).</p>
<p>In realtà awk è un vero linguaggio di programmazione e quindi più potente, per certi versi, di sed: contiene funzioni richiamabili e permette di effettuare operazioni matematiche con i dati in elaborazione!</p>
<p>In questo breve tutorial impareremo il significato del comando visto qui sopra e cercherò di insegnarvi ad utilizzare awk in modo più approfondito: applicando pattern &#8220;per riga&#8221; ed effettuando operazioni su stringhe e numeri!</p>
<h2>Prerequisiti</h2>
<p>Per poter comprendere appieno questo tutorial è necessario che abbiate compreso e fatto un po&#8217; di pratica con le regular expression (o regex) di cui vi ho parlato <a href="http://natonelbronx.wordpress.com/2007/12/02/le-espressioni-regolari-regex-o-regexp/">qui</a>.<br />
Non sono richieste particolari esperienze di programmazione ma aiutano parecchio.</p>
<h2>il software si chiama gawk</h2>
<p>Si.. non <em>awk</em> ma <em><strong>g</strong>awk</em>! awk è il linguaggio, <em>gawk</em> è l&#8217;implementazione <strong>GNU</strong> del linguaggio!<br />
Cioè { print $3; } è un comando nel linguaggio awk che dice di stampare la terza colonna, mentre il software che esegue codice awk si chiama gawk in sistemi GNU/* come Linux.</p>
<h2>lanciare gawk</h2>
<p>Il manuale di gawk è molto ben scritto, anche se in inglese, e io ho imparato ad utilizzare awk semplicemente leggendo questo manuale e provando di volta in volta.</p>
<blockquote><p><strong><code>man gawk</code></strong></p></blockquote>
<p>le opzioni principali per lanciare gawk (per le altre guardate il manuale):</p>
<ul>
<li><code>-F fs</code> o <code>--field-separator fs</code> «  l&#8217;opzione del comando awk vi permette di specificare quali sono i caratteri che volete siano considerati come separatori di campo (se omessa verranno usati gli spazi e le tabulazioni) e indovinate un po? si può, volendo, indicare quali sono i separatori di campo con una espressione regolare (<a href="http://natonelbronx.wordpress.com/2007/12/02/le-espressioni-regolari-regex-o-regexp/">regex</a>)</li>
<li><code>-f script-file</code> o <code>--file script-file</code> « specifica un file di script awk invece che indicarlo dalla linea di comando tra apici</li>
</ul>
<p>awk si lancia con questa sintassi (notate gli apici prima e dopo i comandi):</p>
<blockquote><p><code>awk  '&lt;programma&gt;' nome-file-su-cui-lavorare</code></p>
<p><em>oppure</em></p>
<p><code>cat nome-file-su-cui-lavorare |  awk  '&lt;programma&gt;'</code></p>
<p><em>oppure</em></p>
<p><code>awk -f programma-awk.awk nome-file-su-cui-lavorare</code></p></blockquote>
<p>Se ad esempio vogliamo chiedere ad awk di usare la virgola come carattere di separazione dei campi (Field Separator, FS) possiamo invocare awk così:</p>
<blockquote><p><code>awk -F, '&lt;programma&gt;'</code></p></blockquote>
<p>esiste un caso particolare in cui questo non funziona: se cercate di impostare il SOLO carattere tabulazione (che si indica con &#8216;\t&#8217;) come FS non riuscirete a scriverlo in questo modo&#8230; dovrete usare questa scrittura:</p>
<blockquote><p><code>awk -F "\t" '&lt;programma&gt;'</code></p></blockquote>
<p>che poteva comunque essere utilizzata anche per la virgola o per passare una regex ad awk</p>
<p>un altro modo per fare la stessa cosa è impostare la variabile FS all&#8217;interno del programma così:</p>
<blockquote><p><code>awk 'BEGIN {FS = ","} { ... }'</code></p></blockquote>
<p>Questo metodo è più comodo se volete scrivere uno script invece che lanciare da linea di comando&#8230;</p>
<p>Inoltre con l&#8217;esempio vediamo 2 cose nuove: BEGIN e l&#8217;utilizzo di variabili (cioè contenitori di dati che possono cambiare durante l&#8217;esecuzione del codice).</p>
<p>Per chiarificare immaginate di avere questa riga di testo: &#8220;tizio,caio,sempronio&#8221; e di voler effettuare una separazione utilizzando la virgola anziché gli spazi&#8230; Otterreste quindi i campi &#8220;tizio&#8221;, &#8220;caio&#8221; e &#8220;sempronio&#8221;.</p>
<blockquote><p><strong><code>$ echo 'tizio,caio,sempronio' | gawk -F, '{ print "1=" $1 " - 2=" $2 " - 3=" $3; }'</code></strong><br />
1=tizio &#8211; 2=caio &#8211; 3=sempronio</p></blockquote>
<p>Con quest&#8217;esempio abbiamo anche visto come concatenare delle stringhe (del testo): quello che vuoi volete scrivere potete metterlo tra virgolette doppie&#8230; per concatenare più stringhe (metterle una dopo l&#8217;altra) è sufficiente elencarle separate da spazio!</p>
<h2>Struttura di base di un programma awk</h2>
<p>Il testo è suddiviso in record e campi: possiamo pensare ai record come le &#8220;righe&#8221; di un file di testo e ai &#8220;campi&#8221; come le sue &#8220;colonne&#8221;.<br />
Come abbiamo visto prima nell&#8217;esempio del calendario i campi sono separati automaticamente dove ci sono spazi, i record sono separati con degli &#8220;a capo&#8221;. Entrambe questi limitatori si possono cambiare modificando le variabil FS (Field separator, separatore di campo) e RS (Record Separator, separatore di record).</p>
<p>gawk legge un record alla volta, lo suddivide in campi e vi permette di lavorarci.</p>
<p>La struttura di un programma awk è la seguente:</p>
<blockquote><p><code>pattern1 { azioni }<br />
pattern2 { azioni }<br />
<em>function</em> nome(parametri) { azioni }<br />
</code></p></blockquote>
<p>I pattern selezionano dei record su cui verranno svolte delle azioni.<br />
Le funzioni sono comode quando dobbiamo ripetere le stesse operazioni più volte nelle nostre azioni.</p>
<p>Ora vedremo come si utilizzano le variabili in un programma awk, quindi cosa sono i pattern e come sfruttarli&#8230;<br />
Il tutto verrà supportato da esempi!</p>
<h2>Variabili</h2>
<p>Come in qualunque linguaggio di programmazione una variabile è un etichetta: un contenitore!<br />
Le variabili gawk possono contenere numeri o testo e awk si occupa automaticamente di convertire dall&#8217;uno all&#8217;altro all&#8217;occorrenza.</p>
<p>Dichiarare una variabile è semplice:</p>
<blockquote><p><code>numero = 12;<br />
testoNumero = "4";<br />
saluto = "ciao";<br />
nome = "daniele";<br />
concatenamento = testo " " nome; <em>/* ciao daniele */</em><br />
risultato = numero / testoNumero; <em>/* 3 */</em></code></p></blockquote>
<p>Le variabili, una volta che assumono un valore, sono utilizzabili ovunque nel programma awk: sono &#8220;globali&#8221;.</p>
<p>Ci sono alcune variabili &#8220;speciali&#8221; già definite da awk, ed alcune le abbiamo già usate:</p>
<ul>
<li>$1: primo campo del record</li>
<li>$2: secondo campo del record</li>
<li>$0: l&#8217;intero record</li>
<li>NF: (Number of Fields) numero di campi ($1, $2, &#8230;)</li>
<li>FS: (Field Separator) separatore di campo, può essere modificato durante l&#8217;esecuzione e cambia i valori delle variabili $1, $2, $3, &#8230;</li>
<li>NR: (Number of Records) numero di record processati (per semplicità pensatelo come il numero di riga per ora)</li>
<li>FNR: Numero del record corrente nel file (questo è effettivamente il numero di riga/record)</li>
<li>RS: (Record Separator) carattere separatore tra record (predefinito è l&#8217;a-capo)</li>
</ul>
<p>Le trovate tutte nel manuale di gawk.</p>
<p>Vediamo alcuni esempi:</p>
<blockquote><p>conta il numero di righe di un file di testo. (stesso risultato del comando <code>wc -l</code> di Linux):</p>
<p><strong><code>gawk '{numeroRighe = numeroRighe +1;} END { print numeroRighe; }'</code></strong></p>
<p>inserisce i numeri di riga di un file (1. prima riga, 2. seconda riga, ecc&#8230;):</p>
<p><strong><code>gawk '{ print FNR ". " $0;}'</code></strong></p></blockquote>
<p>Supponente poi di avere una file con una lista &#8220;nome: numero&#8221;:</p>
<blockquote><p>primo salto: 170<br />
secondo salto: 175<br />
terzo salto: 180</p></blockquote>
<p>si può facilmente calcolare e stampare una media con awk:</p>
<blockquote><p><code>BEGIN {<br />
FS = ":"; <em>/* imposto come separatore i 2 punti */</em><br />
}<br />
{<br />
conteggioRighe = conteggioRighe +1; <em>/* questo può anche essere scritto conteggioRighe++; */</em><br />
totale = totale + $2; <em>/* il secondo campo è quello dopo i due punti */</em><br />
print $0; <em>/* stampo tutta la riga invariata */</em><br />
}<br />
END {<br />
print "-----------"; <em>/* un separatore */</em><br />
print "media: " totale/conteggioRighe;<br />
}</code></p></blockquote>
<h3>vettori</h3>
<p>tra le variabili si possono anche definire vettori!</p>
<blockquote><p><code>mioArray[indice] = valore;<br />
print mioArray[indice];</code></p></blockquote>
<p>l&#8217;indice e il valore possono essere qualunque variabile: un numero o una stringa.<br />
Quindi questo è perfettamente legale:</p>
<blockquote><p><code>mioArray["febbre"] = 38;<br />
mioArray["vomito"] = "si purtroppo";<br />
mioArray[1] = "tutto chiaro?";</code></p></blockquote>
<h2>pattern di riga</h2>
<p>Vi siete chiesti il perché delle parentesi graffe? O perché BEGIN è stato scritto di fronte ad esse nell&#8217;ultimo esempio? Qui viene spiegato il perché.</p>
<p>Il linguaggio awk va definito in questo modo:</p>
<blockquote><p><code>BEGIN { comandi da eseguire all'inizio }<br />
PATTERN1 { comandi da eseguire per le righe che corrispondono al pattern 1 }<br />
PATTERN2 { comandi da eseguire per le righe che corrispondono al pattern 2 }<br />
END { comandi da eseguire alla fine}</code></p></blockquote>
<h3>Si ma cos&#8217;è un pattern?</h3>
<p>Il pattern è in sostanza qualcosa che dice ad awk su quali parti del testo lavorare!<br />
Il pattern può essere un espressione regolare, una espressione di una qualche relazione o una combinazione di queste cose!</p>
<p>Ad ogni pattern sono associate una o più azioni che vengono racchiuse tra parentesi graffe &#8216;{ }&#8217;. Se l&#8217;azione viene omessa questa corrisponde all&#8217;azione &#8216;{print}&#8217; che semplicemente stampa l&#8217;intero pattern senza azioni su di esso!</p>
<p>Quindi un pattern può essere:</p>
<ul>
<li>una regex: <strong>/regex/</strong> { fai qualcosa per le righe che soddisfano la regular expression }</li>
<li>un confronto <strong>NR%2 == 1</strong> { fai qualcosa con i numeri di riga dispari }: NR è la variabile &#8220;numero di riga&#8221;, <strong>NR%2</strong> è il <strong>modulo 2</strong>, cioè il resto della divisione per 2.</li>
</ul>
<p>più pattern possono essere messi in OR/AND/NOT. Cioè ad esempio si può dire che si vuole effettuare un particolare comando per le righe pari che cominciano con dei numeri mettendo in AND un confronto (righe pari) e una regolar expression (cominciano con un numero):</p>
<blockquote><p><code>NR%2==0 <strong>&amp;&amp;</strong> /^[0-9].*/ { comandi da applicare a righe pari che cominciano con un numero }</code></p>
<p><code><strong>!</strong> /topo/ { fai qualcosa con le righe che <strong>NON</strong> contengono la parola "topo" }</code></p></blockquote>
<p>Ci sono due pattern speciali: BEGIN e END. Questi pattern ignorano i dati d&#8217;ingresso (il testo).<br />
Con BEGIN la parte &#8220;azione&#8221; viene eseguita tutta PRIMA di leggere un qualsiasi input.<br />
Con END la parte &#8220;azione&#8221; viene eseguita DOPO aver finito di processare l&#8217;intero testo in input.</p>
<p>Nell&#8217;esempio con il file dei sottotitoli abbiamo utilizzato solamente il pattern indicando che volevamo awk lavorasse solo sulle righe dispari.</p>
<h2>le funzioni</h2>
<p>gawk vi mette a disposizione diverse funzioni già pronte, qui ve ne elenco qualcuna ma vi rimando al manuale di gawk per una lista completa.</p>
<ul>
<li><strong>print(<em>stringa</em>)</strong>: l&#8217;abbiamo già vista, stampa a video delle stringhe</li>
<li><strong>lenght(<em>stringa</em>)</strong>: restituisce la lunghezza di una stringa</li>
<li><strong>tolower(<em>stringa</em>)</strong>: restituisce la stringa in caratteri minuscoli</li>
<li><strong>toupper(<em>stringa</em>)</strong>: restituisce la stringa in caratteri maiuscoli</li>
<li><strong>int(<em>numero</em>)</strong>: restituisce l&#8217;intero del numero (toglie i decimali)</li>
<li><strong>cos(<em>numero</em>)</strong>: calcola il coseno di un numero</li>
<li><strong>sqrt(<em>numero</em>)</strong>: calcola la radice quadrata di un numero</li>
<li><strong>system(<em>stringa di comando</em>)</strong>: esegue un comando Linux</li>
</ul>
<p>supponiamo di voler rendere più evidenti tutte le righe di un testo con la scritta &#8220;important&#8221; all&#8217;interno.<br />
Solo le righe che contentono la parola &#8220;important&#8221; sono state convertite in TUTTO MAIUSCOLE, le altre sono state stampate così come sono (notare il ! di NOT davanti alla seconda regex):</p>
<blockquote><p><code>awk '/important/ { print toupper($0);} !/important/ { print $0; }'</code></p></blockquote>
<p>nuove funzioni possono essere definite anche da voi seguendo la sintassi, vediamo una modifica del comando precedente:</p>
<blockquote><p><code>awk '/important/ { print maiuscolo($0);} !/important/ { print $0; } function maiuscolo(stringa) { return toupper(stringa); }'</code></p></blockquote>
<h2>Cicli e condizionali</h2>
<p>Come tutti i linguaggi di programmazione anche awk mette a disposizione dei comandi per gestire il flusso di operazioni!</p>
<ul>
<li><strong>if (</strong><em>condizione</em><strong>) {</strong> <em>azione</em> <strong>} else {</strong> <em>altra azione</em> <strong>}</strong></li>
<li><strong>while (</strong><em>condizione</em><strong>) {</strong> <em>azione da ripetere</em> <strong>}</strong></li>
<li><strong>for (</strong><em>inizializzazione</em><strong>;</strong> <em>condizione</em><strong>;</strong> <em>avanzamento</em><strong>) {</strong> <em>azione da ripetere</em> <strong>}</strong></li>
<li><strong>for (</strong><em>indice</em> <strong>in</strong> <em>array</em><strong>) {</strong> <em>azioni con gli elementi di un array</em> <strong>}</strong></li>
</ul>
<p>Per chi ha famigliarità con un linguaggio di programmazione non serve aggiungere altro a questa lista, per gli altri non sarà così ovvia&#8230;<br />
Mi limiterò a fare qualche esempio per lasciar &#8220;intuire&#8221; come utilizzarli ma non è presunzione di questo tutorial insegnare a programmare a chi non lo ha mai fatto:</p>
<p>Riprendiamo l&#8217;esempio con i salti di prima (notate in fondo il comando if):</p>
<blockquote><p><code><br />
BEGIN {<br />
FS = ":"; <em>/* imposto come separatore i 2 punti */</em><br />
}<br />
{<br />
conteggioRighe = conteggioRighe +1; <em>/* questo può anche essere scritto conteggioRighe++; */</em><br />
totale = totale + $2; /* il secondo campo è quello dopo i due punti */<br />
print $0; /* stampo tutta la riga invariata */<br />
}<br />
END {<br />
print "-----------"; <em>/* un separatore */</em><br />
calcoloMedia = totale/conteggioRighe;<br />
<strong>if (calcoloMedia &lt; 120) { print "media: CHE SCHIAPPA!!!"; }<br />
else { print "media: " totale/conteggioRighe; }</strong><br />
}</code></p></blockquote>
<p>Stavolta se la media di altezza per il salto in alto è inferiore a 120 verrà stampato <em>CHE SCHIAPPA!!!</em> <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Come altro esempio immaginate di avere questo file:</p>
<blockquote><p>salto in alto: 190<br />
salto in alto: 174<br />
salto in lungo: 5.3<br />
100 metri: 9.5<br />
salto in lungo: 4.8<br />
salto in alto: 193<br />
100 metri: 10.2</p></blockquote>
<p>Ora vedremo, come ultimo esempio, come calcolare le medie di tutte le varie discipline in un colpo solo:</p>
<blockquote><p><code><br />
BEGIN {<br />
FS = ":"; <em>/* imposto come separatore i 2 punti */</em><br />
}<br />
{<br />
<strong>conteggioRighe[$1]++;</strong><br />
<strong>totale[$1] = totale[$1] + $2;</strong> <em>/* l'indice è il nome della disciplina ($1), il valore il risultato ($2) */</em><br />
print $0; <em>/* stampo tutta la riga invariata */</em><br />
}<br />
END {<br />
print "-----------"; <em>/* un separatore */</em><br />
print "MEDIE:";<br />
<em>/* per ogni indice dell'array stampa una media */</em><br />
<strong>for (indice in totale) { print indice ": " totale[indice]/conteggioRighe[indice]; }</strong><br />
}</code></p></blockquote>
<p>ecco quello che si ottiene eseguendo questo programmino:</p>
<blockquote><p><strong><code>$ awk -f programmino.awk attletica.txt </code></strong><br />
salto in alto: 190<br />
salto in alto: 174<br />
salto in lungo: 5.3<br />
100 metri: 9.5<br />
salto in lungo: 4.8<br />
salto in alto: 193<br />
100 metri: 10.2<br />
&#8212;&#8212;&#8212;&#8211;<br />
MEDIE:<br />
salto in alto: 185.667<br />
100 metri: 9.85<br />
salto in lungo: 5.05</p></blockquote>
<p>sono disponibile per domande <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
se vi sembra ci siano parti poco chiare fatemelo notare e farò del mio meglio per renderle più chiare</p>
<p>ps: scusate ho fatto casini con il copia incolla.. ora dovrebbe essere a posto</p>
<br />Pubblicato in: GNU, Guide, Linux, Software per Linux Tagged: awk, esempi, GNU, Guide, howto, imparare, manipolare, programmazione, regex, tabelle, testi <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=165&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2009/07/20/gawk-semplice-e-potente-linguaggio-per-processare-dati-testuali/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Debian sposa FreeBSD</title>
		<link>http://natonelbronx.wordpress.com/2009/04/06/debian-sposa-freebsd/</link>
		<comments>http://natonelbronx.wordpress.com/2009/04/06/debian-sposa-freebsd/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 11:01:33 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segnalazioni]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=229</guid>
		<description><![CDATA[Ieri l&#8217;annuncio: Debian ha aggiunto alle architetture distribuite fin ora (i368, amd64, &#8230;)  due nuove architetture: kfreebsd-i386 e kfreebsd-amd64. In altre parole Debian non è più, da ieri, una distribuzione esclusivamente Linux. Stiamo infatti parlando di un sistema GNU/FreeBSD dove quest&#8217;ultimo sostituisce il kernel del pinguino. Non ho provato la distro ma mi limito a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=229&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ieri l&#8217;<a title="Debian + FreeBSD" href="http://lists.debian.org/debian-devel-announce/2009/04/msg00001.html">annuncio</a>: Debian ha aggiunto alle architetture distribuite fin ora (i368, amd64, &#8230;)  due nuove architetture: kfreebsd-i386 e kfreebsd-amd64.</p>
<p>In altre parole Debian non è più, da ieri, una distribuzione esclusivamente Linux. Stiamo infatti parlando di un sistema GNU/FreeBSD dove quest&#8217;ultimo sostituisce il kernel del pinguino.</p>
<p>Non ho provato la distro ma mi limito a segnalare la notizia che è passata nella mailing list del mio Lug proprio oggi.</p>
<p>L&#8217;annuncio linkato spiega che le due nuove architetture (che sarebbe meglio chiamare sistemi operativi visto che il kernel cambia) sono al momento in Experimental e Unstable e un ristrettissimo numero di package è disponibile al momento (solo lo stretto necessario).</p>
<p>Con questo rompo un lungo silenzio sul mio blog&#8230; Un giorno ritornerò a scrivere <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />Pubblicato in: Debian, FreeBSD, Linux, Segnalazioni Tagged: Debian, FreeBSD, Linux <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=229&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2009/04/06/debian-sposa-freebsd/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>Meglio il silenzio&#8230;</title>
		<link>http://natonelbronx.wordpress.com/2009/02/16/meglio-il-silenzio/</link>
		<comments>http://natonelbronx.wordpress.com/2009/02/16/meglio-il-silenzio/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 21:51:30 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sfoghi]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=227</guid>
		<description><![CDATA[Da Sabato (14 Febbraio 2009) ad oggi circa un centinaio di blog su Linux hanno annunciato l&#8217;uscita di Debian Lenny come nuova stable e l&#8217;introduzione a Squeeze come nuova testing. 3 giorni di notizie tutte uguali. La maggior parte senza uno straccio di approfondimenti, tutti sui soliti aggregatori di blog su Linux. Mi chiedo che [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=227&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Da Sabato (14 Febbraio 2009) ad oggi circa un centinaio di blog su Linux hanno annunciato l&#8217;uscita di Debian <em>Lenny</em> come nuova stable e l&#8217;introduzione a <em>Squeeze</em> come nuova testing.</p>
<p>3 giorni di notizie tutte uguali. La maggior parte senza uno straccio di approfondimenti, tutti sui soliti aggregatori di blog su Linux.</p>
<p>Mi chiedo che senso ha.</p>
<p>Ma li seguite gli aggregatori su cui voi stessi scrivete? Ma vi sarà venuto il dubbio che se tutti dicono la stessa cosa un altro post uguale non fa che buttare altra immondizia sul web?!?</p>
<p>La blogosfera italiana è perlopiù scialba. La maggior parte dei &#8220;blogger&#8221; che scrive cose inutili, segue la moda, parla senza sapere, non approfondisce una mazza e si lancia su qualunque flame possibile e/o immaginabile; la riflessione personale e le idee sono ridotte al copia incolla con riadattamenti di altri blog, stranieri o meno.</p>
<p>Ci sta anche ogni tanto un post inutile, ma qui è la regola!</p>
<p>Voi che avete annunciato Debian Lenny, spiegatemi che utilità pensavate che avesse un tale annuncio quando c&#8217;erano già altri mille post identici al vostro? Perché perdete il vostro tempo a riscrivere quel che ha già scritto un altro?</p>
<p>Fate come me.. se non avete nulla di interessante da dire, o non avete il tempo di documentarvi per poter dire qualcosa di interessante o non ne avete la voglia&#8230;</p>
<p>E allora da bravi ripetete con me</p>
<p>&#8220;Meglio il silenzio&#8230;&#8221;</p>
<p>&#8220;Meglio il silenzio&#8230;&#8221;</p>
<p>&#8220;Meglio il silenzio&#8230;&#8221;</p>
<br />Pubblicato in: Linux, Sfoghi  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=227&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2009/02/16/meglio-il-silenzio/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>I miei talk al Linux Day 2008 &#8211; BiLUG Biella</title>
		<link>http://natonelbronx.wordpress.com/2008/10/27/i-miei-talk-al-linux-day-2008-bilug-biella/</link>
		<comments>http://natonelbronx.wordpress.com/2008/10/27/i-miei-talk-al-linux-day-2008-bilug-biella/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 08:01:49 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[Alfresco]]></category>
		<category><![CDATA[Gimp]]></category>
		<category><![CDATA[GNU]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux day]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=212</guid>
		<description><![CDATA[Ho fatto un&#8217;introduzione a Gimp e una panoramica delle funzionalità di Alfresco. Le mie due presentazioni potete scaricarle qui. Probabilmente presto si potrà scaricare tutto il materiale del Linux Day 2008 di Biella sul sito del BiLUG. Ringrazio chi mi ha ascoltato. Pubblicato in: Alfresco, Gimp, GNU, Linux Tagged: Alfresco, Gimp, linux day<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=212&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ho fatto un&#8217;introduzione a Gimp e una panoramica delle funzionalità di Alfresco.</p>
<p>Le mie due presentazioni potete scaricarle <a title="Presentazioni Gimp/Alfresco LinuxDay2008" href="http://www.mediafire.com/file/wzvb13h5hnm/PresentazioniLinuxDay2008.zip">qui</a>.</p>
<p>Probabilmente presto si potrà scaricare tutto il materiale del Linux Day 2008 di Biella sul sito del <a title="Biella Linux User Group" href="http://www.bilug.it">BiLUG</a>.</p>
<p>Ringrazio chi mi ha ascoltato.</p>
<br />Pubblicato in: Alfresco, Gimp, GNU, Linux Tagged: Alfresco, Gimp, linux day <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=212&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2008/10/27/i-miei-talk-al-linux-day-2008-bilug-biella/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenGL 3.0 uccide OpenGL e le speranze degli utenti Mac/Linux</title>
		<link>http://natonelbronx.wordpress.com/2008/08/17/opengl-30-uccide-opengl-e-le-speranze-degli-utenti-maclinux/</link>
		<comments>http://natonelbronx.wordpress.com/2008/08/17/opengl-30-uccide-opengl-e-le-speranze-degli-utenti-maclinux/#comments</comments>
		<pubDate>Sun, 17 Aug 2008 20:30:18 +0000</pubDate>
		<dc:creator>mastro</dc:creator>
				<category><![CDATA[ATI]]></category>
		<category><![CDATA[DirectX]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Intel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linuxgamers]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[Segnalazioni]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[giochi]]></category>
		<category><![CDATA[opengl 3.0]]></category>

		<guid isPermaLink="false">http://natonelbronx.wordpress.com/?p=203</guid>
		<description><![CDATA[È con grande tristezza e con un po&#8217; di ritardo che oggi vi annuncio l&#8217;uscita delle tanto attese OpenGL 3.0. Vi ho parlato di come Direct3D di microsoft avesse vinto la battaglia con OpenGL in passato. Una storia da cui OpenGL esce sconfitta ma a testa alta. Oggi le cose stanno ben diversamente da allora! [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=203&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>È con grande tristezza e con un po&#8217; di ritardo che oggi vi annuncio l&#8217;uscita delle tanto attese OpenGL 3.0.</p>
<p><a title="OpenGL vs DirectX" href="http://natonelbronx.wordpress.com/2007/03/10/storia-di-un-ingiustizia-che-paghiamo-tutti-opengl-vs-directx/">Vi ho parlato</a> di come Direct3D di microsoft avesse vinto la battaglia con OpenGL in passato. Una storia da cui OpenGL esce sconfitta ma a testa alta.</p>
<p>Oggi le cose stanno ben diversamente da allora!</p>
<p>OpenGL 3.0 <strong>era</strong> la speranza degli utenti Linux e Mac ma non solo! Migliaia di sviluppatori di giochi e applicazioni 3D attendevano questo rilascio che prometteva importanti cambiamenti strutturali alle specifiche!</p>
<p>L&#8217;ARB <a title="le promesse di OpenGL 3.0" href="http://scriptionary.com/blog/2008/05/15/why-opengl-30-is-important/">aveva promesso</a>, ad esempio, un&#8217;API orientata agli oggetti, seppur ancora basata su C. Un rifacimento quasi completo della struttura e molte altre cose.</p>
<p>OpenGL 3.0 avrebbe dovuto uscire molto tempo fa ma la sua uscita è stata rimandata più volte. Chiedendo informazioni nel canale ufficiale di OpenGL si poteva essere, con egual probabilità, ignorati o invitati a &#8220;<em>non rompere i maroni, quando esce esce! Guarda il sito</em>&#8220;.</p>
<p>Ebbene non ho più &#8220;rotto i maroni&#8221;, fiducioso. Guardando oggi il sito di opengl effettivamente <a title="annuncio dell'uscita di OpenGL 3.0" href="http://www.khronos.org/news/press/releases/khronos_releases_opengl_30_specifications_to_support_latest_generations_of/">un bell&#8217;annuncio</a> indica che la specifica OpenGL 3.0 è pronta ed è <a title="specifiche OpenGL" href="http://www.khronos.org/opengl">liberamente consultabile e scaricabile</a>.</p>
<p>Il problema è che quest&#8217;API che doveva sbaragliare Direct3D di microsoft surclassando DirectX10 si è invece rivelata un&#8217;immensa delusione!</p>
<p><strong>La maggior parte delle modifiche promesse non sono state implementate.</strong></p>
<p><strong>Capiamoci!</strong> OpenGL 3.0 implementa lo stato dell&#8217;arte delle schede video! Quindi <strong>è pari a DirectX10</strong> (direct3d), e <strong>forse anche superiore</strong>, per quanto riguarda le feature implementabili! Ci sono i Vertex Shader, gli shader sono stati migliorati, vi sono diverse altre caratteristiche delle più moderne schede video. <strong>Però</strong> la release <strong>non ha nulla di radicalmente diverso da OpenGL 2.1</strong>. <a title="esempio" href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;Number=243195&amp;Main=45784#Post243195">Sono in molti</a> a dire che poteva essere taggata OpenGL 2.2 ed uscire molto molto tempo fa!</p>
<p>Gli sviluppatori che hanno tanto atteso la riscrittura delle API sono <strong><a title="forum di discussione su OpenGL 3.0" href="http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;Number=243193&amp;fpart=1">DECISAMENTE</a> <a title="forum non ufficiale" href="http://www.gamedev.net/community/forums/topic.asp?topic_id=504547&amp;PageSize=25&amp;WhichPage=1">INCAZZATI</a></strong>, altri semplicemente amareggiati o delusi.</p>
<p>A cosa è dovuta ufficialmente questa scelta? Apparentemente <strong>non si è voluto rompere la compatibilità con alcune applicazioni CAD</strong>. Ebbene si! OpenGL è ancora leader nel campo CAD e l&#8217;ARB non ha voluto rischiare di perdere questa leadership: ha preferito abbandonare ogni possibilità di attirare il mercato videoludico; mercato più avanzato tecnologicamente e caratterizzato da una rapida evoluzione.</p>
<p>Resterà quindi DirectX di microsoft a far strada sui videogiochi.. Ovviamente solo sui sistemi operativi redmond.</p>
<p>L&#8217;ARB dimostra <strong>incapacità a prendere decisioni importanti</strong>, <strong>sordità alla community</strong> di sviluppatori, atteggiamento non lungimirante e <strong>senza progetti per il futuro</strong> se non quelli di mantenere le cose come stanno ora. Si rassegna a seguire microsoft DirectX con qualche mese di ritardo invece di provare a trascinare il mercato dell&#8217;hardware grafico con innovazioni e scelte importanti.</p>
<p>Questo significa che le speranze per gli utenti non-windows come me di poter un giorno giocare nel proprio sistema operativo si spengono tristemente.</p>
<p>Mi restano solo alcune domande a cui non so dare risposta.</p>
<p><strong>Perché rimandare così a lungo se poi non è stata riscritta tutta la API?</strong> Almeno potevano rilasciare subito e accaparrarsi così parte del mercato nel passaggio DirectX10/Vista. Scelta strategica suicida?</p>
<p><strong>Perché rilasciare l&#8217;11 di agosto in assoluto silenzio?</strong> A pochi giorni da ferragosto, quando molti sono in vacanza, senza un minimo di pubblicità o un qualche tentativo far notizia?!? A che gioco stanno giocando?</p>
<p><strong>Perché non rispondono alle critiche se non per chiedere di moderare il linguaggio?</strong> È come se &#8220;se lo aspettassero&#8221; e avessero deciso in anticipo di tenere questa linea.</p>
<p>A questo punto aveva più senso creare un API apposita per i giochi e lasciare che i CADisti utilizzassero l&#8217;API retro-compatibile e vecchia.</p>
<p>Vorrei tanto poter dar risposta alle mie domande ipotizzando che dietro a tutti ci sia stata Microsoft ma non penso che questa volta le si possa dare colpa.</p>
<p>Sono amareggiato.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/natonelbronx.wordpress.com/203/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/natonelbronx.wordpress.com/203/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/natonelbronx.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/natonelbronx.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/natonelbronx.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=natonelbronx.wordpress.com&amp;blog=585625&amp;post=203&amp;subd=natonelbronx&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://natonelbronx.wordpress.com/2008/08/17/opengl-30-uccide-opengl-e-le-speranze-degli-utenti-maclinux/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/910585b28fc9a512827294afad43bbe4?s=96&#38;d=wavatar&#38;r=X" medium="image">
			<media:title type="html">mastro</media:title>
		</media:content>
	</item>
	</channel>
</rss>
