<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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" version="2.0">

<channel>
	<title>NectarisLab</title>
	
	<link>http://lab.marenectaris.net</link>
	<description>Laboratorio informatico di ricerca e sviluppo</description>
	<pubDate>Sun, 14 Dec 2008 11:30:40 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/nectarislab" type="application/rss+xml" /><item>
		<title>Miglioriamo il funzionamento dell’audio su Gnome in Fedora 10</title>
		<link>http://lab.marenectaris.net/20081214/miglioriamo-il-funzionamento-dellaudio-su-gnome-in-fedora-10/</link>
		<comments>http://lab.marenectaris.net/20081214/miglioriamo-il-funzionamento-dellaudio-su-gnome-in-fedora-10/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 11:18:07 +0000</pubDate>
		<dc:creator>Giulio A.</dc:creator>
		
		<category><![CDATA[GNU/Linux tools]]></category>

		<category><![CDATA[Gnome]]></category>

		<category><![CDATA[ALSA]]></category>

		<category><![CDATA[default.pa]]></category>

		<category><![CDATA[fedora 10]]></category>

		<category><![CDATA[pulseaudio]]></category>

		<guid isPermaLink="false">http://lab.marenectaris.net/?p=40</guid>
		<description><![CDATA[L&#8217;installazione di una nuova versione di Fedora porta con sè, praticamente ogni volta, una serie di microcambiamenti nella gestione spicciola del sistema. Utilizzando Gnome come desktop environment predefinito, questi microcambiamenti si spargono a pioggia anche nel suo funzionamento e nel suo comportamento, e possono risultare in un sistema che paradossalmente funziona peggio della versione precedente.
A [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">L&#8217;installazione di una nuova versione di <strong>Fedora</strong> porta con sè, praticamente ogni volta, una serie di microcambiamenti nella gestione spicciola del sistema. Utilizzando <strong>Gnome</strong> come desktop environment predefinito, questi microcambiamenti si spargono a pioggia anche nel suo funzionamento e nel suo comportamento, e possono risultare in un sistema che paradossalmente funziona peggio della versione precedente.</p>
<p style="text-align: justify;">A quel punto, <strong>armati di Google e di pazienza</strong>, si comincia a intervenire nel sistema e nei file di configurazione per migliorare progressivamente e riportare al top il funzionamento del tutto.</p>
<p style="text-align: justify;">Nella mia sala macchine, <strong>la nuova distro di Fedora 10</strong> appena installata ha presentato degli inconvenienti nella gestione del sonoro: l&#8217;audio in ambiente <strong>Gnome</strong>, gestito da <a href="http://www.pulseaudio.org/" target="_blank"><strong>Pulseaudio</strong></a> al di sopra del layer <a href="http://www.alsa-project.org/main/index.php/Main_Page" target="_blank"><strong>ALSA</strong></a>, non funzionava al meglio. I flussi audio venivano infatti riprodotti a volte con problemi di buffering che si evidenziavano in un ascolto gracchiante, con rumori di sottofondo, ed echi fastidiosi. Ma anche <strong>Cinelerra</strong> si rifiutava di funzionare correttamente, a volte perdendo addirittura la capacità di riprodurre l&#8217;audio, per esempio quando <strong>Mozilla Firefox</strong> stava contemporaneamente accedendo alla risorsa audio per un filmato o un video.</p>
<p style="text-align: justify;">Se anche voi avete lo stesso problema, potreste sperimentare la soluzione presentata <strong><a href="http://forums.fedoraforum.org/showthread.php?p=1126172#post1126172" target="_blank">in questa pagina</a></strong>, nel post iniziale. Si tratta sostanzialmente di modificare una linea nel file di configurazione di <strong>Pulseaudio</strong>, ed installare, eventualmente, i pacchetti indicati.</p>
<p style="text-align: justify;">Nella mia sala macchine questa soluzione sembra funzionare. Finalmente, l&#8217;audio è tornato a funzionare in maniera decorosa, e senza fastidiosi lock trasversali dell&#8217;hardware audio tra varie applicazioni.</p>
<p class="akst_link"><div class="testo_sharethis" align="right"><a href="http://lab.marenectaris.net/?p=40&amp;akst_action=share-this"  title="Invia per e-mail, segnala al social networking, etc." id="akst_link_40" class="akst_share_link" rel="nofollow">Condividi</a></div>
</p>]]></content:encoded>
			<wfw:commentRss>http://lab.marenectaris.net/20081214/miglioriamo-il-funzionamento-dellaudio-su-gnome-in-fedora-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cinelerra e Rpmfusion</title>
		<link>http://lab.marenectaris.net/20081107/cinelerra-e-rpmfusion/</link>
		<comments>http://lab.marenectaris.net/20081107/cinelerra-e-rpmfusion/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 09:58:20 +0000</pubDate>
		<dc:creator>Giulio A.</dc:creator>
		
		<category><![CDATA[GNU/Linux tools]]></category>

		<category><![CDATA[cinelerra]]></category>

		<category><![CDATA[libx264.so.58]]></category>

		<category><![CDATA[problemi di dipendenze]]></category>

		<category><![CDATA[rpmfusion]]></category>

		<guid isPermaLink="false">http://lab.marenectaris.net/?p=25</guid>
		<description><![CDATA[RPM Fusion è una fresca iniziativa del gruppo che gestisce l&#8217;aggiornamento dei pacchetti software di Fedora e Red Hat Enterprise Linux. Di fatto, è un merging, cioè proprio una fusione, dei packages repository più importanti del sistema di updating di questi due sistemi operativi: livna, freshrpms e dribble.
L&#8217;installazione dei repository rpmfusion può creare problemi di [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://rpmfusion.org/" target="_blank">RPM Fusion</a> è una fresca iniziativa del gruppo che gestisce l&#8217;aggiornamento dei pacchetti software di <a href="http://fedoraproject.org/" target="_blank">Fedora</a> e <a href="http://www.redhat.com/rhel/" target="_blank">Red Hat Enterprise Linux</a>. Di fatto, è un merging, cioè proprio una fusione, dei packages repository più importanti del sistema di updating di questi due sistemi operativi: <strong>livna, freshrpms e dribble</strong>.</p>
<p style="text-align: justify;">L&#8217;installazione dei repository rpmfusion può creare problemi di dipendenze con <a href="http://cinelerra.org/" target="_blank">Cinelerra</a>, se questo pacchetto è stato installato dal repository <a href="http://rpms.kwizart.net/" target="_blank">kwizart</a>. Questo perchè tale pacchetto si ancora ad una dipendenza della <strong>libx264.so.58</strong> che viene superata dalla nuova versione liberata da rpmfusion, che è la <strong>libx264.so.60</strong>. Questo meccanismo di dipendenza blocca l&#8217;updating dei pacchetti correlati alla libreria, che sono praticamente tutti i coltellini svizzeri del managing audio/video: <strong>mplayer, mencoder, ffmpeg,</strong> ecc, di fatto interrompendo il processo di aggiornamento per problemi di dipendenze.</p>
<p style="text-align: justify;">Per aggirare il problema, potete provare a seguire questa procedura, di cui chiaramente non mi assumo alcuna responsabilità nel risultato, <strong>responsabilità che resta in toto a chi la metterà in pratica</strong>. Nella mia sala macchine ha funzionato, e se avete il medesimo problema, ve la comunico sperando che possa funzionare anche per voi. Vi consiglio caldamente di effettuare un backup preventivo di tutti i files coinvolti nell&#8217;operazione. Diciamo che questa è una procedura rilasciata in GPL 2.0&#8230;&#8230;</p>
<p style="text-align: justify;">Questa procedura è eventualmente da sperimentare <span style="text-decoration: underline;"><strong>se e solo se</strong></span> il vostro sistema ha tutte queste caratteristiche:</p>
<ul>
<li>State usando Fedora 9.</li>
<li>Avete installato Cinelerra via kwizart</li>
<li>Avete un&#8217;architettura hardware a 32 bit</li>
<li>Avete installato i repository Rpmfusion</li>
<li>Avete problemi di updating a seguito dell&#8217;installazione del repository Rpmfusion per conflitto di dipendenze con la libreria <strong>libx264.so.58</strong></li>
</ul>
<p style="text-align: justify;"><span style="text-decoration: underline;"><strong>Se anche solo una tra esse non rispecchia la configurazione del vostro sistema, è sconsigliabile seguire questa procedura</strong></span>. Oppure, prendete spunto da essa per effettuare le operazioni opportune nel vostro sistema.</p>
<p style="text-align: justify;">Prima di tutto, effettuate una copia di backup della libreria <strong>libx264.so.58</strong> nel vostro sistema. La libreria è nella directory <strong>/usr/lib</strong>.</p>
<p style="text-align: justify;">Poi, rimuovete l&#8217;installazione di Cinelerra con il comando</p>
<pre style="text-align: justify;">yum remove cinelerra</pre>
<p style="text-align: justify;">Successivamente, eseguite il normale updating del sistema con il classico comando</p>
<pre style="text-align: justify;">yum update</pre>
<p style="text-align: justify;">Per reinstallare Cinelerra, non potete più usare la versione rilasciata da kwizart, perchè entra in conflitto con i nuovi pacchetti installati ed aggiornati da Rpmfusion. Per cui, scaricate direttamente nel vostro sistema il pacchetto rpm rilasciato da freshrpms per l&#8217;architettura hardware i386, prelevandolo dal seguente collegamento:</p>
<p style="text-align: justify;"><a href="http://rpmfind.net/linux/RPM/freshrpms/fedora/8/cinelerra/cinelerra-2.1-0.14.20080214.fc8.i386.html" target="_blank">http://rpmfind.net/linux/RPM/&#8230;/cinelerra-2.1-0.14.20080214.fc8.i386.html</a></p>
<p style="text-align: justify;">Non è importante che il pacchetto sia marcato per fedora 8.</p>
<p style="text-align: justify;">Una volta scaricato il pacchetto, accedete alla vostra macchina come utente root ed installate il pacchetto con il seguente comando:</p>
<pre style="text-align: justify;">rpm -ivH --nodeps cinelerra-2.1-0.14.20080214.fc8.i386.rpm</pre>
<p style="text-align: justify;">L&#8217;opzione <strong>&#8211;nodeps</strong> forza l&#8217;installazione del pacchetto software a prescindere dalle dipendenze, superando l&#8217;inconveniente della <strong>libx264.so.58</strong>.</p>
<p style="text-align: justify;">Poi, <strong>create un link simbolico</strong> della libx264.so.58 all&#8217;ultima versione di libx264.so presente nella vostra /usr/lib, oppure ripristinate la libx264.so.58 all&#8217;interno della /usr/lib prelevandola dal backup che avete fatto precedentemente; scegliete quello che è meglio per voi, purchè tale scelta <strong>ripristini in qualche modo</strong> una libx264.so.58 nella /usr/lib.</p>
<p style="text-align: justify;">Questa procedura non imposta automaticamente, a differenza di quella via kwizart, il parametro <strong>shmmax</strong> del kernel a 0&#215;7fffffff; dato che Cinelerra richiede questa impostazione del kernel per poter funzionare al meglio, lo faremo noi direttamente inserendo le seguenti linee di codice nel file <strong>/etc/sysctl.conf</strong>:</p>
<pre style="text-align: justify;"># Espando memoria shared per cinelerra
kernel.shmmax = 0x7fffffff</pre>
<p style="text-align: justify;">Naturalmente, questa impostazione verrà attivata a partire dal successivo reboot.</p>
<p style="text-align: justify;">Il gioco è fatto. I repository sono aggiornati, e Cinelerra dovrebbe essere operativo e funzionante con la nuova installazione.</p>
<p style="text-align: justify;">Buona creazione con Cinelerra!</p>
<p class="akst_link"><div class="testo_sharethis" align="right"><a href="http://lab.marenectaris.net/?p=25&amp;akst_action=share-this"  title="Invia per e-mail, segnala al social networking, etc." id="akst_link_25" class="akst_share_link" rel="nofollow">Condividi</a></div>
</p>]]></content:encoded>
			<wfw:commentRss>http://lab.marenectaris.net/20081107/cinelerra-e-rpmfusion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ah, Cinelerra…</title>
		<link>http://lab.marenectaris.net/20080917/ah-cinelerra/</link>
		<comments>http://lab.marenectaris.net/20080917/ah-cinelerra/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 12:22:52 +0000</pubDate>
		<dc:creator>Giulio A.</dc:creator>
		
		<category><![CDATA[GNU/Linux tools]]></category>

		<category><![CDATA[cinelerra]]></category>

		<category><![CDATA[video editing]]></category>

		<guid isPermaLink="false">http://lab.marenectaris.net/?p=20</guid>
		<description><![CDATA[Cinelerra è un editor video non lineare multitraccia.
Nel panorama delle applicazioni a disposizione nel mondo GNU/Linux per la categoria dell&#8217;editing video, dopo svariate prove su svariati applicativi proposti dalla community, alla fine Cinelerra resta il migliore che abbia testato, e quello che uso abitualmente, anche in questo momento, per il montaggio video.
La complessità dell&#8217;interfaccia grafica [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://cinelerra.org" target="_blank">Cinelerra</a> è un <strong>editor video non lineare multitraccia</strong>.</p>
<p style="text-align: justify;">Nel panorama delle applicazioni a disposizione nel mondo GNU/Linux per la categoria dell&#8217;<strong>editing video</strong>, dopo svariate prove su svariati applicativi proposti dalla community, alla fine <strong>Cinelerra</strong> resta il migliore che abbia testato, e quello che uso abitualmente, anche in questo momento, per il montaggio video.</p>
<p style="text-align: justify;">La complessità dell&#8217;interfaccia grafica è un ostacolo solo apparente alla funzionalità dell&#8217;applicativo: basta seguire uno tra i molti tutorial disponibili su Internet, o leggersi con un filino di calma <a href="http://cinelerra.org/docs.php" target="_blank">la documentazione ufficiale del progetto</a>, per iniziare immediatamente ad essere operativi e creativi.</p>
<p style="text-align: justify;">Come qualsiasi applicazione, <strong>Cinelerra</strong> non è esente da bug. Uno dei bug più fastidiosi <strong>nella versione 2.1</strong> dell&#8217;applicativo, che si verifica <strong>durante il caricamento di un progetto soprattutto quando è di una certa dimensione</strong>, è un apparentemente inspiegabile inchiodamento; <strong>Cinelerra si pianta</strong>, non risponde ad alcun comando, e l&#8217;unica alternativa diventa <strong>il killing da terminale</strong>, perchè i layer dei desktop environment preposti allo scopo non intercettano il click del mouse inefficace sul tasto di chiusura della finestra.</p>
<p style="text-align: justify;">Dopo aver provato svariate azioni, tra cui la cancellazione degli indici di lavoro, alla fine esiste un modo per ritornare ad utilizzare <strong>Cinelerra</strong> con il progetto che lo importuna&#8230; un modo che non funziona proprio il 100% delle volte, ma un buon 80% si.</p>
<p style="text-align: justify;">Si tratta di <strong>utilizzare Cinelerra all&#8217;interno del debugger gdb</strong>.</p>
<p style="text-align: justify;">Molto semplicemente, si apre un terminale e si digita:</p>
<p style="text-align: justify;"><code>gdb cinelerra</code></p>
<p style="text-align: justify;">Il debugger caricherà l&#8217;applicativo, che probabilmente non sarà compilato con i simboli a bordo, ma questo non è importante. Alla fine del caricamento, <strong>premere semplicemente r seguito da ENTER</strong>, e seguire le indicazioni del debugger fino al caricamento dell&#8217;applicazione.</p>
<p style="text-align: justify;">Quando <strong>Cinelerra</strong> viene caricato in questo modo, riesce quasi sempre a portare a termine correttamente anche il caricamento del progetto che precedentemente lo inchiodava. Una volta arrivati qui, si consiglia caldamente di proseguire il lavoro di editing anche se si sta agendo controllati dal debugger, e dunque potenzialmente più lenti, perchè salvando il progetto e tentando di ricaricarlo in modalità normale, si ritorna alla condizione di stallo da cui si è partiti.</p>
<p style="text-align: justify;"><strong><a href="http://g-raffa.eu/" target="_blank">Raffaella Traniello</a></strong> ha trovato una soluzione ancora più elegante a questo bug, che finora ha sempre funzionato nella mia esperienza di lavoro; una soluzione che potete trovare evidenziata e spiegata tra i commenti a questo post. Ringrazio Raffaella  per l&#8217;aiuto che mi ha dato, e per il suo contributo a beneficio della comunità di utilizzatori di Cinelerra.</p>
<p style="text-align: justify;">Eventuali altri contributi, anche a beneficio di tutti gli utilizzatori di Cinelerra, sono sempre bene accetti tra i commenti a questo post; sarò felice, naturalmente, anche di <strong>leggere di qualcuno che ha scoperto perchè ciò accade</strong>, in modo da impedirne il verificarsi alla fonte.</p>
<p class="akst_link"><div class="testo_sharethis" align="right"><a href="http://lab.marenectaris.net/?p=20&amp;akst_action=share-this"  title="Invia per e-mail, segnala al social networking, etc." id="akst_link_20" class="akst_share_link" rel="nofollow">Condividi</a></div>
</p>]]></content:encoded>
			<wfw:commentRss>http://lab.marenectaris.net/20080917/ah-cinelerra/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Cambiare randomicamente gli sfondi del desktop GNOME</title>
		<link>http://lab.marenectaris.net/20080911/cambiare-randomicamente-gli-sfondi-del-desktop-gnome/</link>
		<comments>http://lab.marenectaris.net/20080911/cambiare-randomicamente-gli-sfondi-del-desktop-gnome/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 12:27:03 +0000</pubDate>
		<dc:creator>Giulio A.</dc:creator>
		
		<category><![CDATA[Gnome]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[desktop]]></category>

		<category><![CDATA[sfondi]]></category>

		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://lab.marenectaris.net/?p=5</guid>
		<description><![CDATA[Il desktop environment Gnome, almeno fino alla versione attualmente in uso nella mia sala macchine, cioè la 2.22.3, non consente, passando dalle finestre di settings del proprio ambiente di lavoro, la possibilità di cambiare ciclicamente, ed in maniera randomica, le immagini di sfondo del proprio desktop.
Questa carenza, del resto non così grave, è comunque aggirabile [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Il desktop environment <a title="La Home Page del progetto Gnome" href="http://www.gnome.org/" target="_blank">Gnome</a>, almeno fino alla versione attualmente in uso nella mia sala macchine, cioè la <strong>2.22.3</strong>, non consente, passando dalle finestre di settings del proprio ambiente di lavoro, la possibilità di <strong>cambiare ciclicamente, ed in maniera randomica, le immagini di sfondo del proprio desktop</strong>.</p>
<p style="text-align: justify;">Questa carenza, del resto non così grave, è comunque aggirabile e risolvibile in una quantità pressochè illimitata di modi, grazie alla flessibilità del sistema <strong>GNU/Linux</strong>, alla disponibilità di copiosi strumenti di sviluppo, e ai cancelli software che <strong>Gnome</strong> mette a disposizione per dialogare in tempo reale con il suo environment.</p>
<p style="text-align: justify;">Ecco quindi <strong>un modo molto semplice per inserire nel sistema questa funzionalità</strong>, e gestirla in modo altamente parametrico attraverso uno script <strong>PHP</strong> progettato ad hoc per lo scopo.</p>
<p style="text-align: justify;">Lo script è testato e funzionante, con alcune piccole variazioni non importanti, in un sistema <strong>Gnome</strong> su piattaforma <a title="Progetto Fedora, un sistema operativo basato su GNU/Linux" href="http://fedoraproject.org/" target="_blank">Fedora</a>.</p>
<p style="text-align: justify;">Naturalmente, chi non ha una conoscenza del <a title="La Home Page del progetto PHP" href="http://www.php.net" target="_blank">linguaggio PHP</a> può comunque fare uso del codice che tra poco presenterò, ed anche, con attenzione, intervenire nella sezione di configurazione dei parametri dello script, in modo da customizzare il risultato finale in maniera sempre più vicina alle sue esigenze.</p>
<p style="text-align: justify;">Lo script <strong>PHP</strong> che gestisce il cambio randomico e ciclico degli sfondi del desktop è il seguente ( da salvare nel proprio sistema con estensione php, togliendo quella txt ):</p>
<p style="text-align: center;"><a title="Lo script PHP di gestione cambio randomico sfondi nel desktop di Gnome" href="http://lab.marenectaris.net/foo/cw.php.txt" target="_blank">clicca qui per visualizzare lo script ( verrà aperto in una nuova finestra )</a></p>
<p style="text-align: justify;">La sezione <span style="color: #339966;"><strong>VARIABILI GENERALI DI FUNZIONAMENTO</strong></span> contiene i parametri di funzionamento dello script.</p>
<p style="text-align: justify;">L&#8217;array <span style="color: #339966;"><strong>$aDir</strong></span> contiene la lista delle directory nel sistema locale da cui prelevare gli sfondi, e contiene due chiavi: <span style="color: #339966;"><strong>uri</strong></span> è sostanzialmente il path da cui prelevare le immagini di sfondo, e <span style="color: #339966;"><strong>scan</strong></span> è un importante parametro, perchè consente di prelevare le immagini ricorsivamente in tutte le sottodirectory dell&#8217;uri indicato. Se impostato a <span style="color: #339966;"><strong>NORMAL</strong></span>, vengono prelevate solo le immagini nell&#8217;uri; se impostato a <span style="color: #339966;"><strong>RECURSIVE</strong></span>, vengono prelevate tutte le immagini contenute nell&#8217;uri e nelle sue sottodirectory. Parametro utile, per esempio, per prelevare tutti gli sfondi nella directory del desktop Gnome adibita allo scopo, cioè <strong><code>/usr/share/wallpapers</code></strong>. Impostare in <span style="color: #339966;"><strong>$aDir</strong></span> tutte le directory da cui si intende prelevare gli sfondi, sostituendo, se necessario, gli esempi che trovate, soprattutto quello puramente esemplificativo <code><strong>/my/dir/</strong>.</code></p>
<p style="text-align: justify;">L&#8217;array <span style="color: #339966;"><strong>$aExtension</strong></span> contiene le estensioni che devono avere i files per essere considerati immagini di sfondo. Il suo contenuto è parlante, aggiungere, se necessario, altre estensioni.</p>
<p style="text-align: justify;">L&#8217;array <span style="color: #339966;"><strong>$aFilter</strong></span> indica quali nomi di file senza estensione devono essere filtrati durante l&#8217;identificazione dei file da usare come sfondo. Cioè a dire, ogni elemento è un nome di file che, se incontrato durante lo scanning, sarà saltato senza essere considerato sfondo valido. Usare questo filtro per togliere le immagini che non si desidera inserire nel set di quelle da utilizzare. Le impostazioni indicate qui sono state inserite perchè il desktop <strong>Gnome</strong> mette a disposizione wallpaper di differenti dimensioni per lo stesso contenuto, che se non venissero in qualche modo filtrate, comparirebbero ovviamente tutte quante, pur avendo il medesimo contenuto, nella lista degli sfondi validi. Ma naturalmente, in certe directory personali si può avere la necessità di non prendere tutte le immagini ivi contenute come sfondo per il proprio desktop, e in quel caso, basta inserire il nome di file, senza estensione in questo array.</p>
<p style="text-align: justify;">La variabile <span style="color: #339966;"><strong>$iTimeKeep</strong></span> indica ogni quanti secondi il desktop Gnome cambierà inserendo una nuova immagine. Anche qui, inserire un valore sensato è una regola di indubbio valore: nell&#8217;esempio, il tempo impostato è di 30 minuti ( 1800 secondi ).</p>
<p style="text-align: justify;">Una volta salvato lo script nel proprio sistema, occorre innestare la sua esecuzione nel <strong>sistema Gnome</strong>, e a tal proposito, seguire i passi indicati:</p>
<ul>
<li style="text-align: justify;">dare i permessi di esecuzione allo script.</li>
<li style="text-align: justify;">Accedere in <strong>Sistema-&gt;Preferenze-&gt;Personale-&gt;Sessioni</strong></li>
<li style="text-align: justify;">Nella lista dei programmi d&#8217;avvio presentata, aggiungere una nuova entry così composta:
<ul style="text-align: justify;">
<li><strong>Nome</strong> : quello che volete</li>
<li><strong>Comando</strong> : il nome dello script salvato, completo di path assoluto</li>
<li><strong>Descrizione</strong> : quella che volete</li>
</ul>
</li>
<li style="text-align: justify;">chiudere la finestra, ed il gioco è fatto. Al successivo avvio di <strong>Gnome</strong>, gli sfondi cominceranno a cambiare in accordo alle vostre impostazioni.</li>
</ul>
<p style="text-align: justify;">Due parole finali sulla modalità di interazione con il <strong>desktop Gnome</strong>: il comando che fisicamente cambia il desktop del vostro ambiente di lavoro è:</p>
<p><code>gconftool-2 -t string -s /desktop/gnome/background/picture_filename [path_del_nuovo_sfondo]</code></p>
<p style="text-align: justify;"><strong>gconftool-2</strong> è sostanzialmente una utility che consente di impostare <strong>molti dei parametri di funzionamento del desktop Gnome</strong> (font, impostazioni del sound mixer, dimensione e posizione delle taskbar, etc) <strong>direttamente via shell</strong>; tra tali parametri, compare anche quello relativo all&#8217;immagine di sfondo da utilizzare, e attraverso questo comando possiamo gestirla in un modo più &#8220;creativo&#8221; e divertente.</p>
<p class="akst_link"><div class="testo_sharethis" align="right"><a href="http://lab.marenectaris.net/?p=5&amp;akst_action=share-this"  title="Invia per e-mail, segnala al social networking, etc." id="akst_link_5" class="akst_share_link" rel="nofollow">Condividi</a></div>
</p>]]></content:encoded>
			<wfw:commentRss>http://lab.marenectaris.net/20080911/cambiare-randomicamente-gli-sfondi-del-desktop-gnome/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visualizzare i commenti di un post Wordpress dal più recente</title>
		<link>http://lab.marenectaris.net/20080626/visualizzare-commenti-wordpress-dal-piu-recente/</link>
		<comments>http://lab.marenectaris.net/20080626/visualizzare-commenti-wordpress-dal-piu-recente/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 11:56:58 +0000</pubDate>
		<dc:creator>Giulio A.</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[array_multisort]]></category>

		<category><![CDATA[commenti]]></category>

		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://lab.marenectaris.net/?p=1</guid>
		<description><![CDATA[Il mio primo post in assoluto, in questo laboratorio informatico di ricerca e sviuppo, è sostanzialmente inerente ad un piccolo codice PHP da inserire, se si desidera, nel theme template del proprio blog Wordpress. Il suo scopo è visualizzare i commenti dei post ordinati temporalmente dal più recente al più vecchio. Cioè a dire, l&#8217;ultimo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Il mio primo post in assoluto, in questo laboratorio informatico di ricerca e sviuppo, è sostanzialmente inerente ad un piccolo codice PHP da inserire, se si desidera, nel theme template del proprio <strong>blog Wordpress</strong>. Il suo scopo è <strong>visualizzare i commenti dei post ordinati temporalmente dal più recente al più vecchio</strong>. Cioè a dire, l&#8217;ultimo commento inserito è visualizzato per primo.</p>
<p style="text-align: justify;">Per default, infatti, <strong>Wordpress</strong> visualizza i commenti ordinati temporalmente dal primo inserito in poi, con il risultato che gli ultimi commenti di un post, soprattutto quando superano un certo numero, possono essere visualizzati solo dopo uno scrolling chilometrico della pagina del post.</p>
<p style="text-align: justify;">Ordinare in maniera inversa la visualizzazione permette invece di leggere istantaneamente, perchè posti al top, i commenti inseriti per ultimi. Un qualcosa che può risultare comodo.</p>
<p style="text-align: justify;">Per ottenere questo risultato, <strong>possiamo agire su uno dei nostri file relativi al tema scelto per la visualizzazione senza modificare il core kernel di Wordpress</strong>, in modo da svincolarci da qualsiasi aggiornamento e conservare il pieno controllo sulla modifica effettuata.</p>
<p style="text-align: justify;">Ecco come fare:</p>
<ul>
<li style="text-align: justify;">editiamo il file <span style="color: #339966;"><strong>comments.php</strong></span> del nostro tema Wordpress utilizzato.</li>
<li style="text-align: justify;">localizziamo il posto esatto dove inserire il nostro codice, che è quello immediatamente prima del ciclo <span style="color: #339966;"><strong>foreach</strong></span> di visualizzazione dei commenti di un post, cioè:
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span> <span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$comments</span> <span class="kw1">as</span> <span class="re0">$comment</span><span class="br0">&#41;</span> : <span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>inseriamo <strong>subito prima</strong> del codice sopra indicato il seguente codice PHP:
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">&lt;?php</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Ordino i commenti in ordine temporale dal piu&#8217; giovane al piu&#8217; vecchio</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re0">$comments</span> <span class="kw1">as</span> <span class="re0">$key</span> =&gt; <span class="re0">$comment</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">$data_gmt</span><span class="br0">&#91;</span><span class="re0">$key</span><span class="br0">&#93;</span> = <span class="re0">$comment</span>-&gt;<span class="me1">comment_date_gmt</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//</span></div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/array_multisort"><span class="kw3">array_multisort</span></a><span class="br0">&#40;</span><span class="re0">$data_gmt</span>, SORT_DESC, SORT_STRING, <span class="re0">$comments</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
</li>
<li style="text-align: justify;">Il gioco è fatto! Da questo momento in poi, i commenti di tutti i post verranno visualizzati ordinati dal più recente e progressivamente a scendere verso il più vecchio.</li>
</ul>
<p style="text-align: justify;">Due parole finali sul semplice trucco utilizzato: i commenti sono sostanzialmente caricati in Wordpress come un array di righe ( <strong><span style="color: #339966;">$comments </span></strong>), in cui ogni riga è un commento ( <strong><span style="color: #339966;">$comment </span></strong>); un commento ha a corredo diversi campi che gli sono peculiari, e tra essi c&#8217;è quello che ben si presta al nostro scopo: il campo <strong><span style="color: #339966;">comment_date_gmt</span></strong>. Di fatto, questo campo è un <strong>datetime</strong> nella forma <strong>YYYYMMDD HH:MM:SS</strong>; vedremo in un successivo post perchè questa sintassi si presta meravigliosamente agli ordinamenti temporali.</p>
<p style="text-align: justify;">La funzione <a href="http://www.php.net/array_multisort" target="_blank"><strong><span style="color: #339966;">array_multisort</span></strong></a> è una funzione PHP davvero potente che ordina array multipli o multi-dimensionali, per la quale invito a leggere la pagina di manuale relativa sul sito PHP. Proprio da questa pagina ho tratto spunto per la creazione di questo piccolo codice.</p>
<p class="akst_link"><div class="testo_sharethis" align="right"><a href="http://lab.marenectaris.net/?p=1&amp;akst_action=share-this"  title="Invia per e-mail, segnala al social networking, etc." id="akst_link_1" class="akst_share_link" rel="nofollow">Condividi</a></div>
</p>]]></content:encoded>
			<wfw:commentRss>http://lab.marenectaris.net/20080626/visualizzare-commenti-wordpress-dal-piu-recente/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
