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

<channel>
	<title>Claudio&#039;s Hideout &#187; GNU/Linux</title>
	<atom:link href="http://claudio.cicali.name/post/category/gnulinux/feed/" rel="self" type="application/rss+xml" />
	<link>http://claudio.cicali.name</link>
	<description>Claudio Cicali web hub</description>
	<lastBuildDate>Sun, 25 Sep 2011 11:29:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ubuntu: installare OpenOffice 3.2 manualmente</title>
		<link>http://claudio.cicali.name/post/2010/02/ubuntu-installare-openoffice-3-2-manualmente/</link>
		<comments>http://claudio.cicali.name/post/2010/02/ubuntu-installare-openoffice-3-2-manualmente/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 10:33:15 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[How to & Tips]]></category>
		<category><![CDATA[installazione]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[openoffice]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=684</guid>
		<description><![CDATA[È appena uscito OpenOffice 3.2. Qui trovate la lista di tutte le novità. Gli aggiornamenti che mi interessano maggiormente sono: migliorato il supporto al formato ODF (che incidentalmente sarà anche ben supportato da MS Office 2010, il che garantirà finalmente un elevato grado di compatibilità tra le due suite). migliorato il supporto ai formati proprietari [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://claudio.cicali.name/wp-content/uploads/2010/02/logoooo1.png"><img class="alignleft size-medium wp-image-714 wp-caption" title="logoooo" src="http://claudio.cicali.name/wp-content/uploads/2010/02/logoooo1-300x177.png" alt="" width="300" height="177" /></a></p>
<p>È appena uscito <a href="http://download.openoffice.org/">OpenOffice 3.2</a>. Qui trovate la <a href="http://www.openoffice.org/dev_docs/features/3.2/">lista di tutte le novità</a>.</p>
<p>Gli aggiornamenti che mi interessano maggiormente sono:</p>
<ul>
<li>migliorato il supporto al formato ODF (che incidentalmente sarà anche ben supportato da MS Office 2010, il che garantirà finalmente un elevato grado di compatibilità tra le due suite).</li>
<li>migliorato il supporto ai formati proprietari MS, diminuendo così il numero di problemi di &#8220;interfaccia&#8221; con MS Office 2007</li>
<li>aggiunti i commenti su Impress (in questo modo posso facilmente lasciarmi dei <em>post it</em> quando faccio delle slide in bozza)</li>
<li>Rispetto alla 3.0 è diminuito di un buon 46% il tempo necessario a far partire Writer o Calc (e rispetto alla 3.1? Non si sa)</li>
</ul>
<p>Detto questo, se volete provarla subito (come io ho fatto), su un sistema Ubuntu dove magari avete già installato la 3.1 (come me), dovete fare così:</p>
<ul>
<li>andate a prendervi i deb di OpenOffice: <a href="http://download.openoffice.org/other.html">li trovate qui</a></li>
<li>mentre li scaricate in una directory di comodo, disinstallate l&#8217;attuale OOo con un bel <strong>sudo</strong> <strong>apt-get remove openoffice*</strong></li>
<li>una volta scaricati i deb, scompatatteli ed entrate nella sottodirectory DEBS. Da qui eseguite <strong>sudo</strong> <strong>dpkg -i *.deb</strong></li>
<li>entrate nella sottodirectory <strong>desktop-integration</strong> e anche qui andate di <strong>sudo</strong> <strong>dpkg -i *.deb</strong></li>
</ul>
<p>Dovreste essere a posto (almeno per me così è stato).</p>
<p>Sicuramente queste istruzioni sono meglio di niente, peccato però che OpenOffice non metta a disposizione un repository per apt&#8230; in questo modo appena uscirà la 3.2.1, saremo di nuovo punto e a capo (ma a questo punto credo che aspetterò la nuova Ubuntu che forse avrà a bordo OOo 3.2).</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2010/02/ubuntu-installare-openoffice-3-2-manualmente/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Un&#8217;idea meravigliosa</title>
		<link>http://claudio.cicali.name/post/2009/09/unidea-meravigliosa/</link>
		<comments>http://claudio.cicali.name/post/2009/09/unidea-meravigliosa/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 07:53:08 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[creative commons]]></category>
		<category><![CDATA[software libero]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=510</guid>
		<description><![CDATA[Ieri pomeriggio ho accompagnato Antonella a Quarrata (PT) dove si è tenuto un festival nell&#8217;ottica della divulgazione delle licenze Creative Commons. Nel pomeriggio, nel corso di un seminario/tavola rotonda lei avrebbe parlato della sua esperienza di scrittice che usa le CC, mentre gli altri invitati avrebbero parlato di esperienze nel campo musicale, cinematografico e scolastico. [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri pomeriggio ho accompagnato <a href="http://antonella.beccaria.org">Antonella</a> a Quarrata (PT) dove si è tenuto <a href="http://www.ptondo.it/liberarti/">un festival</a> nell&#8217;ottica della divulgazione delle licenze Creative Commons. Nel pomeriggio, nel corso di un seminario/tavola rotonda lei avrebbe parlato della sua esperienza di scrittice che usa le CC, mentre gli altri invitati avrebbero parlato di esperienze nel campo musicale, cinematografico e scolastico.</p>
<p>Introdotto dal bravo <a href="http://www.creativecommons.it/">Lorenzo Benussi</a> di Creative Commons italia, il seminario è stato molto interessante, proprio perché di piglio molto pratico. La partecipazione, da un punto di vista numerico, non è neanche stata malaccio contando la presenza di una trentina di persone molto interessate.</p>
<p>Aldilà del resoconto del seminario, quello che volevo fare era riportare <strong>una delle esperienze raccontate</strong> che mi ha colpito molto. <a href="http://www.g-raffa.eu/">Raffaella Traniello</a> è una ragazza che insegna part time in una scuola elementare. Qualche anno fa ha pensato di mettere insieme un po&#8217; di elementi per creare qualcosa di bello ed importante: l&#8217;insegnamento, la sua esperienza nel <em>video making</em>, il software libero e le Creative Commons.</p>
<p>In provincia di Padova, <a href="http://www.scuolepontesnicolo.it/cartella_di_sicurezza/index.htm">dove lei insegna</a>, è nato dunque un esperimento didattico dove lei dirige un gruppo di scalmanati ragazzini (ha parlato di 100 bambini!), nella realizzazione di <strong>cortometraggi in <a href="http://it.wikipedia.org/wiki/Passo_uno">stop motion</a></strong>. Durante il seminario ce ne ha fatti vedere un paio, compreso il <em>making of </em>di uno di essi, e io sono rimasto veramente stupito (e felicemente sorpreso) sia del risultato raggiunto sia dalle potenzialità esplosive di un approccio del genere all&#8217;insegnamento.</p>
<p>I progetti durano, ovviamente, un sacco di tempo durante il quale i bambini imparano</p>
<ul>
<li>a lavorare insieme, con ruoli e responabilità specifici</li>
<li>a valorizzare, ognuno, le proprie capacità</li>
<li>basi di musica e di matematica</li>
<li>a capire come funziona un video (invece che fruirne passivamente)</li>
<li>a creare oggetti (per uno dei corti hanno dovuto creare un sacco di pesciolini di pongo)</li>
<li>a rispettare il lavoro degli altri (materiale e software solo open source e Raffaella ha spiegato bene &#8211; e i bambini hanno capito &#8211; l&#8217;importanza delle licenze CC)</li>
<li>a condividere il proprio lavoro e la propria creatività</li>
</ul>
<p>Fantastico.</p>
<p>Voglio anche riportare un aneddoto simpatico. Lavorando in questo modo la classe di Raffaella è entrata in contatto, nel tempo, con altre realtà simili aldifuori dell&#8217;italia. Tramite uno di questi contatti, hanno ricevuto un DVD di un maestro russo di stop motion. Il DVD è piaciuto tantissimo, e uno dei bambini ne ha chiesta una copia. Raffaella avrebbe potuto farla in 5 minuti, la copia, ma così avrebbe contravvenuto a tutti i precetti fino ad allora insegnati, e ha rifiutato. Il bambino allora ha splendidamente chiesto &#8220;Perché non chiediamo all&#8217;autore se possiamo copiarlo?&#8221;. Raffaella, &#8220;vittima&#8221; del suo successo, ha allora dovuto contattare il Maestro per chiedere il permesso. Ma anche lui, rispondendo stupito alla richiesta, ha detto di aver le mani legate dalla casa editrice del DVD [<em>nota: la risposta del maestro era in russo, ed è stata tradotta da un bambino della classe</em>]. &#8220;Perchè non chiediamo il permesso alla casa editrice?&#8221; è stata la risposta, scontata, dei bambini. Sebbene il DVD fosse stato serigrafato in russo, una email faceva capolino sulla copertina&#8230; tramite questa, è stata alla fine contattata la casa editrice. Niente da fare, però. Niente COPIE. La casa editrice si è però offerta di mandare 65 <em>originali</em> gratuite alla scuola. Per problemi di frontiera, però, non è stato possibile spedire questi benedetti DVD. A questo punto è stata contattato il consolato russo in modo che, tramite i loro canali interni, hanno fatto in modo di farsi recapitare i DVD&#8230;</p>
<p>Tutti questi passi, ovviamente, sono stati dettagliati e spiegati ai bambini, che<strong> hanno imparato tantissime cose</strong> da un evento così microscopico (la copia di un DVD). Una bella differenza con il professore di informatica che ti passava sottobanco la copia di Visual Basic, no?</p>
<p>Raffella usa <a href="http://edubuntu.org/">Edubuntu</a>, <a href="http://cinelerra.org">Cinerella</a> e <a href="http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php">Stop Motion</a>.</p>
<p>I video sono tutti <a href="http://www.g-raffa.eu/Cinema_a_Scuola/index.html">disponibili online</a> e vi consiglio di guardarli riflettendo sul fatto che siano stati fatti da bambini delle elementari.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="321" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1954360&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="321" src="http://vimeo.com/moogaloop.swf?clip_id=1954360&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/1954360">Pesci</a> from <a href="http://vimeo.com/user648802">Raffaella Traniello</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2009/09/unidea-meravigliosa/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Come fare i test sui controller con Zend Framework</title>
		<link>http://claudio.cicali.name/post/2009/06/come-fare-i-test-sui-controller-con-zend-framework/</link>
		<comments>http://claudio.cicali.name/post/2009/06/come-fare-i-test-sui-controller-con-zend-framework/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 12:54:33 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=454</guid>
		<description><![CDATA[Lo ammetto, pietà di me: non sono un grandissimo esperto di test. Non ne ho mai fatti troppi e probabilmente neppure troppo belli. Nel mio ultimo progetto, iniziato da poco, ho rimesso mano alla questione e unilateralmente deciso di applicarmi meglio a farli funzionare. Il progetto è scritto in PHP ed usa Zend Framework (da [...]]]></description>
			<content:encoded><![CDATA[<p>Lo ammetto, pietà di me: non sono un grandissimo esperto di test. Non ne ho mai fatti <em>troppi</em> e probabilmente neppure troppo belli.</p>
<p>Nel mio ultimo progetto, iniziato da poco, ho rimesso mano alla questione e unilateralmente deciso di applicarmi meglio a farli funzionare. Il progetto è scritto in PHP ed usa <a href="http://framework.zend.com">Zend Framework </a>(da qui in avanti solo ZF). Premetto che quello che segue è probabilmente inutile a chi non ha già una certa esperienza con quel framework.</p>
<p>ZF è sempre stato <em>testabile</em> predilegendo tra i vari framework <a href="http://www.phpunit.de">PHPUnit</a>. Questa scelta si è spinta recentemente fino ad offrire un componente (<a href="http://framework.zend.com/manual/en/zend.test.html">Zend_Test</a>) che estende le classi base dei test di PHPUnit in modo da esporre ai test dei controller tutti gli oggetti di alto livello necessari per lavorare in modo estremamente <strong>pratico</strong>. Questi oggetti sono la $request e la $response, ma anche una pletora di nuovi assert() tra cui alcuni fantastici che usano le estensioni XPath e DOM per verificare il contenuto di una pagina durante un test utilizzando appunto XPath o selettori CSS.</p>
<p>Quando scriveremo un test per un controller di una nostra applicazione, faremo dunque derivare il nostro test dalla classe Zend_Test_PHPUnit_ControllerTestCase.</p>
<p>Quelli che seguono sono consigli derivati dalla mia recente esperienza e non vogliono assolutamente essere una trattazione esaustiva sui test dei quali, come innanzi confessavo, non sono un grande esperto. Ma chi non è un grande esperto di test fa fatica a trovare documentazione di base sui test con Zend Framework.. per cui eccomi qua :)</p>
<p>Prima di tutto risolviamo il problema più grave: PHPUnit va installato (non viene distribuito insieme a ZF).</p>
<p>Si può scegliere di farlo in tre modi:</p>
<ol>
<li>via PEAR</li>
<li>installare il pacchetto della propria distribuzione GNU/Linux</li>
<li>andarsi a prendere direttamente il pacchetto di sorgenti dal sito.</li>
</ol>
<p>Su Ubuntu 9.04, la mia attuale distribuzione, l&#8217;unica possibilità è la 3. Infatti la versione del pacchetto che arriva con la distribuzione è troppo vecchia e Zend_Test fa uso di feature piuttosto recenti (non ci puoi fare niente: ti beccherai subito un errore riguardante il metodo sconosciuto incrementAssertionCounter(). Show stopper.). Anche la 1 non mi è parsa percorribile a causa del mio &#8220;PEAR&#8221; troppo vecchio per la versione di PhpUnit (non ho indagato moltissimo, a dire il vero).</p>
<p>Ho preso dunque il tgz dal sito di PhpUnit, l&#8217;ho scompattato e ho messo tutta la sua directory PHPUnit nella stessa directory dove risiede lo ZF (directory <em>./library</em>, per la cronaca). In questo modo le classi di PHPUnit sono già visibili senza che sia necessario toccare gli include path, grazie agli autoloader di ZF stesso.</p>
<p>Ho creato una directory &#8220;tests&#8221; allo stesso livello della directory &#8220;application&#8221; della mia applicazione, dunque fuori dalla DocumentRoot.</p>
<p>All&#8217;interno di questa directory ho messo, per ora: un file AllTests.php che serve come entry point per eseguire tutti i test e un file TestConfiguration.php che in pratica sostituisce le operazioni da fare nell&#8217;index.php del sito.</p>
<p>Ecco per esempio come potrebbe essere un primo AllTests.php:</p>
<pre class="code">&lt;?php
require 'TestConfiguration.php';

$suite = new PHPUnit_Framework_TestSuite();
$suite-&gt;setName('MyApp');
$suite-&gt;addTestSuite('controllers_IndexControllerTest');
$suite-&gt;addTestSuite('controllers_UsersControllerTest');

PHPUnit_TextUI_TestRunner::run($suite, array());</pre>
<p>Ed ecco invece parte del mio TestConfiguration.php</p>
<pre class="code">
&lt;?php
TestConfiguration::setUp();  

class TestConfiguration
{
  static function setUp()
  {
    define('APPLICATION_ENVIRONMENT', 'test');
    define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application/'));

    set_include_path(implode(PATH_SEPARATOR, array(
      realpath(APPLICATION_PATH . '/../library'),
      realpath(APPLICATION_PATH . '/library'),
      realpath(APPLICATION_PATH . '/models'),
      realpath(APPLICATION_PATH . '/modules/default/forms'),
      get_include_path(),
    )));

    require_once 'Zend/Loader/Autoloader.php';
    $loader = Zend_Loader_Autoloader::getInstance();
    $loader-&gt;setFallbackAutoloader(true);
  }

  static function setUpDatabase()
  {
    // TODO
  }
}  
</pre>
<p>Nella directory tests/controllers metterò i test dei controller. Per esempio, un inizio di un test per una home page potrebbe essere:</p>
<pre class="code">class controllers_IndexControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{

  public function testHomePageIsASuccessfulRequest()
  {
    $this-&gt;dispatch('/');

    // Tests there are no exceptions on the home page
    $this-&gt;assertFalse($this-&gt;response-&gt;isException());

    $this-&gt;assertController('session');
    $this-&gt;assertAction('new');

    $this-&gt;assertQueryCount('#LoginForm', 1);
  }

}</pre>
<p>A questo punto non resta che eseguire i test. Da linea comando sarà sufficiente lanciare un <strong>php AllTests.php</strong> direttamente dalla directory tests.</p>
<p>Un altro punto di attenzione è dovuto al fatto che PHPUnit inizia molto presto a  scrivere in console e questo potrebbe dare fastidio a particolari operazioni di ZF. Nella fattispecie mi sto riferendo al malefico errore &#8220;Headers already sent&#8221;.</p>
<p>Quello che succedeva a me era che in una preDispatch() di un action plugin, a fronte di una particolare situazione, effettuavo un header(&#8220;Location &#8230;&#8221;). Questa operazione non andava a buon fine proprio per il motivo di cui sopra (e tutti i test fallivano miseramente); per cui, se la vostra applicazione ha un redirect HTTP in un plugin prima dell&#8217;effettivo dispatch, potreste incorrere in un errore del genere. La soluzione (almeno per me) è stata quella di non fare la redirect ma di modificare il controller e la action della corrente request. Stesso risultato, ed anche pienamente testabile.</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2009/06/come-fare-i-test-sui-controller-con-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Altro sabato, altro portatile</title>
		<link>http://claudio.cicali.name/post/2009/06/altro-sabato-altro-portatile/</link>
		<comments>http://claudio.cicali.name/post/2009/06/altro-sabato-altro-portatile/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 11:26:29 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[hp]]></category>
		<category><![CDATA[portatili]]></category>
		<category><![CDATA[prove]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=445</guid>
		<description><![CDATA[E così ieri mattina, all&#8217;improvviso, il portatile di Antonella ha reso l&#8217;anima al Dio Dei Computerini. Il monitor si è fulminato. Il portatile, un Acer 3810T Timeline 13 pollici, era stato acquistato sabato scorso e le caratteristiche sono strepitose: ultraleggero (1.6Kg) e con una batteria clamorosa (si parla di 8 ore di autonomia). Appena arrivato [...]]]></description>
			<content:encoded><![CDATA[<p>E così ieri mattina, all&#8217;improvviso, il portatile di Antonella ha reso l&#8217;anima al Dio Dei Computerini. Il monitor si è fulminato.</p>
<p>Il portatile, un Acer 3810T Timeline 13 pollici, era stato acquistato sabato scorso e le caratteristiche sono strepitose: ultraleggero (1.6Kg) e con una batteria clamorosa (si parla di 8 ore di autonomia). Appena arrivato a casa il portatile è stato subito de-Vistato. Al posto del buffo sistema operativo della Microsoft è stata messa una Ubuntu 9.04.</p>
<p>Le cose non sono andate benissimo: la scheda di rete non è compatibile ed occorre scaricarsi e compilarsi un moduletto (facile). È inoltre necessario disattivare l&#8217;AHCI del disco (da BIOS, va messo in modalità IDE). Facile.</p>
<p>Più difficile è stato diagnosticare il motivo per il quale, ogni tanto (una volta al giorno), il sistema operativo dichiarasse di non poter scrivere sul disco rigido. Occorreva riavviare, e sperare nel successivo fsck.</p>
<p><em>Apparentemente</em> un aggiornamento al kernel 2.6.30 aveva sistemato anche quel problema, rendendo alla fine il portatile FULL supported, per così dire. Finché ieri&#8230; il video prima ha tremato un po&#8217; e poi&#8230; è diventato tutto bianco. Fine.</p>
<p>Rimpacchettato tutto, siamo andati da MediaWorld a farcelo cambiare. Nessun problema dal punto di vista della garanzia: dopo aver tentato di accenderlo il commesso ha verificato che non si vedeva nulla (e qui non nascondo che abbiamo temuto che si potesse accorgere che sulla macchina non fosse presente NESSUN sistema operativo, magari attaccando un monitor esterno. Sono sicuro che avrebbe iniziato a dare la colpa a qualche nostro intervento software (linux!) o a un cattivo aggiornamento di qualche driver).</p>
<p>A questo proposito non ho ancora avuto la sfortuna di sapere se e quante storie ti fanno in fatto di garanzia se sul portatile che porti a riparare dovessero trovare un altro sistema che non sia il preinstallato Windows. Per sicurezza, nel caso dell&#8217;Acer, ci siamo fatti i DVD di &#8220;ripristino&#8221; tramite l&#8217;apposita utility del fornitore.</p>
<p>Questa utility crea dei DVD che fanno sì boot e, ATTENZIONE, una volta partiti chiedono se si voglia ripristinare completamente il sistema: però <strong>mentono</strong>. Infatti si aspettano di trovare un file system NTFS sul nostro hard disk (dunque il ripristino è &#8220;soft&#8221;: fanno semplicemente una copia e non aggiornano neanche l&#8217;MBR; che può andare anche bene, ma almeno dammi questa opzione!). Se così non fosse daranno il classico errore del cazzo mezzo in italiano e mezzo in inglese e si fermeranno. Per cui, se si vuol essere sicuri di non andare incontro a problemi di questo tipo, i consigli possono essere:</p>
<ol>
<li>farsi comunque i DVD di ripristino (che, tra le altre cose, si possono fare UNA volta sola. Fantastici).</li>
<li>lasciare sempre una partizione sul disco con il Windows originale (e magari anche la partizione di ripristino). Questa operazione è possibile dal momento che con il programma gparted (usato in fase di installazione di Ubuntu oppure direttamente dal LiveCD della stessa distribuzione) è possibile fare il resize della partizione NTFS. Per portare una partizione di 350GB a 35GB ci sono voluti circa 30 minuti.</li>
<li>formattare tutto e installare la nostra Ubuntu. In caso di necessità, occorre ripartire con un LiveCD e formattare il disco come NTFS: prima si fa la partizione con gparted e poi la si formatta con mkfs.ntfs. Ricordatevi in questo caso di usare l&#8217;opzione &#8211;fast o ci passerete una vita. A questo punto si dovrebbe usare il programmillo <a href="http://ms-sys.sourceforge.net/">ms-sys</a> (<strong>non</strong> distribuito con Ubuntu) per togliere un eventuale grub nel&#8217;MBR e ripristinare quello di Vista. Ho detto &#8220;dovrebbe&#8221;, perché per motivi che non sto qui a spiegare non sono riuscito a portare a fondo questa procedura e non posso garantire il funzionamento. Occhio che a ms-sys occorre passare il device e NON la partizione! (es: /dev/sda e NON /dev/sda1 )</li>
</ol>
<p>OK, così siamo da MediaWorld a cambiare il portatile. Peccato che tutti i MediaWorld della zona (Bologna) avessero finito le scorte di QUEL portatile e, ancora più strano, non ne erano stati ordinati altri.</p>
<p>Antonella ha dunque dovuto fare buon viso a cattivo gioco e &#8220;approfittare&#8221;  di una prezzo d&#8217;occasione su un portatile appena uscito: l&#8217;<strong>HP Pavilion dv3 2020el</strong> (<a href="http://notebookitalia.it/scheda-tecnica-recensione/hp-pavilion-dv3-2020el-4.html">leggi scheda</a>). Molto più potente dell&#8217;Acer, 50€ di differenza. Nel confronto si perde un po&#8217; di autonomia di batteria (l&#8217;HP è comunque un 6 celle) e si guadagnano circa 600gr di peso. Per il resto, però, è un&#8217;altra storia: Core2 8600 a 2,4Ghz, scheda video Nvidia con 512MB dedicati, disco da 360GB, masterizzatore interno (l&#8217;Acer non ce l&#8217;ha) e, che non guasta, una qualità componentistica certamente superiore.</p>
<p>Tornati in ufficio con l&#8217;acquisto, lo spacchettiamo e iniziamo la procedura pallosissima di &#8220;masterizzazione dei DVD di ripristino&#8221;. Durata totale dell&#8217;operazione: 5 ore. Cinque ore. Cinque. Ore. Per masterizzare 3 DVD. E perché? Perché (probabilmente) l&#8217;operazione è effettuabile UNA SOLA VOLTA e allora, a scapito di 5 ore di vita di un povero mortale, la procedura occorre farla in maniera estremamente cauta e lenta&#8230; Che merde.</p>
<p>E cosa ci troviamo su un portatile appena acquistato? 30GB di schifezze. <em>Trentagiga</em> di utility assurde, programmi in versione demo, giochi che devi comprare, programmi che appena li esegui si connettono a internet senza chiederti il permesso e vanno chissà dove a dire chissà cosa. Il system tray con 10 icone di altrettanti programmi che non si sa che fanno. Gli antivirus che ogni 5 minuti appaiono e ti chiedono o di acquistare il prodotto o di far riavviare la macchina. E in tutto questo, per far partire IE7 per passare un po&#8217; il tempo, ci vogliono svariati secondi prima di atterrare&#8230; sulla home page di AOL!?</p>
<p>Ma come si fa, dico,  a usare e legittimare l&#8217;uso di un sistema del genere? (e per sistema non intendo &#8220;Windows&#8221; in sé, quanto proprio questa cafonaggine da parte dei produttori).</p>
<p>Che roba. Bah! Chiavetta USB e dopo 30 minuti di NTFS resize e 10 minuti di installazione Ubuntu era lì pronta.</p>
<p>Problemi? Solo l&#8217;audio: occorre aggiornare manualmente Alsa alla versione 1.0.20.</p>
<p>Per ora non posso dire altro che con Ubuntu l&#8217;HP Pavilion dv3 2020el è <strong>una bomba</strong>. Con Windows è una roba <strong>ridicola e ributtante</strong>, come tutti i portatili odierni<strong>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2009/06/altro-sabato-altro-portatile/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Digital Video Frustration</title>
		<link>http://claudio.cicali.name/post/2009/05/digital-video-frustration/</link>
		<comments>http://claudio.cicali.name/post/2009/05/digital-video-frustration/#comments</comments>
		<pubDate>Mon, 25 May 2009 07:42:33 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Rant]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[digital video]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<category><![CDATA[mencoder]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=421</guid>
		<description><![CDATA[Scrivo questo post per due motivi: prima di tutto per lamentarmi, che è lunedì ed è attività che mi riesce bene. L&#8217;altro motivo è per scrivere da qualche parte le frustrazioni incontrate nel tentare di fare manipolazioni e presdigitazioni su dei video usando soltanto strumenti open source (il problema non è l&#8217;open source, come vedremo). [...]]]></description>
			<content:encoded><![CDATA[<p>Scrivo questo post per due motivi: prima di tutto per lamentarmi, che è lunedì ed è attività che mi riesce bene. L&#8217;altro motivo è per scrivere da qualche parte le frustrazioni incontrate nel tentare di fare manipolazioni e presdigitazioni su dei video usando soltanto strumenti open source (il problema non è l&#8217;open source, come vedremo).</p>
<p>Il problema: prendere una parte di un video pubblicato via RTMP (streaming vero, da piattaforma proprietario Adobe) e piazzare sopra lo spezzone un logo in sovraimpressione.</p>
<p>Semplice no?</p>
<p>Dettaglio tecnico: i video in questione sono codificati in H.264/MP3. Il container è l&#8217;f4v (ma questo, fortunatamente, conta poco o nulla).</p>
<p>L&#8217;operazione è da compiere <em>server side</em> per cui tutto attraverso command line e scripting (no GUI).</p>
<p>Che strumenti ci sono a disposizione per fare un lavoretto del genere? Ovviamente <strong>rtmpdump</strong>, <strong>ffmpeg</strong> e/o <strong>mencoder</strong>.</p>
<p>Spezzando diligentemente il problema principale in problemi più piccoli, il primo era: scaricarsi dallo streaming uno spezzone di un video. Il tool (unico, non ci sono alternative al momento) è appunto rtmpdump. Appena lo provo rimango subito molto contento del fatto che rtmpdump scaricasse non in &#8220;tempo reale&#8221; secondo gli FPS del filmato, ma mooolto più velocemente, praticamente in download. Peccato però che il tool non permettesse di specificare un tempo di partenza e uno di fine dello scaricamento. O tutto o niente. Un altro problema di rtmpdump è che il container del filmato scaricato è FLV, senza possibilità di intervenire su questa opzione.</p>
<p>Riprendendo in mano le mie conoscenze arrugginitissime di C++, modifico il programma in modo da poter specificare un offset di partenza e un tempo massimo di scaricamento. Tutto OK, senonché il filmato finale riporterà comunque la durata complessiva del filmato originale.</p>
<p>Mentre lavoro su questo problemino, il giorno stesso <a href="http://linuxcentre.net/adobe-has-issued-a-dmca-removal-request-for-rtmpdump/">Adobe fa chiudere</a> il sito di rtmpdump per contravvenzione al DMCA (nota che <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html ">Adobe dichiarava</a> simpaticamente di voler aprire il protocollo). Per adesso, dunque, sospendo la questione rtmpdump.</p>
<p>Mi trovo dunque tra le mani un video H.264/MP3. Problema successivo: stamparci sopra un logo per tutta la durata dello stesso.</p>
<p>L&#8217;unico modo per farlo (talvolta è bello sapere di aver un&#8217;unica possibilità, talvolta meno), è usare l&#8217;opzione &#8220;vhook&#8221; di ffmpeg. In pratica è possibile eseguire del codice &#8211; una sorta di sistema a plugin &#8211; durante la codifica del video. Uno di questi plguin si chiama, pensa un po&#8217;, &#8220;watermark&#8221; e fa esattamente quello che mi serve.</p>
<p>Però. Però si dà il fatto che questo sistema di &#8220;plugin&#8221; sia stato misconosciuto dagli sviluppatori di ffmpeg (&#8220;fa cagare&#8221;) e per questo prima deprecato (nella versione 0.5) e poi direttamente tolto (versione SVN attuale)&#8230; il sistema sarà sostituito (notare il tempo al futuro) da un framework molto più elegante chiamato libavfilter.</p>
<p>La versione che arriva con la mia Ubuntu è la 0.5 (meno male!) ma è compilata con il simpatico &#8211;disable-vhook (merda!). Ergo, se voglio usare -vhook devo ricompilarmi ffmpeg, ma la versione 0.5, non la versione SVN. Nota a latere: se chiedi supporto agli sviluppatori (mailing list o canale IRC), questi vogliono che tu faccia i test solo con la versione SVN&#8230; che non supporta vhook&#8230; OK, capito?</p>
<p>Faccio le mie prove e sembra andare tutto bene&#8230; il logo in sovraimpressione fa la sua sporca figura ma&#8230; ma l&#8217;audio è desincronizzato! Dopo qualche secondo, l&#8217;audio rallenta e dopo un po&#8217; le immagini sembrano quelle di un filmato di Enrico Ghezzi.</p>
<p>Il problema sembra essere il decoder MP3 usato da ffmpeg, al quale non piace troppo l&#8217;Mp3 della traccia audio del filmato. Probabilmente è colpa del coder usato, ma alla fine sembra che devo trovare un&#8217;altra soluzione. Qualcuno attento potrebbe obiettare &#8220;Ma perché per un H264 viene usata una traccia audio Mp3 e non AAC?&#8221;. Osservazione più che corretta. Il problema è che questi video sono prodotti in codifica &#8220;real time&#8221; da alcune squadre di produzione. Il software utilizzato per questa codifica è Adobe Live Encoder il quale, &#8220;bontà sua&#8221;, non supporta out-of-the-box AAC. Occorre acquistare un plugin che costa circa 250€ (ogni commento è superfluo). Per questo motivo il cliente ha preferito per adesso usare Mp3 con l&#8217;encoder marcio di Adobe.</p>
<p>Quanti decoder Mp3 ci sono Open Source? Due. Uno è <strong>libavcodec</strong>, fornito ed usato da ffmpeg e l&#8217;altro è <a href="http://www.underbit.com/products/mad/">libmad</a>. È possibile usare libmad con ffmpeg? No.</p>
<p>A questo punto occorre tirare fuori dal cassetto degli attrezzi <strong>mencoder</strong>, che invece può usare come decoder libmad, e provare. (qualcuno sa come e se si può usare libmp3lame per decodificare gli mp3 di ffmpeg?)</p>
<p>Incredibilmente, funziona. Mencoder + libmad riesce a ricodificare il video tenendo sincronizzato audio e video.</p>
<p>L&#8217;idea dunque sarebbe: passo lo spezzone originale da mencoder per crearne una versione digeribile da ffmpeg, usando come video codec &#8220;copy&#8221;, in modo da non dover ricodificare il video perdendo di qualità. Poi il video viene passato a ffmpeg per il watermarking del logo.</p>
<p>Già. Peccato che il video prodotto da mencoder con questa procedura sia &#8220;sminchiato&#8221;, come dicono a Milano&#8230; pieno di artefatti e con grossi problemi nelle immagini in movimento (bpyramid? bframes? Boh&#8230;).</p>
<p>E così continuo le mie prove, sinceramente frustrato e con poche speranze&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2009/05/digital-video-frustration/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ubuntu 8.10 (Intrepid Ibex) sull&#8217;Acer Aspire One</title>
		<link>http://claudio.cicali.name/post/2008/12/ubuntu-810-intrepid-ibex-sullacer-aspire-one/</link>
		<comments>http://claudio.cicali.name/post/2008/12/ubuntu-810-intrepid-ibex-sullacer-aspire-one/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 00:43:36 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[acer]]></category>
		<category><![CDATA[aspire one]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=15</guid>
		<description><![CDATA[Yet another. E’ pieno, là fuori, di guide all’installazione per cui niente dettagli noiosi. Voglio solo scrivere un po’ quello che ho fatto e che problemi ho avuto Ho installato Ubuntu usando la pratica possibilità di creare un device di boot usando una chiavetta USB. Lo si fa direttamente come opzione dal menu “System” di [...]]]></description>
			<content:encoded><![CDATA[<p>Yet another. E’ pieno, là fuori, di guide all’installazione per cui niente dettagli noiosi. Voglio solo scrivere un po’ quello che ho fatto e che problemi ho avuto</p>
<ul>
<li>Ho installato Ubuntu usando la pratica possibilità di creare un device di boot usando una chiavetta USB. Lo si fa direttamente come opzione dal menu “System” di una Live (nota: la chiavetta USB non viene formattata dall’operazione)</li>
<li>Ho aggiornato il BIOS usando <a href="http://lubi.sourceforge.net/unetbootin.html">unetbootin</a> per creare un’immagine bootabile di Freedos, sempre usando la chiavetta USB (all’interno della quale ho ovviamente copiato anche i file del BIOS)</li>
<li>Ho migliorato un po’ il rendering dei font usando questo <a href="http://tombuntu.com/index.php/2008/10/15/tweak-your-font-rendering-for-better-appearance/">fonts.conf</a> ; la &#8220;Ubuntu way&#8221; è sudo <strong>ln -s /etc/fonts/conf.avail/10-autohint.conf  /etc/fonts/conf.d/</strong></li>
<li>Ho installato i font Microsoft con <strong>apt-get install msttcorefonts</strong></li>
<li>Ho tolto l’idiota blocco sull’asse delle Y delle finestre usando gconfeditor e mettendo a False la chiave <strong>/apps/compiz/plugins/move/allscreens/options/constrain_y<br />
</strong></li>
<li>Ho fatto funzionare la scheda Wifi (Atheros 5k) abilitando i backport (basta togliere il commento dalla relativa riga di /etc/apt/sources.list). Poi <strong>apt-get install linux-backports-modules-intrepid-generic</strong> e infine dalla gestione hardware (System &gt; Administration &gt; Hardware drivers) si disabilita la vecchia e si abilita la 5xxx. A me ha funzionato dopo un paio di reboot (CREDO che l’Acer faccia differenza tra un warm reboot e un cold reboot &#8211; ovvero spegni, aspetti un po’, fai ripartire). Qualcuno usa ndiswrapper, ma a me non ha funzionato. Il led non funzionerà comunque (funzionava con il kernel 2.6.24, ora non più)</li>
<li>Per il sonoro non ho fatto niente e sembra funzionare. Dicono che Skype comunque non vada e occorra aggiornare a mano all’ultima versione di Alsa.</li>
<li>Ho zittito la ventola usando <a href="http://n00.be/archives/758/">queste istruzioni</a> (occhio che è necessario avere un BIOS recente e/o modificare a mano il programmino acerfand)</li>
<li>Il suspend e compagnia bella sembra andare, ma ricordati di configurarlo perché di default quando chiudi lo sportello il power manager fa solo “blank screen”. Inoltre temo proprio che dopo un suspend l’audio smetta di funzionare (update: no, non smette di funzionare)</li>
<li>Il video è OK da subito, ma si può migliorare un po’ (vedi <a href="https://help.ubuntu.com/community/AspireOne">questa guida</a> alla voce “VIDEO AND 3D PERFORMANCE”). Occhio che a me una delle opzioni (non so quale, non ho indagato) non mi fa partire X e devo partire in modalità “low resolution”. Quelle che funzionano di sicuro sono Clone, AccelMethod e MigrationHeuristic (nota: se X trova un xorg.conf.restore in /etc/X11 userà quello e non xorg.conf; cancellatelo se rimanete bloccati a bassa risoluzione).</li>
<li>La webcam fa un po’ schifo ma funziona (<strong>apt-get install cheese</strong>)</li>
<li>Il microfono interno non va</li>
<li>Per salvare un po’ di spazio sullo schermo, ho installato il <em>theme</em> <em>engine</em> Aurora e utilizzo la decorazione per le finestre che si chiama Unity. Aurora te lo devi scaricare ed installare, ma comunque <strong>apt-get install gnome-themes-extras</strong> non guasta mai. Ah, le icone “Dropline Neu!” sono fighissime.</li>
<li>Sempre per lo spazio da conquistare, installatevi la preziosa estensione di Firefox <a href="https://addons.mozilla.org/en-US/firefox/addon/1530">“status bar auto hide”</a> e abituatevi a navigare dopo aver premuto F11<a href="https://addons.mozilla.org/en-US/firefox/addon/1530"><br />
</a></li>
</ul>
<p>Un discorso a parte lo merita il maledetto modem HSDPA della Momo con contratto H3G. Credo di averlo domato e ci ho pure navigato anche se non so se in HSDPA o GPRS (ahi!). Le guide online per farlo funzionare sono praticamente tutte sbagliate, perché con il kernel 2.6.27 il modulo airprime (che tutte dicono di modificare) <strong>non esiste più</strong>. Il modem comunque viene riconosciuto dai moduli standard e la configurazione di wvdial che si trova a spasso sembra andare bene. Però:</p>
<ul>
<li>Il <em>vendor id</em> è corretto (Qualcomm), ma pare che di <em>product id</em> invece ce ne siano a iosa. Il mio è il 0&#215;3100 mentre in tante guide si trova lo 0&#215;6000. Il tuo lo scopri comunque con un <strong>lsusb</strong>.</li>
<li>così come viene attivato, il modem pare vada <em>piano</em>, perché viene utilizzato un protocollo non ottimale. Una parziale soluzione (parziale perchè non ci sono dati in giro ma solo voci di corridoio) sembra quella di forzare l’utilizzo del modulo usbserial, passandogli il vendor id e il product id. Qualcosa tipo <strong>modprobe usbserial vendor=0x05c6 product=0&#215;3100</strong> . Io non ho ancora provato.</li>
<li>Pare (pare) che il modulo che attiva il modem non imposti bene i permessi del device /dev/ttyACM0 che è quello che poi serve per parlare con il fottuto modem. Era questo il motivo per il quale <strong>cu -l /dev/ttyACM0</strong> non funzionava (no, neanche da root). chmod o+rw al device e finalmente potevo parlare a-tu-per-tu con il modem direttamente con i comandi AT. Per qualche informazione in più su questi comandi, <a href="http://www.ismprofessional.net/pascucci/index.php/2008/08/fedora-hsdpa-e-momodesign-md/">leggi Mario Pascucci</a> che ne sa a pacchi.</li>
<li>Quella cosa dei permessi, PARE che svegli anche il rincoglionitissimo nuovo NetworkManager di Ubuntu… al successivo riavvio mi ha avvertito del fatto che avevo pronta una connessione broadband… (precedentemente avevo riavviato ALCUNE volte, senza segni di vita)</li>
<li>Tutte le configurazioni wvdial che si trovano in giro mandano SEMPRE il pin della SIM al modem (AT+CPIN=). Si dà il caso, però, che il mio modem non accetta che tu glielo mandi due volte di seguito (dà ERROR e si ferma il colloquio). Devo capire come girarci intorno (non trovo niente altro che il mitico ATZ per resettarlo, ma CPIN non si resetta).</li>
</ul>
<p>Buon divertimento</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2008/12/ubuntu-810-intrepid-ibex-sullacer-aspire-one/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stampare con CUPS da linea comando</title>
		<link>http://claudio.cicali.name/post/2007/11/stampare-con-cups-da-linea-comando/</link>
		<comments>http://claudio.cicali.name/post/2007/11/stampare-con-cups-da-linea-comando/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 00:58:33 +0000</pubDate>
		<dc:creator>claudio</dc:creator>
				<category><![CDATA[Articoli]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://claudio.cicali.name/?p=37</guid>
		<description><![CDATA[Prima beccati il nome della stampante con “lpstat -a”, e poi usalo con qualcosa come “a2ps -P”]]></description>
			<content:encoded><![CDATA[<p>Prima beccati il nome della stampante con “lpstat -a”, e poi usalo con qualcosa come “a2ps -P”</p>
]]></content:encoded>
			<wfw:commentRss>http://claudio.cicali.name/post/2007/11/stampare-con-cups-da-linea-comando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

