<?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>/dev/random &#187; Programmazione</title>
	<atom:link href="http://alex.amiran.it/tag/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://alex.amiran.it</link>
	<description></description>
	<lastBuildDate>Sun, 08 Jan 2012 15:49:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
<link>http://alex.amiran.it</link>
  <url>http://alex.amiran.it/wp-content/themes/shu-ok/img/favicon.png</url>
  <title>/dev/random</title>
</image>
		<item>
		<title>Recensione: PHP and MongoDB Web Development (di Rubayeet Islam &#8211; Packt Publishing)</title>
		<link>http://alex.amiran.it/20120108/recensione-php-and-mongodb-web-development-di-rubayeet-islam-packt-publishing/</link>
		<comments>http://alex.amiran.it/20120108/recensione-php-and-mongodb-web-development-di-rubayeet-islam-packt-publishing/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 15:49:10 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Libri]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=489</guid>
		<description><![CDATA[Disclaimer: ho ricevuto il libro per la recensione da Packt Publishing stessa. Ho cercato comunque di fare una recensione obiettiva. Recensione generale In una parola: ottimo. Anche se migliorabile. A memoria credo sia il primo a trattare l&#8217;integrazione tra PHP e MongoDB. Lo stile è molto scorrevole. I concetti sono spiegati in modo chiaro nella maggior [...]]]></description>
			<content:encoded><![CDATA[<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Disclaimer: ho ricevuto il libro per la recensione da Packt Publishing stessa.<br/>
Ho cercato comunque di fare una recensione obiettiva.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Recensione generale</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In una parola: ottimo. Anche se migliorabile.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A memoria credo sia il primo a trattare l&#8217;integrazione tra PHP e MongoDB.<br/>
Lo stile è molto scorrevole. I concetti sono spiegati in modo chiaro nella maggior parte dei casi. Fanno eccezione i concetti di programmazione funzionale nel capitolo dedicato a map-reduce, che avrebbero beneficiato di un maggiore approfondimento.<br/>
Ogni capitolo presenta diversi esempi di codice per gli argomenti trattati.<br/>
I quiz di cui è costellato aiutano a richiamare i concetti appena appresi e a capire se sia il caso di rileggere quanto appena studiato. Peccato che non siano molto numerosi. Le soluzioni ai quiz si trovano alla fine del libro.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Vengono presentati anche alcuni &#8220;compiti per casa&#8221; (di cui non viene data soluzione, naturalmente) che invitano ad implementare soluzioni diverse da quelle presentate o software che utilizzando i concetti esposti li espandano per creare software più complessi.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La caratteristica che ho apprezzato di più è la presentazione degli esempi: prima viene esposto il codice completo di tutti gli script, e in seguito, durante la spiegazione, vengono riportati i frammenti di codice. Questo consente di avere una visione globale e di poterla studiare da soli. Molti altri testi spezzano i sorgenti rendendoli illeggibili, o integrano la spiegazione in commenti lunghissimi che, senza colorazione della sintassi, li rendono altrettanto illeggibili.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Lo stile adottato sembra distaccarsi un po&#8217; dal classico dei manuali tecnici, per tendere a quello dei testi universitari.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In alcuni casi si ha la sensazione che ci sia molto di più dietro (e spesso a ragione), e che il libro copra solo l&#8217;uso base di alcune caratteristiche.<br/>
In altri casi è scritto chiaramente (con relativo link) che per approfondire si possono consultare fonti online.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Alcuni piccoli errori tipografici come campi di array separati da :  (come in javascript) invece che da =&gt; in PHP, o virgolette dimenticate  nelle chiavi di accesso agli array sono facilmente individuabili e non pregiudicano la qualità del libro.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;"><span id="more-489" ></span><br/>
Capitolo 1 &#8211; Installazione</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Inizia con una breve panoramica del &#8220;movimento NoSQL&#8221;, ne spiega brevemente i fondamenti, e poi passa alla procedura di installazione vera e propria, sia per Windows che per Linux, mentre per OSX dice semplicemente &#8220;è come su Linux&#8221;.<br/>
In tutti i casi la procedura è tanto semplice da richiedere non più di un paio di pagine.<br/>
Passa velocemente all&#8217;avvio del server, coprendo le principali opzioni di configurazione, alla creazione di database e collection, per finire con l&#8217;installazione, tramite PEAR, dei driver per PHP e a un primo script dimostrativo.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 2 &#8211; La prima applicazione</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ormai diventato l&#8217;&#8221;hello world&#8221; dei libri che trattano web, si parte costruendo un piccolo blog senza troppe pretese: inserimento, cancellazione, modifica degli articoli. Quindi si passa ad<br/>
approfondire tramite paginazione dell&#8217;archivio per finire con l&#8217;inserimento di commenti ai post.<br/>
Durante il percorso vengono spiegate le classiche operazioni CRUD (Create, Read, Update, Delete), spiegando anche il particolare linguaggio di query di MongoDB, le operazioni di limit e skip, il concetto di cursore e di scrittura safe.<br/>
Si conclude con alcune operazioni particolari (upsert, incremento di un campo, rimozione di un campo) e con la distinzione tra documenti embedded e esterni, spiegando anche come fare le &#8220;select&#8221; cercando dati su documenti embedded.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 3 &#8211; Session Manager</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dopo una breve introduzione a cosa sia una sessione, passa subito a definire un session handler personalizzato. Con l&#8217;occasione viene anche creata una classe (singleton) per la connessione al DB, che verrà utilizzata nel resto del libro.<br/>
Viene quindi creata una classe per la gestione della sessione tramite MongoDB, facilmente riutilizzabile in altri progetti in quanto quasi totalmente<br/>
trasparente.<br/>
Il capitolo si conclude con un esempio di gestione di login/logout degli utenti.<br/>
Molto utile non solo per capire come come astrarre l&#8217;accesso a MongoDB tramite una classe e come usare upsert, ma anche per capire come usare un DB generico (anche SQL) per le sessioni in PHP.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitoli 4 e 5 &#8211; Aggregazioni e statistiche</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Accorpo la descrizione dei due capitoli perché trattano più o meno lo stesso argomento: map-reduce e group().<br/>
Il primo è forse l&#8217;argomento più difficile per chi è abituato a linguaggi procedurali o ad oggetti, in quanto riprende concetti della programmazione funzionale, mentre il secondo si avvicina di più a concetti conosciuti come quelli dell&#8217;SQL.<br/>
Due capitoli non facili da assimilare, nei quali avrei forse visto bene un numero maggiore di esempi. Fortunatamente quelli che ci sono riguardano applicazioni pratiche (tag cloud, statistiche di accesso alle pagine, ecc.) e non argomenti astratti.<br/>
Vengono introdotte anche le capped collections.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 6 &#8211; Integrazione con i RDBMS</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Forse il capitolo meno interessante per me, anche se tratta un argomento importante. Vengono portati diversi esempi di come usare in parallelo MongoDB e un database SQL (MySQL): come usare MongoDB per fare cache delle query complesse fatte su MySQL, o per archiviare vecchi dati in modo da scaricare MySQL.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 7 &#8211; GridFS</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Capitolo un po&#8217; scarno, ma che fornisce tutte le informazioni necessarie per iniziare a lavorare con GridFS per lo storage di file dentro il DB.<br/>
Anche qui MongoDB eccelle per semplicità, quindi gli esempi sono brevi e chiari.<br/>
Uno degli esercizi invita ad implementare una gallery con thumbnail, dicendo di salvare le thumbnail assieme all&#8217;immagine originale, ma non spiega se si possano avere due file nello stesso ducumento (hint: non si può).</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 8: Geolocalizzazione</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Introduce le funzionalità di geolocalizzazione di MongoDB, fornite sia da indici bidimensionali che da procedure predefinite nel server per la ricerca in base alla distanza da un punto.<br/>
Una buona introduzione, anche se lascia un po&#8217; il dubbio sulle unità di misura (gradi, radianti, metri?) che vanno utilizzate.<br/>
Ottima la spiegazione di come integrare queste funzionalità con le mappe di Google per la visualizzazione dei risultati.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Capitolo 9: Sicurezza</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo è il capitolo con meno codice PHP. Si concentra sull&#8217;amministrazione dalla console di MongoDB per la creazione di utenti con relative password, e di vari tipi di indice, comprese le procedure per analizzarne l&#8217;efficacia.<br/>
L&#8217;argomento indici forse sarebbe stato meglio trattato in un capitolo precedente.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">
Capitolo 10: RockMongo e phpMoAdmin</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Una rapida panoramica di due interfacce web (scritte in PHP) per l&#8217;amministrazione, l&#8217;interrogazione e, soprattutto, il backup e il restore di database o di collections.<br/>
Copre pro e contro delle due soluzioni, l&#8217;installazione e l&#8217;uso di base.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20120108/recensione-php-and-mongodb-web-development-di-rubayeet-islam-packt-publishing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse: Helios, un satellite coi buchi?</title>
		<link>http://alex.amiran.it/20100814/eclipse-helios-un-satellite-coi-buchi/</link>
		<comments>http://alex.amiran.it/20100814/eclipse-helios-un-satellite-coi-buchi/#comments</comments>
		<pubDate>Sat, 14 Aug 2010 07:57:30 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=466</guid>
		<description><![CDATA[Ieri Eclipse (Galileo) ha iniziato a dare di matto. Già da un po&#8217; avevo notato rallentamenti quando scrivevo un &#8220;uguale&#8221; (=), ma dopo 3-4 secondi mi mostrava l&#8217;autocomplete e mi lasciava continuare a scrivere, salvo perdermi uno spazio ogni tanto. Ho provato a disabilitare l&#8217;autocomplete durante la scrittura (lo voglio solo quando premo ctrl-space), ma [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Ieri Eclipse (Galileo) ha iniziato a dare di matto.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Già da un po&#8217; avevo notato rallentamenti quando scrivevo un &#8220;uguale&#8221; (=), ma dopo 3-4 secondi mi mostrava l&#8217;autocomplete e mi lasciava continuare a scrivere, salvo perdermi uno spazio ogni tanto. Ho provato a disabilitare l&#8217;autocomplete durante la scrittura (lo voglio solo quando premo ctrl-space), ma non ci sono riuscito.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><a href="http://alex.amiran.it/wp-content/uploads/2010/08/header_logo.jpg"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;"><img hspace="0"  vspace="1em"  align="left"  class="float_left"  title="Eclipse bugs"  src="http://alex.amiran.it/wp-content/uploads/2010/08/header_logo.jpg"  alt="Eclipse bugs"  width="240"  height="68"     style="border: 0;display: block; border: 0; float: left; clear: left; margin: 1em 1em 1em 0; padding: 5px;"/></a>Ma ieri quei 3-4 secondi sono diventati più di 10 minuti. Non so quanto, e non so se si sarebbe mai ripreso. L&#8217;ho killato dopo un buon gelato. E ho iniziato a cercare soluzioni in Internet.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Sembrava un problema legato al fatto di avere troppi file nel progetto, e infatti linkando lo Zend Framework questo numero superava abbondantemente i 1000. Pur perplesso dal fatto (alcuni miei progetti si avvicinano a quella cifra, non oso pensare progetti più importanti), disattivo lo ZF, chiudo tutti gli altri progetti, e continuo a programmare per un po&#8217;, finché non si ripresenta il problema anche con &#8220;miseri&#8221; 150-200 file nel progetto.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Allora cancello il workspace e tutte le config di Eclipse e riprendo, pensando a una config corrotta. Dopo aver riscaricato tutti i plugin. Illuso. Dopo 2 ore per ripristinare tutto si ripresenta lo stesso errore. Decido quindi di aggiornare Eclipse, cosa che non avevo fatto perché sembra che la nuova versione abbia problemi con l&#8217;SDK Android.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Helios</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ho quindi scaricato la nuova versione (Helios), direttamente con PDT integrato, e ho (re)iniziato a configurare e scaricare plugin.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ma i plugin non funzionavano.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Apparivano nella finestra dei moduli installati, se tentavo l&#8217;update mi diceva che non c&#8217;erano aggiornamenti, non potevo abilitarli o disabilitarli, solo rimuoverli. Ma non facevano niente. Niente nuove perspective, niente nuovi progetti, niente finestre aggiuntive.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Scavando (per ore) tra le configurazioni e su Internet non ho trovato niente di risolutivo, finché, alle 9 di sera, ho deciso di insospettirmi del fatto che Helios (Eclipse 3.6) creasse una cartella di nome .eclipse/org.eclipse.platform-3.5.0 nella mia home, e ho messo questo in Google, trovando finalmente <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?format=multiple&amp;id=317896"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">il bug report</a> nel tracker di Eclipse.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A quanto pare il nuovo Eclipse vuole scrivere nella directory di installazione quando si installano nuovi plugin. Controllando, infatti, si trova un permesso rws sul gruppo in diverse sottodirectory.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A questo punto ho semplicemente fatto un</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">chown -R root.adm /usr/local/eclipse-3.6</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">e ho assegnato il mio utente al gruppo adm (lo era già, in realtà). Tutto ha ripreso a funzionare senza problemi. Mi riservo di valutare i rischi di questa operazione, ma a una prima occhiata sembrano abbastanza limitati (un plugin può spattumare Eclipse, ma nel caso lo reinstallo, e lo poteva fare già prima).</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Android</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Lo so, sono masochista.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Sul sito di Android è scritto chiaramente di NON usare Helios perché ci sono dei bug irrisolti. Ma io ho la testa dura. E comunque ho tenuto la vecchia versione di Eclipse installata, giusto in caso&#8230;</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Con Helios ho provato a creare un nuovo progetto di test, con target Android 2.2 e minSdk 3 (Android 1.5). Lo crea e mi dà subito errore dicendo di non trovare la package &#8220;android&#8221;. Lo aggiungo a mano tra le Referenced Libraries del progetto, e gli errori spariscono, ma ora mi dà errore di conversione da Java a Dalvik. Indagherò nelle prossime ore/giorni.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Io pensavo che i problemi si limitassero a un <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=318108"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">bug già segnalato</a>, peraltro correggibile in modo abbastanza semplice (Window-&gt;Preferences, XML-&gt;XML Files-&gt;Editor, togliere la spunta a &#8220;Use inferred grammar&#8230;&#8221;).</p>
<h3  style="font-size: 1.4em; font-style: italic; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-style: italic; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Update 10:10</h3>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il problema con il package android si risolve semplicemente: Window-&gt;Preferences, quindi General-&gt;Workspace-&gt;Linked Resources, attivare la spunta su &#8220;Enable Linked Resources&#8221;. Bisogna farlo prima di creare o scaricare qualsiasi progetto Android, altrimenti non ho idea di come aggiungerlo in seguito. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20100814/eclipse-helios-un-satellite-coi-buchi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHPday 2009, come è andata</title>
		<link>http://alex.amiran.it/20090527/phpday-2009-come-e-andata/</link>
		<comments>http://alex.amiran.it/20090527/phpday-2009-come-e-andata/#comments</comments>
		<pubDate>Wed, 27 May 2009 17:00:24 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[conferenze]]></category>
		<category><![CDATA[phpday]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=430</guid>
		<description><![CDATA[Un piccolo sunto delle due giornate. Dopo esattamente due mesi di silenzio, finalmente mi ricordo che ho anche un blog, e torno a scriverci per parlare un po&#8217; di questo mio primo PHPday. Complice la vicinanza e un&#8217;interesse crescente, dopo l&#8217;annuncio, su come potesse essere una giornata immerso tra i programmatori PHP, ho fatto la [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Un piccolo sunto delle due giornate.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dopo esattamente due mesi di silenzio, finalmente mi ricordo che ho anche un blog, e torno a scriverci per parlare un po&#8217; di questo mio primo <a href="http://www.phpday.it/site/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">PHPday.</a></p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Complice la vicinanza e un&#8217;interesse crescente, dopo l&#8217;annuncio, su come potesse essere una giornata immerso tra i programmatori PHP, ho fatto la pazzia e mi sono iscritto, approfittando dell&#8217;offerta early bird. Arrivato lì in auto, la prima (e unica, direi) brutta sorpresa: l&#8217;hotel non aveva un parcheggio proprio, e i Carabinieri, coadiuvati da un carro attrezzi, stavano portando via auto in divieto lungo le strade. Per fortuna dopo 15-20 minuti ho trovato un buco anche abbastanza vicino.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Veloce passaggio alla registrazione, dove mi hanno riempito di gadget (maglietta, cappellino, portacellulare a forma di sedia/antistress, oltre al tesserino identificativo) che non sapevo dove infilare visto che avevo le mani impegnate dall&#8217;Eee e dall&#8217;ombrello, e poi l&#8217;attesa per l&#8217;inizio che, come nella migliore tradizione di tutte le conferenze, è partito con mezz&#8217;ora di ritardo. Un plauso agli organizzatori che in 30 secondi hanno condensato i saluti per cui era prevista una mezz&#8217;ora, per cui tutti i talk sono stati abbastanza in orario.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">L&#8217;affluenza, nonostante i timori visto il prezzo di iscrizione, è stata molto buona.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tranne uno, per cui mi aspettavo tutt&#8217;altro, tutti i talk sono stati interessantissimi, e mi è dispiaciuto veramente tanto doverne perdere 2 o 3 a causa delle sovrapposizioni (c&#8217;erano tre &#8220;percorsi&#8221; contemporanei).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Interessante l&#8217;intervento di Rasmus Lerdorf (di cui parlerò probabilmente in un altro post) riguardo lo sviluppo di PHP, anche se purtroppo era subito dopo pranzo e mi sono perso l&#8217;inizio.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Zend Italia ha inoltre organizzato una sessione straordinaria di esame per la certificazione in PHP5, ed ha offerto l&#8217;iscrizione gratuita ai primi 10 iscritti. Ne ho approfittato subito e mi è andata bene. Anche l&#8217;esame è andato bene, visto che ora sono Zend Certified Engineer. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_biggrin.gif"  alt=":D"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">L&#8217;unica nota dolente è che l&#8217;esame mi ha fatto perdere altri due talk che mi interessavano. Ma pazienza! <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">I pranzi e i buffet sono stati un&#8217;ottima occasione per intavolare, nonostante la mia timidezza cronica, quattro chiacchiere con altri appassionati. Venerdì sono finito a pranzo con due relatori, tra cui il rappresentante di PayPal Italia&#8230;</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">&#8220;Incluso nel prezzo&#8221; c&#8217;era anche l&#8217;iscrizione al <a href="http://www.grusp.it/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">GrUSP</a>, il Gruppo Utenti e Sviluppatori PHP italiani. Solo da ieri sono stato iscritto anche alla mailing list dei soci e mi ci sto ambientando, ma vista la chiacchierata fatta sabato sera in finale dei lavori tra i membri del gruppo e la cinquantina di persone rimaste, sembrerebbe una cosa molto interessante (tra sconti, contatti, collaborazioni, ecc.)</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Approfitto per ringraziare gli organizzatori per l&#8217;ottimo lavoro svolto, e per salutare Cesare e Michele (se mai passeranno di qua).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Sul sito dell&#8217;evento ci sono <a href="http://www.phpday.it/site/phpday-2009/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">i video registrati durante i vari talk</a>, quindi se non ci eravate potete farvi un&#8217;idea di come è stata.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">L&#8217;anno prossimo l&#8217;appuntamento è a Rimini (a meno di inconvenienti). Farò il possibile per esserci.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20090527/phpday-2009-come-e-andata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPday 2009, Verona, 15 e 16 maggio</title>
		<link>http://alex.amiran.it/20090327/phpday-2009-verona-15-e-16-maggio/</link>
		<comments>http://alex.amiran.it/20090327/phpday-2009-verona-15-e-16-maggio/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 17:45:19 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=426</guid>
		<description><![CDATA[L&#8217;evento italiano dedicato a PHP. Il PHPday quest&#8217;anno si sposta a Verona, e cerca di dare un taglio ancora più ampio all&#8217;evento, allungando la durata a due giorni e introducendo il canale &#8220;community&#8221; per la presentazione di prodotti opensource. Ci saranno inoltre dei lightning talk, dei &#8220;dibattiti&#8221; improvvisati dai partecipanti. Consultate il sito per il [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">L&#8217;evento italiano dedicato a PHP.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il PHPday quest&#8217;anno si sposta a Verona, e cerca di dare un taglio ancora più ampio all&#8217;evento, allungando la durata a due giorni e introducendo il canale &#8220;community&#8221; per la presentazione di prodotti opensource. Ci saranno inoltre dei lightning talk, dei &#8220;dibattiti&#8221; improvvisati dai partecipanti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Consultate il <a href="http://www.phpday.it/site/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">sito</a> per il <a href="http://www.phpday.it/site/phpday-2009/calendario-conferenze/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">programma completo</a>, tuttora non definitivo, ma già con diversi argomenti interessanti sul piatto, almeno per me. Inoltre sarà una buona occasione per incontrare sviluppatori preparati e competenti, merce abbastanza rara, purtroppo.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La novità mal recepita (al punto da generare un <a href="http://www.fullo.net/blog/archives/2009/03/27/the-italian-php-community-sucks/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">post molto risentito</a> del presidente del GrUSP, il gruppo organizzatore) dai partecipanti, invece, è il prezzo di iscrizione, fissato in € 100 per la partecipazione a entrambe le giornate (60 per una sola), che aumenta a 160 (e 90) se ci si iscrive dopo il 16 aprile.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Secondo me, visto quello che viene offerto (soprattutto il pranzo e due buffet per ogni giornata) non è per niente alto, ma posso capire che, per chi è abituato a parteciparvi gratis dagli eventi precedenti, rappresenti un po&#8217; un trauma.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Probabilmente l&#8217;affluenza sarà inferiore agli anni scorsi, ma di contro il pubblico sarà più mirato e interessato.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Credo che farò il possibile per partecipare.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20090327/phpday-2009-verona-15-e-16-maggio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.7.5</title>
		<link>http://alex.amiran.it/20090218/zend-framework-175/</link>
		<comments>http://alex.amiran.it/20090218/zend-framework-175/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 17:12:17 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=408</guid>
		<description><![CDATA[Nuova versione del framework, ma occhio all&#8217;aggiornamento! Un paio di giorni fa è uscita la nuova versione dello Zend Framework, la 1.7.5. L&#8217;ho testato con alcuni siti che ho realizzato con le versioni precedenti (1.5 e 1.6) e non ho riscontrato nessuna incompatibilità, ma c&#8217;è stata una modifica abbastanza importante nella gestione delle Zend_View, per [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Nuova versione del framework, ma occhio all&#8217;aggiornamento!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Un paio di giorni fa è uscita la nuova versione dello <a href="http://framework.zend.com/download/latest"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Zend Framework, la 1.7.5</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">L&#8217;ho testato con alcuni siti che ho realizzato con le versioni precedenti (1.5 e 1.6) e non ho riscontrato nessuna incompatibilità, ma c&#8217;è stata una modifica abbastanza importante nella gestione delle Zend_View, per evitare attacchi di tipo Local File Inclusion.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Vi rimando al <a href="http://weierophinney.net/matthew/archives/206-Zend-Framework-1.7.5-Released-Important-Note-Regarding-Zend_View.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">post nel blog di Matthew Weier O&#8217;Phinney</a> per i dettagli, ma vi anticipo che se usate dei path relativi  per risalire nel fs (quindi i vari /../ ) nella definizione del path a cui trovare gli script delle view, incorrerete nella nuova protezione, e il vostro sito non funzionerà più.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il workaround è specificato nel post di cui sopra, ma io vi consiglio di rivedere il codice per evitare i path contenenti &#8220;..&#8221;, perché probabilmente nelle nuove versioni del framework (2.x e successive) il workaround verrà tolto. Inoltre comunque attivando il workaround state rischiando di introdurre una vulnerabilità nel vostro sito.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Meglio fare le cose per bene subito.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20090218/zend-framework-175/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Buone feste (con regalino)</title>
		<link>http://alex.amiran.it/20081225/buone-feste-con-regalino/</link>
		<comments>http://alex.amiran.it/20081225/buone-feste-con-regalino/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 18:54:13 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[lxde]]></category>
		<category><![CDATA[Natale]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=371</guid>
		<description><![CDATA[Stavolta però il regalo l&#8217;hanno fatto a me. Siamo quasi alla fine del 25 dicembre, ma non potevo esimermi dal fare i migliori auguri ai miei fedeli lettori. Quest&#8217;anno non sono riuscito a preparare un regalino di Natale da scaricare, ma in compenso il team di LXDE ne ha fatto uno a me, accettando oggi [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Stavolta però il regalo l&#8217;hanno fatto a me. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Siamo quasi alla fine del 25 dicembre, ma non potevo esimermi dal fare i migliori auguri ai miei fedeli lettori. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Quest&#8217;anno non sono riuscito a preparare un regalino di Natale da scaricare, ma in compenso il team di <a href="http://lxde.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">LXDE</a> ne ha fatto uno a me, accettando oggi alle 16:19 (15:19 UTC, 23:19 ora del maintainer) la <a href="http://sourceforge.net/tracker/?func=detail&amp;atid=894871&amp;aid=2047695&amp;group_id=180858"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">patch a LXterminal</a> per l&#8217;impostazione dei colori e del traceback, ad <a href="http://alex.amiran.it/20080824/lxterminal-on-steroids-2/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">opera mia e di Giggio</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Grazie Fred e PCman!</p>
<h6  style="font-size: 1em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Update 26/12/2008</h6>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Fred ha rilasciato oggi la nuova versione di <a href="http://www.gnomefiles.org/app.php?soft_id=2352"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">LXterminal, la 0.1.4</a>, che comprende questa e altre patch! <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20081225/buone-feste-con-regalino/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LXterminal on steroids (2)</title>
		<link>http://alex.amiran.it/20080824/lxterminal-on-steroids-2/</link>
		<comments>http://alex.amiran.it/20080824/lxterminal-on-steroids-2/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 17:39:40 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=214</guid>
		<description><![CDATA[Un altro aggiornamento per lxterminal. Grazie al lavoro di Giggio, che, oltre a creare il pacchetto per Ubuntu di lxterminal ha anche modificato il sorgente in modo che le modifiche alla configurazione vengano applicate al volo, oggi vi presento un&#8217;altra versione di lxterminal. Ma bando alle ciance, ecco i pacchetti da scaricare: Paccetto tar.gz (debianizzato) [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Un altro aggiornamento per lxterminal.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Grazie al lavoro di Giggio, che, oltre a creare il pacchetto per Ubuntu di lxterminal ha anche modificato il sorgente in modo che le modifiche alla configurazione vengano applicate al volo, oggi vi presento un&#8217;altra versione di lxterminal.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ma bando alle ciance, ecco i pacchetti da scaricare:</p>
<ul>
<li><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-0132tar.gz"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Paccetto tar.gz (debianizzato)</a></li>
<li><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_0132-1_i386.deb"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Pacchetto deb per Debian Lenny x86-32</a></li>
<li><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_0132-1_amd64.deb"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Pacchetto deb per Debian Lenny x86-64 (amd64)</a></li>
<li><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_0132-1ubuntu1_i386.deb"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Pacchetto deb per Ubuntu 8.04 x86-32</a></li>
</ul>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Oltre ai pacchetti deb già pronti per l&#8217;installazione, potete scaricare il tar.gz dei sorgenti, già debianizzato, nel caso vogliate compilarlo da soli, fare altre modifiche o semplicemente se non vi fidate dei pacchetti già pronti. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/> </p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080824/lxterminal-on-steroids-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LXterminal on steroids</title>
		<link>http://alex.amiran.it/20080812/lxterminal-on-steroids/</link>
		<comments>http://alex.amiran.it/20080812/lxterminal-on-steroids/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 16:46:59 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[lxde]]></category>
		<category><![CDATA[patch]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=205</guid>
		<description><![CDATA[Qualche miglioramento per rendere migliore questo ottimo programma. Da un po&#8217; di tempo uso lxterminal (dal progetto LXDE) al posto di gnome-terminal, ma mi sono scontrato subito con alcune sue limitazioni. E come me anche altri utenti, come Giggio che me l&#8217;ha segnalato nei commenti del mio articolo su Debian sull&#8217;Eee900. Ho quindi preso il [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Qualche miglioramento per rendere migliore questo ottimo programma.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Da un po&#8217; di tempo uso lxterminal (dal progetto <a href="http://www.lxde.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">LXDE</a>) al posto di gnome-terminal, ma mi sono scontrato subito con alcune sue limitazioni. E come me anche altri utenti, come Giggio che me l&#8217;ha segnalato nei <a href="http://alex.amiran.it/20080809/debian-su-eee900-parte-4/#comments"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">commenti del mio articolo su Debian sull&#8217;Eee900</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ho quindi preso il coraggio a quattro mani e mi sono messo a studiarne il sorgente. Nonostante sia in C, è scritto in modo molto pulito, quindi sono riuscito facilmente a risolvere i due problemi grossi che aveva: un buffer di scrollback troppo limitato (il valore di default, credo un centinaio di righe), e le scritte in grigio su fondo nero, che rendevano stancante o anche impossibile la lettura.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">I miei sforzi si sono concretizzati in una <a href="http://sourceforge.net/tracker/index.php?func=detail&amp;aid=2047695&amp;group_id=180858&amp;atid=894871"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">patch che ho segnalato all&#8217;upstream</a> (che spero verrà integrata presto), e già che c&#8217;ero ho rimesso in ordine anche l&#8217;interfaccia di configurazione, che era un po&#8217; confusionaria con due parametri, figurarsi ora che sono 5. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-preferences.png"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;"><img hspace="auto"  vspace="1em"  class="float_center"  title="Nuova interfaccia delle impostazioni di lxterminal"  src="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-preferences.png"  alt=""  width="369"  height="291"     style="border: 0;display: block; border: 0; clear: both; margin: 1em auto; padding: 5px;"/></a></p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ora vi potete sbizzarrire come preferite coi colori, con combinazioni anche oltre il limite dell&#8217;assurdo.<span id="more-205" ></span><a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_mashup.png"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;"><img hspace="0"  vspace="1em"  align="left"  class="float_left"  title="Stroboscopio di colori per lxterminal"  src="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_mashup-150x120.png"  alt=""  width="150"  height="120"     style="border: 0;display: block; border: 0; float: left; clear: left; margin: 1em 1em 1em 0; padding: 5px;"/></a></p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per ora (e forse per sempre) la modifica delle impostazioni non ha effetto sulle finestre e sulle tab già aperte, ma solo su quelle che aprirete dopo le modifiche.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ho fatto un confronto a spanne sull&#8217;occupazione di memoria di lxterminal contro gnome-terminal, e sono rimasto abbastanza sorpreso.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">lxterminal, per risparmiare RAM, al momento del caricamento verifica se c&#8217;è già un&#8217;istanza di sé stesso in memoria, e se c&#8217;è le segnala di aprire una nuova finestra, quindi esce. In ogni momento avrete una sola copia di lxterminal in memoria.<a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-ram.png"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;"><img hspace="1em"  vspace="1em"  align="right"  class="float_right"  title="lxterminal contro gnome-terminal"  src="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-ram-150x120.png"  alt=""  width="150"  height="120"     style="border: 0;display: block; border: 0; float: right; clear: right; margin: 1em 0 1em 1em; padding: 5px;"/></a></p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Perciò, anche se non occupa molta meno RAM di gnome-terminal (circa 1.5 o 2 MB in meno), il vantaggio lo vedrete quando ne aprirete diverse finestre. Come potete vedere dallo screenshot di top, qui a fianco, 5 finestre di lxterminal occupano 17 MB (meno 8.8 condivisi, quindi 9.2 MB), mentre 5 finestre di gnome-terminal occupano ognuna tra i 15 e i 18 MB, meno i 9.3 condivisi, sono tra i 5 e gli 8 MB ognuna, per un totale di 25-30 MB circa.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">La patch e i pacchetti deb</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Potete scaricare la <a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_scrollback_colors_preferences.patch"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">patch</a> da applicare alla versione attualmente nel subversion ufficiale (838), il <a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal_0131-1_i386.deb"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">pacchetto deb di lxterminal per Debian Lenny</a>, o <a href="http://alex.amiran.it/wp-content/uploads/2008/08/lxterminal-0131tar.gz"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">il sorgente debianizzato di lxterminal</a> da cui potete compilare il pacchetto deb per altri sistemi (Ubuntu, Sidux, ecc.).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per compilare dal mio sorgente, scaricatelo (purtroppo WordPress mi ha segato tutti i punti nel nome del file tranne l&#8217;ultimo&#8230;), poi aprite una shell e digitate:</p>
<pre  style="font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;">sudo aptitude install fakeroot
mkdir temp
cd temp
sudo apt-get builddep lxterminal
tar -xzovf /path/al/file/scaricato/lxterminal-0131tar.gz
cd lxterminal-0.1.3.1
fakeroot debian/rules binary</pre>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A questo punto, dentro temp/ dovreste avere (se la compilazione è andata a buon fine) il pacchetto lxterminal-0.1.3.1-1.deb che potete installare con</p>
<pre  style="font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;">sudo dpkg -i lxterminal-0.1.3.1-1.deb</pre>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In caso di dubbi, chiedete pure, vedrò di aiutarvi, nei limiti del possibile.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se qualcuno si volesse prendere la briga di compilarlo per Ubuntu e volesse inviarmelo, sarò felice di ospitare qui il pacchetto.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080812/lxterminal-on-steroids/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Il PHP(4) è morto. Viva il PHP(5)!</title>
		<link>http://alex.amiran.it/20080810/il-php4-e-morto-viva-il-php5/</link>
		<comments>http://alex.amiran.it/20080810/il-php4-e-morto-viva-il-php5/#comments</comments>
		<pubDate>Sun, 10 Aug 2008 11:54:09 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=201</guid>
		<description><![CDATA[Ne danno l&#8217;annuncio i parenti e gli amici tutti&#8230; Con la release 4.4.9, rilasciata il 7 agosto, si chiude la storia di PHP4. Era già stato annunciato un anno fa, e dall&#8217;8/8/8 (8 agosto 2008) la versione 4 di PHP non verrà più supportata né sviluppata. Non ci saranno nemmeno patch di sicurezza, se non [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Ne danno l&#8217;annuncio i parenti e gli amici tutti&#8230;</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Con la release <a href="http://www.php.net/archive/2008.php#id2008-08-07-1"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">4.4.9</a>, rilasciata il 7 agosto, si chiude la storia di PHP4. Era già stato annunciato un anno fa, e dall&#8217;8/8/8 (8 agosto 2008) la versione 4 di PHP non verrà più supportata né sviluppata. Non ci saranno nemmeno patch di sicurezza, se non da parte di terze parti (come Debian, che sicuramente lo supporterà almeno fino al 2010, visto che in lenny c&#8217;è ancora).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Era ora!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">PHP4 ha segnato una discreta svolta rispetto a PHP3, con l&#8217;introduzione della programmazione a oggetti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ma PHP5 è su un altro pianeta. La programmazione a oggetti è enormemente migliorata rispetto al 4, e sono state deprecate diverse feature che rappresentavano enormi buchi di sicurezza o fonti di inefficienze o di mal di testa da parte dei programmatori, tra cui il maledetto register_globals, ma anche il safe mode, le magic_quotes, ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Queste, con PHP6, spariranno del tutto. Quindi conviene iniziare subito a sistemare i propri software, e/o a disinstallare dai propri server i software che ne fanno uso. E con <a href="http://www.php.net/archive/2008.php#id2008-08-01-1"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">PHP6 (e 5.3)</a> verranno introdotte altre novità tra cui i namespace e un maggior supporto a UTF-8.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il problema finora è stata l&#8217;enorme mole di software scritti in PHP3, portati in PHP4 contando su queste caratteristiche, e mai aggiornati, per pigrizia o perché &#8220;finché funziona, non ripararlo&#8221;. Questo ha condizionato la diffusione di PHP5 che, dopo quasi 4 anni dall&#8217;uscita, è adottato ancora da solo il 30% dei provider a livello mondiale.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Chi glielo fa fare di installare PHP5 se nessuno sviluppa col 5, e chi ce lo fa fare di sviluppare in PHP5 se nessun provider ce lo fornisce?</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per fortuna diversi grossi progetti, tra cui <a href="http://drupal.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Drupal</a>, hanno deciso di <a href="http://www.gophp5.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">abbandonare PHP4</a> per &#8220;costringere&#8221; i provider a fornire il 5, e questo ha convinto la Zend a dare <a href="http://www.php.net/archive/2007.php#2007-07-13-1"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">l&#8217;annuncio della morte di PHP4</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ora speriamo che i sysadmin vengano autorizzati all&#8217;upgrade al più presto, anche se ci saranno sicuramente milioni di utenti che si lamenteranno che il loro PHPNuke (una polveriera con la miccia già pronta) in PHP3 non gira più.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Aggiornate!</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080810/il-php4-e-morto-viva-il-php5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vala e Clutter</title>
		<link>http://alex.amiran.it/20080801/vala-e-clutter/</link>
		<comments>http://alex.amiran.it/20080801/vala-e-clutter/#comments</comments>
		<pubDate>Fri, 01 Aug 2008 16:42:58 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/?p=170</guid>
		<description><![CDATA[Interfacce in 3D in modo semplice e veloce. Da un po&#8217; di tempo seguo lo sviluppo di Clutter, una libreria che permette di scrivere interfacce 3D basate su OpenGL, e quindi automaticamente accelerate se avete i driver 3D per la vostra scheda, in modo molto semplice. Non andando molto d&#8217;accordo con il C (mi si [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Interfacce in 3D in modo semplice e veloce.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Da un po&#8217; di tempo seguo lo sviluppo di <a href="http://www.clutter-project.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Clutter</a>, una libreria che permette di scrivere interfacce 3D basate su OpenGL, e quindi automaticamente accelerate se avete i driver 3D per la vostra scheda, in modo molto semplice.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Non andando molto d&#8217;accordo con il C (mi si ingarbugliano spesso i puntatori e i cast <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/>  ), aspettavo che fossero stabili e utilizzabili i <a href="http://www.clutter-project.org/blog/?p=30"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">binding per Vala</a>, e dopo il recente rilascio della versione 0.8.0 di Clutter, finalmente anche i binding sembrano a buon punto, quindi mi sono messo a smanettarci. L&#8217;unica &#8220;fregatura&#8221; è che per ora bisogna scaricarli via SVN e installarli a mano in /usr/share/vala/vapi/.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Purtroppo non si trovano molti <a href="http://www.gnome.org/~aruiz/vala/test-actors.vala"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">esempi in Vala</a>, e quelli che si trovano sono basati sulla versione 0.6.x di Clutter, quindi ho cercato di fare un mix di questi e degli <a href="http://svn.o-hand.com/repos/clutter/trunk/clutter/tests/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">esempi in C sul sito ufficiale</a>, seguendo il <a href="http://www.clutter-project.org/docs/clutter/0.8/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">manuale ufficiale di Clutter</a> che, nella migliore tradizione Gtk/Gnome, è utilissimo se sapete già usarlo, ma molto rognoso se state iniziando, e me ne sono uscito col primo programmino:<span id="more-170" ></span></p>
<pre lang="csharp"   style="font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;">using Clutter;
using GLib;
using Gdk;

public class Scena : GLib.Object
{
    public Clutter.Label label;
    public Clutter.Timeline timeline;
    public Clutter.Color label_white;
    public Clutter.Color label_red;

    construct {

        this.timeline = new Clutter.Timeline(720,15);
        this.timeline.loop = true;
        this.timeline.new_frame += this.frame_cb;

        Clutter.Color label_white = {0xff, 0xff, 0xff, 0xff };
        this.label_white = label_white;

        Clutter.Color label_red = {0xff, 0x00, 0x00, 0xff };
        this.label_red = label_red;

        this.label = new Clutter.Label();
        this.label.set_font_name("Sans 24");
        this.label.set_text("Prova");
        this.label.set_color(ref label_white);
        this.label.set_position(10,10);
        this.label.set_reactive(true);
        this.label.button_press_event += this.button_press;
        this.label.button_release_event += this.button_release;
        this.label.enter_event += this.enter_event;
        this.label.leave_event += this.leave_event;
    }

    public void frame_cb(Clutter.Timeline tl, int frame_num)
    {
        if (frame_num &lt;=360) {
            this.label.set_position(10+frame_num, 10+frame_num);
        } else {
            this.label.set_position(730-frame_num, 730-frame_num);
        }

        this.label.set_rotation(Clutter.RotateAxis.Y_AXIS, frame_num, 0,0,0);
        this.label.set_opacity((uchar)(frame_num%255));
    }

    public bool button_press(Clutter.Label label, Clutter.ButtonEvent event)
    {
        stdout.printf("Button press\n");
        return false;
    }

    public bool button_release(Clutter.Label label, Clutter.ButtonEvent event)
    {
        stdout.printf("Button release\n");
        return false;
    }

    public bool enter_event(Clutter.Label label, Clutter.CrossingEvent event)
    {
        label.set_color(ref this.label_red);
        return false;
    }

    public bool leave_event(Clutter.Label label, Clutter.CrossingEvent event)
    {
        label.set_color(ref this.label_white);
        return false;
    }

}
public class Test : GLib.Object
{
    static void main (string[] args) {
        Clutter.init (ref args);
        Clutter.Stage stage = (Clutter.Stage) Clutter.Stage.get_default ();
        Clutter.Color background;

        stage.get_color(out background);
        background.red = (char) 0x61;
        background.green = (char) 0x64;
        background.blue = (char) 0x8c;
        background.alpha = (char) 0xff;
        stage.set_color (ref background);

        stage.set_size(640, 480);

        var scena = new Scena();

        stage.add_actor(scena.label);
        scena.timeline.start();

        stage.show_all ();

        Clutter.main ();
    }
}</pre>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il programma, se mi passate il francesismo, è di una stupidità disarmante.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si limita a creare un &#8220;attore&#8221; (nel gergo di Clutter) rappresentato da una label (un testo) con font Sans 24 punti, di colore bianco, e a metterlo sulla scena (stage), data da una finestra da 640&#215;480 pixel con sfondo azzurrognolo.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tutto il resto è magia! Viene reso sensibile l&#8217;attore, e vengono intercettati i segnali di base: il puntatore si muove sopra la label, il puntatore esce dalla label, viene premuto il tasto sinistro del mouse, viene rilasciato il tasto sinistro del mouse. Poi il tutto viene animato tramite una timeline, formata da 720 frame a 15 frame al secondo (è già abbastanza fluido. Ho provato anche con 30 e 60, ma la differenza quasi non si nota, tranne per la velocità di movimento della scritta). I 720 frame li ho scelti per non complicarmi la vita, visto che le rotazioni sono in gradi, ma potete usare quello che volete.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La label si muove dall&#8217;angolo in alto a sinistra a quello in basso a destra, e nel frattempo ruota su se stessa e appare piano piano, per poi sparire di nuovo. Il tutto avviene nel callback frame_cb() che, in base al frame in cui si trova, applica le variazioni all&#8217;attore.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se vi muovete col mouse sopra la label, questa diventa rossa, se ne uscite, torna bianca (enter_event e leave_event). Se ci cliccate vi appare un messaggio nella console (button_press e button_release). Il tutto anche mentre la label si muove!</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Le possibilità sono veramente infinite.</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si possono muovere gli attori (che però sono limitati ad essere 2D) in uno spazio completamente 3D. Li si vede rimpicciolire quando si allontanano lungo l&#8217;asse z, e ingrandire quando si avvicinano, e si deformano quando si allontanano dal centro (il punto di fuga della scena). Si possono caricare immagini in diversi formati, compreso l&#8217;SVG (vettoriale).Si possono raggruppare diversi elementi (immagini, testi, video ed altro) in un gruppo che è a sua volta un attore, e può essere spostato, scalato, ruotato, ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Grazie a Pango, il testo non ha limiti di nazionalità e di caratteri strani. Si possono inserire filmati supportati da GStreamer, renderizzare su superfici Cairo, embeddare il tutto in finestre Gtk+ e, tramite librerie esterne, utilizzare un motore basato su leggi fisiche o embeddare il motore WebKit per visualizzare pagine HTML.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Inoltre sono supportati diversi dispositivi di input e si possono definire le animazioni tramite scripting in JSON.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Io ho appena iniziato a scalfire la superficie di questo enorme iceberg, ma già <a href="http://aruiz.typepad.com/siliconisland/2007/11/vala-powered-cl.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">intravedo</a> <a href="http://www.youtube.com/watch?v=GHmkPlW_zt0"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">sviluppi</a> <a href="http://www.youtube.com/watch?v=arL_-tQndzI"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">spaventosi</a>. D&#8217;altronde non serve nemmeno fantasticare tanto. Se avete presente l&#8217;interfaccia dell&#8217;iPhone/iPod Touch o quelle che ho linkato qualche giorno fa per Android, ecco, avete un&#8217;idea di cosa ci si possa fare. Anche Intel, per <a href="http://www.clutter-project.org/blog/?p=58"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Moblin</a>, probabilmente userà clutter per la GUI.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Clutter è anche multipiattaforma, e Vala, dopo aver installato le GLib ed eventualmente le GDK e le Gtk+ sotto Windows/Mac, può essere compilato anche su questi sistemi, quindi i software gireranno senza problemi su tutti e tre i sistemi.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080801/vala-e-clutter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google non è poi così open-friendly&#8230;</title>
		<link>http://alex.amiran.it/20080717/google-non-e-poi-cosi-open-friendly/</link>
		<comments>http://alex.amiran.it/20080717/google-non-e-poi-cosi-open-friendly/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 17:27:44 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Palmari]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[openmoko]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080717/google-non-e-poi-cosi-open-friendly/</guid>
		<description><![CDATA[&#8230; come voleva far sembrare. In questi giorni sono pieno di lavoro fin sopra la testa, quindi perdonatemi se posto poco, ma oggi sono venuto a conoscenza di una cosa che mi ha fatto perdere parecchia della stima che avevo in Google. Sembra che Google stia distribuendo le nuove versioni dell&#8217;SDK per Android solo ai [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">&#8230; come voleva far sembrare.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In questi giorni sono pieno di lavoro fin sopra la testa, quindi perdonatemi se posto poco, ma oggi sono venuto a conoscenza di una cosa che mi ha fatto perdere parecchia della stima che avevo in Google.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Sembra che Google stia distribuendo le nuove versioni dell&#8217;SDK per Android <a href="http://arstechnica.com/news.ars/post/20080715-googles-android-platform-not-so-open-after-all.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">solo ai programmatori che hanno superato la prima fase del concorso</a> per lo sviluppo di applicazioni, quello che <a href="http://alex.amiran.it/20071113/google-android-uscito-il-sdk/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">aveva suscitato le ire degli italiani</a> e anche un&#8217;interrogazione in parlamento, a causa delle nostre leggi sui concorsi.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tutti gli altri sviluppatori stavano aspettando le patch da oltre 4 mesi, e avevano segnalato diversi bug, anche gravi, nell&#8217;SDK stesso, ed ora un dipendente di Google, per sbaglio, ha inviato alla mailing list degli sviluppatori, invece che a quella dei vincitori del concorso, un messaggio in cui li informa che la nuova versione dell&#8217;SDK è disponibile della loro area privata di download.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si è scoperto poi che quegli sviluppatori hanno firmato un NDA (Non Disclosure Agreement) che vieta loro di rilasciare informazioni sull&#8217;SDK.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ora <a href="http://groups.google.com/group/android-discuss/msg/adc90a8673fcfd90"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">molti sviluppatori sono delusi dal comportamento di Google</a>, e io sono d&#8217;accordo con loro. Che senso ha rilasciare l&#8217;SDK solo ad alcuni e non a tutti? Potrebbe essere comprensibile dare un canale preferenziale per le informazioni o per il debug all&#8217;SDK a questa elite, ma lasciare indietro tutti gli altri significa semplicemente che non c&#8217;è alcun interesse nello sviluppo open source, ma solo nello sfruttamento della comunità per la scoperta di bug, senza dare loro nulla in cambio.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Cercando informazioni ho poi scoperto che <a href="http://www.theregister.co.uk/2008/06/06/lefty_and_google/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Google non ha nemmeno mai rilasciato i sorgenti di Android</a>, e che si riserva di farlo solo dopo che sarà uscito il telefono vero e proprio, e che David &#8220;Lefty&#8221; Schlesinger, che se ne è lamentato nella mailing list, è stato moderato per averlo chiesto.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Non mi meraviglia che molti stiano abbandonando Android per sviluppare per l&#8217;iPhone, anche se avrei preferito si fossero rivolti a <a href="http://www.openmoko.com"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">OpenMoko</a>, che ne ha più bisogno. Ma solo sicuro che qualcuno tra loro lo farà.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Pessima figura, Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080717/google-non-e-poi-cosi-open-friendly/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Esse ed Essedue v1.0. Debianizzati</title>
		<link>http://alex.amiran.it/20080712/esse-ed-essedue-v10-debianizzati/</link>
		<comments>http://alex.amiran.it/20080712/esse-ed-essedue-v10-debianizzati/#comments</comments>
		<pubDate>Sat, 12 Jul 2008 15:28:40 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Esse]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080712/esse-ed-essedue-v10-debianizzati/</guid>
		<description><![CDATA[Prima milestone per i miei due programmini. Oggi, con un po&#8217; di tempo a disposizione, mi sono messo a lavorare su Esse ed Essedue, e ho implementato alcune modifiche che mi hanno convinto a portare la versione alla fatidica 1.0: In fase di chiusura viene controllato che non ci siano file aperti e modificati ma [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Prima milestone per i miei due programmini.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Oggi, con un po&#8217; di tempo a disposizione, mi sono messo a lavorare su <a href="http://alex.amiran.it/vala/esse/"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Esse ed Essedue</a>, e ho implementato alcune modifiche che mi hanno convinto a portare la versione alla fatidica 1.0:</p>
<ul>
<li>In fase di chiusura viene controllato che non ci siano file aperti e modificati ma non salvati, e viene chiesta conferma</li>
<li>Si possono aprire file direttamente dalla linea di comando. Se non esistono o sono illeggibili viene aperto un requester di errore</li>
<li>Ho aggiunto un file .desktop, in modo da farli apparire nei menu di Gnome, KDE e dei WM e DM che seguono le direttive freedesktop.org</li>
<li>Entrambi sono stati debianizzati. I file per creare il pacchetto deb sono inclusi assieme ai sorgenti.</li>
</ul>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ora anche chi non era interessato a Vala o alla programmazione in genere, potrà scaricarsi il pacchetto deb della versione che preferisce, presente nella pagina di progetto di <a href="http://alex.amiran.it/vala/esse/"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Esse</a>, ed utilizzarlo. Non ho testato, ma in teoria il pacchetto dovrebbe essere compatibile anche con Ubuntu 8.04.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se non vi piace, aptitude remove è vostro amico.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se trovate dei bug non esitate a segnalarmeli.<span id="more-159" ></span></p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Sviluppi futuri</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A meno che a qualcuno (anche solo uno) non interessi in modo particolare, questa 1.0 sarà l&#8217;ultima versione di Esse (la versione che utilizza Glade), mentre proseguirò lo sviluppo solo di Essedue (la versione &#8220;standalone&#8221;). Il motivo principale è che è noioso fare il porting delle modifiche e delle correzioni tra una versione e l&#8217;altra. Purtroppo glade usa prototipi di chiamata delle callback diversi da quelli di signal_connect(), quindi non basta un copia/incolla, ma devo verificare riga per riga che ogni modifica funzioni in entrambi i casi.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Vista la natura &#8220;piccolo è bello&#8221; di Esse, togliere la dipendenza da glade e da un file esterno è il passo più logico per mantenere semplice il software.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La versione 1.0 resterà comunque a disposizione anche per studiarne il sorgente, e correggerò i bug che si presenteranno.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La versione 2.x (con supporto per configurazioni e, forse, stampa) sarà solo per Essedue.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080712/esse-ed-essedue-v10-debianizzati/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essedue v0.1</title>
		<link>http://alex.amiran.it/20080704/essedue-v01/</link>
		<comments>http://alex.amiran.it/20080704/essedue-v01/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 18:28:48 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Esse]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080704/essedue-v01/</guid>
		<description><![CDATA[Esse, ancora più scarno Segnalo a chi fosse interessato, nella pagina dedicata ad Esse, il mio micro-editor scritto in Vala, la disponibilità di Essedue. Si tratta dello stesso micro-editor, con le stesse caratteristiche minimali, a cui è stata completamente rimossa la dipendenza da Glade. Ora la GUI viene costruita interamente da codice, e per i [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Esse, ancora più scarno</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Segnalo a chi fosse interessato, nella <a href="http://alex.amiran.it/vala/esse/"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">pagina dedicata ad Esse</a>, il mio micro-editor scritto in Vala, la disponibilità di Essedue.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si tratta dello stesso micro-editor, con le stesse caratteristiche minimali, a cui è stata completamente rimossa la dipendenza da Glade. Ora la GUI viene costruita interamente da codice, e per i menu e la toolbar ho utilizzato UIManager.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il pacchetto è più piccolo, in quanto XML non è proprio un formato &#8220;risparmioso&#8221;, mentre l&#8217;eseguibile è cresciuto leggermente, da 36 a 40 KB. In compenso, in memoria, esse occupa 13.3 MB (di cui 8.1 condivisi, quindi 5.2) ed essedue 12.6 (di cui 7.6 condivisi, quindi 5.0). In pratica tutto il risparmio, come previsto, è dato dalla libglade (500 KB) e dal DOM XML per la stessa (circa 200 KB). Il risparmio non è enorme, soprattutto in un sistema che usa già glade per altri software, ma in un sistema embedded come un palmare anche solo quei 200 KB potrebbero essere utili per qualcos&#8217;altro.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per fare un confronto molto spannometrico, geany occupa 19.2 MB (di cui 9.5 condivisi, quindi 9.8) e gedit  28.5 (di cui 15 condivisi, quindi 13.5).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ora non mi resta che capire dove vadano a finire quei 5 MB, viste le dimensioni dell&#8217;eseguibile, ma presumo in strutture di sistema, aree allocate dalle librerie, bitmap dei widget, ecc. Mi piacerebbe capire se si possono ridurre.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080704/essedue-v01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Esse 0.1, un piccolo editor in Vala</title>
		<link>http://alex.amiran.it/20080605/esse-01-un-piccolo-editor-in-vala/</link>
		<comments>http://alex.amiran.it/20080605/esse-01-un-piccolo-editor-in-vala/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 17:06:57 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Esse]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080605/esse-01-un-piccolo-editor-in-vala/</guid>
		<description><![CDATA[La mia prima applicazione in Vala. Che emozione! Come promesso, ho trovato il tempo di ripulire un po&#8217; il codice del mio primo programmino in Vala, e per l&#8217;occasione ho creato una sezione apposita del sito dedicata a Vala, con una sottosezione dedicata a questo programmino, che ho chiamato Esse (spero non ci siano altri [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">La mia prima applicazione in Vala. Che emozione! <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Come promesso, ho trovato il tempo di ripulire un po&#8217; il codice del mio primo programmino in Vala, e per l&#8217;occasione ho creato <a href="http://alex.amiran.it/vala/"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">una sezione apposita del sito dedicata a Vala</a>, con una sottosezione dedicata a questo programmino, che ho chiamato <a href="http://alex.amiran.it/vala/esse/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Esse</a> (spero non ci siano altri software con lo stesso nome&#8230;).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il codice non è molto denso di commenti, anche perché, secondo me, è talmente chiaro e lineare che avrei finito col riscrivere in italiano quello che già si capisce leggendolo. L&#8217;unica cosa che forse confonde un po&#8217; le acque sono i continui cast tra un oggetto e l&#8217;altro. Spero che nelle future versioni di Vala il tutto venga un po&#8217; automatizzato e reso più trasparente.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Che altro aggiungere? Scaricatelo, guardate il sorgente, provatelo e fatemi sapere le vostre impressioni. La licenza è GPL2.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Vi ricordo che avrete bisogno del compilatore Vala (e del GCC) per compilarlo. In Debian Lenny (testing) è già presente da diversi mesi, quindi basta un</p>
<pre  style="font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;font-family: 'DejaVu Sans Mono' Consola Inconsolata fixed; margin: 1em; padding: 0.5em; border: 1px solid #9f9;">aptitude install valac</pre>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Happy hacking. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/> </p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080605/esse-01-un-piccolo-editor-in-vala/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vala e D</title>
		<link>http://alex.amiran.it/20080522/vala-e-d/</link>
		<comments>http://alex.amiran.it/20080522/vala-e-d/#comments</comments>
		<pubDate>Thu, 22 May 2008 17:39:10 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[d]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080522/vala-e-d/</guid>
		<description><![CDATA[Una prima veloce analisi dei due nuovi linguaggi. Come mi ero ripromesso, in questi 5 mesi ho dato un&#8217;occhiata a questi due nuovi linguaggi che sono apparsi sulla scena, e mi sono fatto un&#8217;idea sommaria delle loro capacità. Vediamone velocemente le caratteristiche, i pro e i contro. D D è un linguaggio sviluppato dalla digitalmars, [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Una prima veloce analisi dei due nuovi linguaggi.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Come <a href="http://alex.amiran.it/20080101/i-buoni-propositi-per-il-2008/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">mi ero ripromesso</a>, in questi 5 mesi ho dato un&#8217;occhiata a questi due nuovi linguaggi che sono apparsi sulla scena, e mi sono fatto un&#8217;idea sommaria delle loro capacità.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Vediamone velocemente le caratteristiche, i pro e i contro.<span id="more-117" ></span></p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">D</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><a href="http://www.digitalmars.com/d/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">D</a> è un linguaggio sviluppato dalla digitalmars, cercando di prendere il meglio da C++, Java, C# ed Eiffel. Ne è venuto fuori un linguaggio molto potente, che supporta programmazione ad oggetti, metaprogrammazione, moduli, unit testing integrato nel linguaggio e gestione automatizzata della memoria con garbage collector. Si può inoltre scrivere codice assembly direttamente nei sorgenti D.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il tutto viene compilato in codice macchina, ed usa solo una libreria compilata staticamente nel software per tutte le funzionalità di base, mentre si avvale di due librerie dinamiche (tango e phobos) per alcune caratteristiche più avanzate.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il codice sorgente è generalmente abbastanza pulito, e le prestazioni dei programmi generati sono, in alcuni casi, migliori degli equivalenti in C++.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La <a href="http://www.digitalmars.com/NewsGroup.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">comunità</a> è già molto vasta, e <a href="http://www.dsource.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">ha creato</a> (o sta creando) bindings per le più comuni librerie, che comunque richiedono un lavoro di programmazione scarsamente automatizzabile, oltre a software di supporto come IDE o generatori di documentazione direttamente dai sorgenti, oltre a librerie apposite per questo linguaggio.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tra gli svantaggi più gravi, secondo me, il fatto che il linguaggio viene portato avanti praticamente da una sola persona (Walter Bright) che, per quanto bravo, rallenta lo sviluppo del linguaggio. Ancora peggio, sempre secondo me, il fatto che la licenza con cui viene distribuito il compilatore ufficiale (DMD) non è di tipo open source, e per questo non è possibile inserirlo in alcune distribuzioni, come Debian, che usano solo software open.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In realtà esiste una versione open source del compilatore, <a href="http://dgcc.sourceforge.net/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">GDC</a>, che però è anch&#8217;essa sviluppata da una sola persona, per di più spesso latitante, e che usa un frontend coperto da copyright (di DigitalMars), per cui non può essere integrato in GCC, dove avrebbe una comunità di sviluppatori molto più vasta. Inutile dire che Bright non ha alcuna intenzione di cedere il copyright a FSF.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il linguaggio sembra ottimo come general purpouse, è in gran parte multipiattaforma, ma sotto Linux presenta alcuni problemi che me l&#8217;hanno fatto scartare a favore di Vala. Per esempio il fatto che molti software devono essere adattati a livello sorgente per poter essere compilati con GDC (che è presente in Debian), ed altri che proprio non funzionano con GDC. Tra questi ci sono anche i binding per le librerie Gtk+, chiamati <a href="http://www.dsource.org/projects/gtkd"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">GtkD</a>. Questo costringe ad usare il compilatore closed source dmd per scrivere programmi gtk, e quindi li esclude automaticamente da un&#8217;eventuale inclusione in Debian (infatti non esiste il pacchetto deb per GtkD).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Anche la libreria che dovrebbe essere standard di D (Tango) non esiste in formato opensource, mentre si trova solo Phobos, che sembra sia deprecata. In generale la situazione intorno a D è spesso molto confusionaria, anche se si stanno sviluppando progetti particolarmente interessanti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo non ha impedito a <a href="http://www.asahi-net.or.jp/~cs8k-cyu/index_e.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Kenta Cho</a> di sviluppare degli ottimi giochi per Linux che sfruttano SDL sotto Linux (li trovate sotto &#8220;Windows&#8221;, ma molti possono essere compilati quasi senza modifiche per Linux, e sono presenti in Debian).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">I programmi compilati con D possono non richiedere alcuna libreria, il che lo rende buono/ottimo per scrivere software di sistema come driver, daemon e simili. Purtroppo, per ora, si portano dietro una libreria compilata staticamente che porta la dimensione minima di un eseguibile oltre i 350 KB anche per un semplice Hallo World.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Vala</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tutt&#8217;altro percorso ha portato allo sviluppo di <a href="http://live.gnome.org/Vala/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Vala</a>, che nasce come wrapper intorno a GObject, uno dei componenti di <a href="http://library.gnome.org/devel/glib/2.16/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">GLib</a> da cui ereditano anche tutti gli oggetti di Gtk+.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il linguaggio si ispira molto a C# per la sintassi, ed è puramente ad oggetti. In effetti ogni oggetto definito in Vala dovrebbe essere dichiarato come figlio di GObject per garantire il corretto funzionamento del software con tutte le caratteristiche previste.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questa stretta dipendenza porta, per esempio, ad avere supporto diretto per tutti i tipi supportati dalle GLib (quindi interi da 8 a 64 bit, numeri floating point a vari livelli di precisione, ma anche array, hashtable, liste, ecc.), ed al sistema di gestione dei segnali di questa libreria, che permette di definire con una sintassi semplicissima l&#8217;associazione tra un segnale emesso da un oggetto (come un click su un pulsante) e la callback corrispondente (la funzione che gestisce il segnale).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Anche per Vala la gestione della memoria è automatizzata, in questo caso dai meccanismi già collaudati di GLib. Le variabili vengono liberate automaticamente quando non servono più, e le liste e le hash table si estendono automaticamente quando serve più spazio.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il codice Vala viene &#8220;compilato&#8221; in codice puro in C, che viene quindi passato a GCC per la compilazione definitiva. Questo doppio passaggio, al di là di una (piccola) perdita di prestazioni in fase di compilazione, garantisce invece ottime prestazioni in fase di esecuzione (anche qui, in alcuni casi migliori dell&#8217;equivalente scritto in C++), ed una compatibilità perfetta con altri software.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si può quindi scrivere in Vala una libreria che poi si potrà usare in C o in qualsiasi altro linguaggio, così come si può usare in Vala una qualsiasi libreria per Linux tramite la scrittura di un file di definizione (VAPI) per le sue funzioni. In alcuni casi questo file può essere generato in modo quasi automatico da alcuni tool, e in pochi mesi sono nati <a href="http://www.vala-project.org/doc/docu/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">decine di binding a librerie più o meno conosciute</a>, a partire, naturalmente, dalle Gtk, passando per molte librerie di Gnome (tra cui GStreamer, Canvas, GIO, Glade, ecc.), per finire con Gecko e Webkit, SDL, Hildon, JSON, Curses, SOUP, USB, ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il linguaggio è quindi ottimo per scrivere software con interfaccia grafica, principalmente Gtk, e rimane ottimo anche per software di base come i daemon o i plugin per Gnome, in quanto l&#8217;unica libreria essenziale per il funzionamento è appunto la GLib. Non è adatto a scrivere driver per il kernel, anche se, con un po&#8217; di attenzione, forse ci si può riuscire.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tra i difetti del linguaggi, sicuramente, la sua giovane età, che implica che lo sviluppo sia a volte vorticoso al punto da rendere incompilabile un software scritto per una versione sulla versione successiva. Nella maggior parte dei casi, comunque, si tratta di correggere pochi punti del codice per adeguarsi alle nuove caratteristiche.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ci sono ancora alcuni bug aperti su cui gli sviluppatori non hanno ancora messo le mani, ma in generale per quelli più gravi la velocità di risposta e di correzione è molto alta, nonostante il numero esiguo di programmatori, in pratica solo uno fisso, Juerg Billeter, con il contributo di Raffaele Sandrini e, sporadicamente, di una decina di altri che seguono la <a href="http://mail.gnome.org/mailman/listinfo/vala-list"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">mailing list</a> e propongono patch.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Stando alla <a href="http://live.gnome.org/Vala/RoadMap"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Roadmap</a>, verso la fine dell&#8217;anno è prevista la versione 1.0, e finora i rilasci sono stati abbastanza ben rispettati.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Forse il difetto più grosso che ho riscontrato, ad oggi, è la <a href="http://www.vala-project.org/doc/vala/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">documentazione molto carente</a>. Fortunatamente gli esempi che si trovano in giro e il supporto della mailing list del progetto spesso aiutano a portare avanti il lavoro, anche se un po&#8217; a braccio.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">La scelta</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Immagino che dal mio entusiasmo nella descrizione si sia già capito cosa ho scelto. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">&#8220;Purtroppo&#8221; la gran parte del software che scrivo ha a che fare con le interfacce e coi database (e tutto è per il web o per Linux), quindi per me è fondamentale che siano ben supportate le librerie Gtk (non mi piacciono le Qt&#8230;), e D era troppo limitato da questo punto di vista, oltre ad essere molto più complicato compilare i vari moduli-binding per le altre librerie come SQLite, MySQL, ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Non è un brutto linguaggio, tutt&#8217;altro, e mi riprometto di studiarlo meglio in futuro, sperando che nel frattempo il supporto del compilatore GDC e, soprattutto, dei binding per le varie librerie vengano migliorati. Purtroppo in questi 5 mesi non ho visto molto fermento nella comunità, mentre lo sviluppo di Vala procede con una velocità che non avevo mai visto prima, nonostante il numero molto più ridotto di partecipanti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Nel giro di un weekend ho quasi completamente finito di scrivere in Vala un editor (molto semplice) a tab in Gtk, in meno di 400 righe di codice, che compila in un eseguibile di circa 35 KB (in memoria occupa di più, circa 12 MB, ma in gran parte sono librerie condivise come gtk, pango, ecc., quindi l&#8217;occupazione reale è inferiore ai 4 MB).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Appena riuscirò a trovare il tempo di renderlo compilabile (e magari avrò ripulito un po&#8217; il codice) lo metterò scaricabile da qui. L&#8217;ho sviluppato con la versione 0.3.1 del compilatore ma, in seguito a una mia segnalazione di bug sui binding per GLib Module, Juerg ha separato, nella versione 0.3.2, il vapi di GModule da quello di GLib, quindi devo rivedere le inclusioni. Credo sia questione di 15 minuti sistemarlo, ma voglio vedere bene cosa ha combinato.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080522/vala-e-d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi core e programmazione concorrente</title>
		<link>http://alex.amiran.it/20080428/multi-core-e-programmazione-concorrente/</link>
		<comments>http://alex.amiran.it/20080428/multi-core-e-programmazione-concorrente/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 16:45:35 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[ottimizzazione]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080428/multi-core-e-programmazione-concorrente/</guid>
		<description><![CDATA[Bisogna adeguarsi al mondo che cambia&#8230; Qualche giorno fa Donald Knuth, uno dei mostri sacri della programmazione, autore di vari libri della serie Art of Computer Programming, ha rilasciato un&#8217;intervista a InformIT in cui, tra le altre cose, esprime un parere estremamente negativo sulla attuale tendenza dei produttori hardware verso le architetture multi-core. Il suo [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Bisogna adeguarsi al mondo che cambia&#8230;</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Qualche giorno fa Donald Knuth, uno dei mostri sacri della programmazione, autore di vari libri della serie Art of Computer Programming, ha rilasciato <a href="http://www.informit.com/articles/article.aspx?p=1193856"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">un&#8217;intervista a InformIT</a> in cui, tra le altre cose, esprime un parere estremamente negativo sulla attuale tendenza dei produttori hardware verso le architetture multi-core.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il suo pensiero si può riassumere più o meno con: i produttori hardware non sanno più come migliorare le prestazioni dei loro chip, quindi hanno riciclato l&#8217;idea del multiprocessing, mantenendo le prestazioni fisse (o inferiori) su un singolo core, e mettendo diversi core per poter dire che la CPU è più veloce. In questo modo fanno ricadere la &#8220;colpa&#8221; nel mancato rispetto della legge di Moore (il raddoppio della potenza di elaborazione ogni 18 mesi) sui programmatori, dicendo che non sono in grado di scrivere software adatto alle nuove architetture.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Io, come diceva un saggio, sono &#8220;completamente d&#8217;accordo a metà col mister&#8221;.<span id="more-112" ></span></p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Il problema hardware</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Tutto si riconduce alla sostanziale stagnazione delle prestazioni delle CPU single-core da qualche anno a questa parte. Si sono raggiunte miniaturizzazioni oltre le quali si rischia di creare corto-circuiti tra i componenti, e frequenze oltre le quali si rischia di generare interferenze tra le piste o, peggio, surriscaldamenti e consumi sproporzionati, che possono portare la CPU a fondere o a esplodere letteralmente in mancanza di sistemi di raffreddamento che sono sempre più esagerati (dai ventoloni da 6&#8243; a 5-6000 giri/minuto a sistemi di raffreddamento a liquido o a celle di Peltier).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Semplicemente sembra che la tecnologia abbia quasi raggiunto il suo limite e, a meno di un &#8220;breakthru&#8221; nei metodi costruttivi, che comunque molti stanno cercando nel campo ottico o quantistico, sarà difficile spremere ulteriore potenza ai chip.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La soluzione, quindi, è stata quella di riciclare la vecchia idea del multi-processore, ma ottimizzandola: si mettono più processori sullo stesso chip, in modo da non occupare il bus principale di sistema durante le sincronizzazioni tra core, che quindi rimane libero per i trasferimenti da e per la RAM e il resto del sistema. Sono ormai diffusissimi i dual core, e si vedono tri-core, quad-core e anche chip a 8 core.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il risultato, indubbiamente, è quello di raddoppiare, triplicare, quadruplicare o ottuplicare la &#8220;potenza&#8221; disponibile.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Il problema software</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dal punto di vista software le cose non sono così semplici, purtroppo.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Il primo problema è quello a carico del Sistema Operativo, che deve garantire una certa sicurezza all&#8217;utente: che i suoi dati siano integri. In un&#8217;architettura multiprocessore (o multi-core, che è praticamente la stessa cosa) fisicamente vengono eseguite più operazioni contemporaneamente. Questo significa che ognuno dei core può (o potrebbe) modificare la stessa cella di memoria, o magari leggerla mentre un&#8217;altro la sta scrivendo, per non parlare dell&#8217;accesso contemporaneo a una periferica.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Parte di questo problema viene risolta dall&#8217;hardware, che arbitra l&#8217;accesso al bus ai processori, ma buona parte viene comunque delegata al S.O., visto che comunque una operazione che un software ritiene &#8220;elementare&#8221; come può essere scrivere un carattere sullo schermo viene spezzettata in decine o centinaia di istruzioni a livello assembly.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Inoltre il S.O. deve mantenere una certa affinità di un processo con una CPU, per evitare che dopo un context switch, un processo rimbalzi tra una CPU e l&#8217;altra, svalidando continuamente la cache relativa, e quindi ammazzando le prestazioni. Ma anche l&#8217;affinità deve essere tenuta sotto controllo, per evitare che, morti tutti i processi che giravano su una CPU, i restanti sfruttino solo l&#8217;altra, dimezzando le prestazioni.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo porta quindi a dei rallentamenti per proteggere zone di memoria o semplicemente per decidere su quale CPU/core debba essere eseguita una certa operazione.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">L&#8217;altra faccia della medaglia è rappresentata dagli algoritmi: se c&#8217;è un solo processo che gira (e che fa calcoli pesanti, per esempio), questo occuperà una sola CPU, mentre l&#8217;altra sarà completamente inerte, dimezzando le prestazioni nel caso di un dual-core, o riducendole a 1/8 nel caso di un 8-core. Nel caso di 64 core&#8230;</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Alcuni algoritmi possono essere resi paralleli, ma anche in questo caso si presentano diversi problemi: per esempio l&#8217;algoritmo potrebbe essere parallelizzabile in due &#8220;stream&#8221; di calcolo, ma allora in una CPU ad 8 core ne sfrutterebbe solo due. Oppure potrebbe essere parallelizzabil, per esempio, con un numero di processi pari a 1/4 del totale dei dati. Ma allora con 16 &#8220;dati&#8221; si potrebbero sfruttare bene 4 core ma non sfruttarne 8, ma soprattutto con un milione di &#8220;dati&#8221; si sfrutterebbero bene 250.000 core, ma avendone solo 2 si creerebbero 125.000 processi per core, costringendo il S.O. a gestire questa enorme coda di processi, con la possibilità di passare più tempo a sincronizzare i processi che ad eseguirli.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Visto l&#8217;attuale tendenza (2 core, 4 core, 8 core e in aumento costante) è difficile pensare ad algoritmi &#8220;ben parallelizzabili&#8221; su diverse architetture. In pratica è un bersaglio mobile.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La &#8220;terza faccia della medaglia&#8221; è data dal fatto che non è affatto semplice, oggi come oggi, scrivere codice parallelo.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Si possono scrivere programmi multiprocesso per isolare i dati da elaborare e comunicare solo tramite dei &#8220;bus&#8221; (code messaggi, buffer, ecc.) tra i vari processi in esecuzione, oppure multithread, condividendo la stessa area di memoria per evitare l&#8217;overhead dei suddetti bus, ma col rischio di andare a sovrascrivere aree di memoria sbagliate e quindi mandando a monte tutti i calcoli effettuati.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">I linguaggi di programmazione attuali raramente offrono facilitazioni da questo punto di vista, quindi si tratta di un lavoro fondamentalmente manuale di sincronizzazione e trasferimento dati. Operazioni che rischiano di azzerare i vantaggi di un multicore, se effettuate in modo meno che ottimo.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Conclusioni</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La situazione è abbastanza complessa, ma è già stata affrontata in passato, ed esistono tecniche di programmazione e librerie ben collaudate, ma rimane lo scoglio della difficoltà di ottimizzazione, soprattutto rispetto ad architetture che cambiano continuamente numero di core.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dall&#8217;altra parte il multicore è un &#8220;male necessario&#8221;, altrimenti saremmo ancora fermi a 2 anni fa con le prestazioni, ed il nuovo processore Atom di Intel ne è la dimostrazione: single core a 1.6 GHz più lento del Celeron M a 900 MHz. Certo, consuma meno, ma fornisce prestazioni maggiori solo se in modalità dual-core.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dovremo quindi abituarci a convivere con questa architettura almeno per qualche anno (poi, per i soliti corsi e ricorsi storici, si tornerà al single core, magari quantistico, finché non si riterrà nuovamente necessario ricorrere ai multi-core quantistici, ecc. ecc.).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per i programmatori significa adeguarsi ad imparare la programmazione concorrente, e la mia speranza è che i nuovi linguaggi che si stanno affacciando ora sul mondo (D, Vala, ecc.) forniscano strumenti semplici per ottenerla. Con alcuni linguaggi semplicemente è impossibile programmare in modo concorrente, quindi potrebbero essere destinati se non all&#8217;oblio almeno a un forte ridimensionamento, in caso non si adeguassero.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per gli utenti significa capire il proprio PC, e sfruttarlo al meglio. Per esempio lanciare due istanze della stessa applicazione contemporaneamente al lavoro su dati diversi per sfruttare entrambi i core, se l&#8217;applicazione non li supporta di suo. Un caso emblematico: compilando software su Linux con make è sufficiente specificare l&#8217;opzione -j seguita dal numero di job contemporanei da eseguire. Conviene usare n+1, dove n è il numero di CPU/core, quindi 3 per un dual-core, 5 per un quad-core, ecc. (il +1 serve a sfruttare tutte le CPU in compilazione mentre il processo extra legge o scrive su disco).</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080428/multi-core-e-programmazione-concorrente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.5</title>
		<link>http://alex.amiran.it/20080317/zend-framework-15/</link>
		<comments>http://alex.amiran.it/20080317/zend-framework-15/#comments</comments>
		<pubDate>Mon, 17 Mar 2008 18:17:13 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080317/zend-framework-15/</guid>
		<description><![CDATA[Nuova versione del framework &#8220;ufficiale&#8221; per PHP, con numerose novità interessanti. Assieme a un restyling del sito, che trovo molto meglio del precedente (almeno ora è fluido in verticale), anche se ha ancora qualche link rotto, è stata annunciata oggi la nuova versione di Zend Framework, la 1.5. Le principali novità di questa versione sono [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Nuova versione del framework &#8220;ufficiale&#8221; per PHP, con numerose novità interessanti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Assieme a un restyling del sito, che trovo molto meglio del precedente (almeno ora è fluido in verticale), anche se ha ancora qualche link rotto, è stata annunciata oggi la <a href="http://framework.zend.com/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">nuova versione di Zend Framework</a>, la 1.5.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Le principali novità di questa versione sono <a href="http://framework.zend.com/manual/en/zend.layout.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Zend_Layout</a>, che permette di avere un layout comune a tutte le pagine invece di doverlo ripetere per ogni View o di dover usare accrocchi per includere i pezzi in ogni View, e <a href="http://framework.zend.com/manual/en/zend.form.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Zend_Form</a>, che permette di creare dei form da passare alla View e di inglobare negli stessi le informazioni per la validazione dei campi oltre a permetterne la validazione al volo anche tramite AJAX (informando il browser tramite JSON sugli eventuali errori).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ci sono <a href="http://devzone.zend.com/article/3270-Zend-Technologies-Releases-Zend-Framework-1.5"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">moltissime altre novità</a>, naturalmente, oltre a diversi bugfix.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Più veloce della luce Akrabat, che in contemporanea ha rilasciato la sua nuova versione (anche questa 1.5) del <a href="http://akrabat.com/zend-framework-tutorial/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">tutorial per Zend Framework</a>, includendo già le informazioni su Zend_Layout e Zend_Form.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Trovo molto intelligente la sua scelta di categorizzare i vari form come Model, ma devo ancora vedere la documentazione ufficiale, se già lo prevedeva.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In realtà ad una prima occhiata avevo classificato Zend_Form come una feature utile al massimo per chi scrive CMS, perché rimuove dalla View le informazioni sul form, rendendo la vita difficile ai grafici/HTMListi quando si lavora in un ambiente misto, ma ora sto meditando se ricredermi. Forse lo proverò direttamente sul campo per vedere le reazioni.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ho già installato il nuovo framework in parallelo al precedente 1.0 (che mantengo per non rischiare la compatibilità di alcune applicazioni già scritte) e nei prossimi giorni lo proverò sicuramente.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080317/zend-framework-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>De Icaza ripudia l&#8217;accordo con Microsoft</title>
		<link>http://alex.amiran.it/20080307/de-icaza-ripudia-laccordo-con-microsoft/</link>
		<comments>http://alex.amiran.it/20080307/de-icaza-ripudia-laccordo-con-microsoft/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 17:41:38 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[d]]></category>
		<category><![CDATA[gambas]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[novell]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[vala]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080307/de-icaza-ripudia-laccordo-con-microsoft/</guid>
		<description><![CDATA[Qualcosa si (s)muove. Durante una conferenza a Las Vegas, Miguel de Icaza, sul palco assieme a rappresentanti della Microsoft, incalzato da alcune domande di Mike Shcroepfer (di Mozilla) ha prima cercato di spiegare come l&#8217;accordo con Microsoft protegga solo chi scarica Moonlight dal sito Novell e non da altri siti, e infine ha ammesso che, [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Qualcosa si (s)muove.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Durante una <a href="http://www.linuxworld.com/news/2008/030608-mix-novells-de-icaza-criticizes.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">conferenza a Las Vegas, Miguel de Icaza</a>, sul palco assieme a rappresentanti della Microsoft, incalzato da alcune domande di Mike Shcroepfer (di Mozilla) ha prima cercato di spiegare come l&#8217;accordo con Microsoft protegga solo chi scarica Moonlight dal sito Novell e non da altri siti, e infine ha ammesso che, se fosse stato per lui, l&#8217;accordo con Microsoft non si sarebbe dovuto fare, ma non era in posizione di decidere.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">De Icaza, cofondatore del progetto GNOME e della (ormai estinta) Ximian, ora è vice presidente di Novell.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><a href="http://www.mono-project.com/Moonlight"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Moonlight</a>, per chi ancora non lo sapesse, è l&#8217;implementazione &#8220;open source&#8221; (tra virgolette perché appesantita dai brevetti Microsoft) di Silverlight, la risposta di MS, appunto, a <a href="http://www.adobe.com/products/flex/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Flash/Flex/AIR</a> di Adobe. Per come la vedo io, sono entrambe tecnologie chiuse, anche se apparentemente open, quindi da evitare finché possibile.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Di recente Nokia (probabilmente stressata da MS) ha annunciato che avrebbe reso disponibile Silverlight sui suoi cellulari intelligenti (le serie S40 e S60).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Novell aveva già ricevuto pesanti critiche dalla comunità per il suo accordo con &#8220;il nemico&#8221;, soprattutto dal sito <a href="http://boycottnovell.com/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">BoycottNovell</a>, che <a href="http://boycottnovell.com/2007/06/24/moonlight-pet-project/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">non ha mancato di criticare anche Moonlight</a>. Forse De Icaza si sta accorgendo che nel mondo Linux perdere il supporto della comunità può essere molto rischioso.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Secondo me, semplicemente, Linux non ha bisogno di Mono. Nessuna applicazione (che io sappia) scritta per .Net funziona su Linux, nemmeno le più semplici. E tutte quelle scritte per Linux sfruttano Gtk o meccanismi di Linux, per cui non funzionano con Windows, quindi il motivo principale dell&#8217;esistenza di Mono viene a cadere. Ritengo che ci siano già molti strumenti per sviluppare rapidamente su Linux (dall&#8217;immensità di librerie disponibili per C e C++ a <a href="http://www.python.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Python</a>, passando per <a href="http://gambas.sourceforge.net/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Gambas</a>, <a href="http://www.ruby-lang.org/en/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Ruby</a>, e anche Java. E perfino <a href="http://www.php.net/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">PHP</a>, volendo, anche fuori dal web), e che sarebbe meglio spendere energie per sviluppare progetti più significativi, come <a href="http://live.gnome.org/Vala"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Vala</a> e <a href="http://dgcc.sourceforge.net/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">GDC</a>, che hanno una cronica mancanza di sviluppatori, ma nonostante ciò stanno crescendo.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080307/de-icaza-ripudia-laccordo-con-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.0.4 e 1.5RC</title>
		<link>http://alex.amiran.it/20080227/zend-framework-104-e-15rc/</link>
		<comments>http://alex.amiran.it/20080227/zend-framework-104-e-15rc/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 12:52:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080227/zend-framework-104-e-15rc/</guid>
		<description><![CDATA[Disponibili le nuove versioni del framework ufficiale Zend per PHP. Sono state annunciate ieri le due nuove versioni dello Zend Framework. La 1.0.4 è una maintenance release, che corregge un centinaio di bug. Sarò stato fortunato, o magari non uso ancora molte delle funzioni del framework, ma non mi è ancora mai capitato di incappare [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Disponibili le nuove versioni del framework ufficiale Zend per PHP.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Sono state annunciate ieri le <a href="http://framework.zend.com/download"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">due nuove versioni dello Zend Framework</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La 1.0.4 è una maintenance release, che corregge un centinaio di bug. Sarò stato fortunato, o magari non uso ancora molte delle funzioni del framework, ma non mi è ancora mai capitato di incappare in un errore da quando ZF è alla versione 1.0.x. Ne ho trovati un paio mentre era in beta, corretti rapidamente.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">La 1.5RC è la prima release candidate della nuova versione, che dovrebbe uscire in versione definitiva entro 1 mesetto. Qui le novità rispetto alla 1.0.x sono moltissime. La più importante, forse, è il nuovo modulo Zend_Layout che dovrebbe risolvere molti problemi dell&#8217;attuale modello di View in caso di siti con layout molto simile in molte pagine: la maggior parte, insomma. Altre innovazioni sono lo Zend_Form (che personalmente non mi piace molto perché sembra mischi la logica di Controller e View, ma dovrò approfondire) che supporta form potenziati da AJAX, nuovi helpers per Action e View per un migliore supporto AJAX, nuovi componenti per Advanced View, nuovi componenti per l&#8217;autenticazione tramite Information Card e OpenID, e miglioramenti importanti a Lucene (un &#8220;motore di ricerca&#8221; integrato nel framework, per indicizzare documenti di vari tipi), per la generazione di PDF (ora con supporto UTF-8) e ai web services (Technorati e Slide Share).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Entrambe richiedono almeno PHP 5.1.4 per funzionare, ma io consiglio di passare direttamente a PHP 5.2.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Spero solo di trovare un po&#8217; di tempo per smanettare con la 1.5. Alcuni dei nuovi moduli sembrano molto interessanti.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Devo però muovere una critica agli sviluppatori: nella documentazione non si capisce da quale versione un certo modulo o una certa funzione sono state implementate, col risultato che ci si trova magari a cercare di usare con la 1.0.4 una funzione o una classe che esistono solo nella 1.5 e non si capisce dove sia l&#8217;errore finché non si va a vedere il sorgente del framework. Appena mi verrà attivato l&#8217;account nel bug tracker credo che aprirò una segnalazione a proposito.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080227/zend-framework-104-e-15rc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP, CGI, APC</title>
		<link>http://alex.amiran.it/20080114/php-cgi-apc/</link>
		<comments>http://alex.amiran.it/20080114/php-cgi-apc/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 17:38:49 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080114/php-cgi-apc/</guid>
		<description><![CDATA[Oggi stavo cercando di abilitare APC in locale (prima di metterlo sul server) per due motivi: migliorare le prestazioni di PHP e abilitare la possibilità di monitorare gli upload via AJAX. Purtroppo ho scoperto sulla mia pelle che APC non serve a niente se si usa PHP via CGI, perché tiene tutte le pagine precompilate [...]]]></description>
			<content:encoded><![CDATA[<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Oggi stavo cercando di abilitare <a href="http://it.php.net/apc"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">APC</a> in locale (prima di metterlo sul server) per due motivi: migliorare le prestazioni di PHP e abilitare la possibilità di <a href="http://www.phpriot.com/articles/php-ajax-file-uploads/1"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">monitorare gli upload via AJAX</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Purtroppo ho scoperto sulla mia pelle che APC non serve a niente se si usa PHP via CGI, perché tiene tutte le pagine precompilate in shared memory, che naturalmente viene liberata alla fine di ogni processo CGI.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Quindi se state usando PHP come CGI, lasciate perdere APC. <a href="http://eaccelerator.net/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">eAccelerator</a> funziona, perché salva i precompilati su disco oltre che in RAM, ma non supporta (che io sappia) il monitoraggio degli upload.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dovrò decidermi prima o poi a passare PHP4 in CGI e promuovere PHP5 a modulo di Apache, ma servirà un po&#8217; di tempo per verificare che funzioni tutto senza problemi.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080114/php-cgi-apc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I buoni propositi per il 2008</title>
		<link>http://alex.amiran.it/20080101/i-buoni-propositi-per-il-2008/</link>
		<comments>http://alex.amiran.it/20080101/i-buoni-propositi-per-il-2008/#comments</comments>
		<pubDate>Tue, 01 Jan 2008 12:24:55 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[d]]></category>
		<category><![CDATA[Giappone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[subnotebook]]></category>
		<category><![CDATA[vala]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zaurus]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20080101/i-buoni-propositi-per-il-2008/</guid>
		<description><![CDATA[Buon 2008 a tutti! Dopo il post per gli auguri di Natale sicuramente non ve ne aspettavate uno per gli auguri di buon anno, vero? Voevo postarlo poco dopo mezzanotte, ma la baldoria prima e la stanchezza poi mi hanno fatto desistere. Non credo sareste comunque stati lì a quell&#8217;ora a leggerlo, quindi non penso [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Buon 2008 a tutti!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Dopo il post per gli auguri di Natale sicuramente non ve ne aspettavate uno per gli auguri di buon anno, vero? <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Voevo postarlo poco dopo mezzanotte, ma la baldoria prima e la stanchezza poi mi hanno fatto desistere. Non credo sareste comunque stati lì a quell&#8217;ora a leggerlo, quindi non penso vi cambi molto la vita. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_wink.gif"  alt=";)"  class="wp-smiley"   style="border: 0;"/> </p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Siccome a capodanno si elencano i buoni propositi per l&#8217;anno che sta arrivando, ho pensato di raccogliere qui i miei. Magari qualcuno è d&#8217;ispirazione anche per voi. Sono in ordine sparso, man mano che mi vengono in mente.<span id="more-60" ></span></p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Studiare il D (e altri linguaggi)</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Da quello che leggo in giro, D è un ottimo linguaggio di programmazione, e in realtà ho già dato un&#8217;occhiata alle <a href="http://www.digitalmars.com/d/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">specifiche del linguaggio</a> e agli esempi sul sito ufficiale. Quello che ho visto mi ha favorevolmente impressionato. In pratica è un linguaggio che cerca di prendere le parti migliori di C/C++ e di Python/Ruby. Molto flessibile, dinamico (non del tutto, naturalmente) e soprattutto compilato. Le prestazioni dei programmi scritti in D sono ottime e, a giudicare dagli esempi, è anche semplice scrivere programmi. Mi ricorda vagamente il linguaggio E che esisteva sull&#8217;Amiga, anche se in quel caso derivava da Pascal e Oberon, quindi con una sintassi più rigida.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Una delle sorprese più gradite è stato scoprire che ci si potevano fare cose come <a href="http://www.asahi-net.or.jp/~cs8k-cyu/windows/tt_e.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Torus Trooper</a> e <a href="http://www.asahi-net.or.jp/~cs8k-cyu/windows/tf.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">TUMIKI Fighters</a> (non fatevi ingannare dalla grafica, sono molto divertenti <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/>  ) in modo quasi completamente cross-platform.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Anche <a href="http://live.gnome.org/Vala"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Vala</a> sembra interessante. Si tratta di un linguaggio inventato dal team di Gnome, ispirato a C#, e molto orientato a scrivere applicazioni per Gnome (anche se, dagli esempi, sembra adatto un po&#8217; per tutto). Lo stanno già usando per scrivere <a href="http://code.google.com/p/scratchpad/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Scratchpad</a> e anche Mickeyl per riscrivere <a href="http://www.vanille-media.de/site/index.php/2007/12/30/first-encounter-with-vala/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">openmoko-terminal2</a>. Il vantaggio principale rispetto a C# stesso è che è completamente compilato, quindi non ha bisogno di virtual machine o di ambienti di runtime, o anche solo di librerie aggiuntive. A detta degli stessi sviluppatori è ancora acerbo, e molte cose sono in via di sviluppo, ma quello che c&#8217;è ha già un bell&#8217;aspetto.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Tornare in Giappone</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo probabilmente è un proposito che non riuscirò a portare a termine entro il 2008, ma ci spero comunque. Mi mancano l&#8217;ordine e la cortesia dei giapponesi, mi manca <a href="http://it.wikipedia.org/wiki/Akihabara"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Akihabara</a>, mi manca il <a href="http://mmoandrl.blogspot.com/2007/05/sfatiamo-il-mito-parte-1.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">cibo giapponese</a>. Insomma, non vedo l&#8217;ora di tornarci.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Mi sono messo come limite la primavera del 2009. Ce la posso fare! Ganbatte!</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Finire i programmi e i siti che ho in corso</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questa forse è la parte più difficile di questi buoni propositi. Purtroppo la parte che mi &#8220;prende&#8221; di più di un progetto è la preparazione, le prime fasi di stesura del codice, l&#8217;organizzazione dei moduli, mentre odio totalmente e profondamente la fase di debug. Di solito il dover debuggare un software è motivo sufficiente per abbandonarlo a sé stesso. Probabilmente aspetterò l&#8217;uscita della <a href="http://forums.gleemax.com/forumdisplay.php?f=693"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">quarta edizione di D&amp;D</a> per rimettere mano (e riscrivere per la terza volta) il mio Mastertools, software (in Python+Gtk+SQLite) di gestione delle campagne, con annesso database di magie (già funzionante), talenti e oggetti magici (non ancora funzionanti).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Spero di riuscire nei prossimi giorni a buttare giù almeno le basi di due siti che ho in testa da almeno un paio di mesi e di un altro paio di programmini che sto progettando da altrettanto tempo. Ma non voglio rivelare niente, anche per scaramanzia. <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> </p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Comprare l&#8217;Asus Eee</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In realtà sto aspettando la versione con schermo a 8, 9 o 10 pollici. Mi andrebbero bene anche i 7&#8243; della versione attuale, ma con risoluzione almeno 1024&#215;600. Meglio ancora 1280&#215;768. Una bella formattata alla flash, una bella Debian con Gnome al posto della Xandros, una SDHC da 16-32 Gb montata come /home e via!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se non sarà l&#8217;Eee sarà sicuramente un altro subnotebook di caratteristiche analoghe: 1 Kg di peso, dimensioni molto ridotte. Gradirei molto anche una durata maggiore della batteria.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Mi sono accorto che il notebook che ho ora (Dell Inspiron 8600) non lo uso mai (praticamente solo per masterizzare partite di D&amp;D): troppo pesante (3.5 Kg), troppo ingombrante (schermo 15,4&#8243;, quindi notebook di oltre 17&#8243;), e relativamente fragile, avendo un HD al posto di una flash. E la tastiera è comunque ridotta rispetto al fisso, quindi difficile da usare. In proporzione uso di più lo Zaurus, sia per leggere e-book sia per scrivere.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Migliorare la conoscenza di PHP, Javascript e Python</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Programmando in <a href="http://www.php.net"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">PHP</a> per lavoro, la prima parte di questo proposito è abbastanza semplice da portare a termine, basterà continuare a lavorare <img src="http://alex.amiran.it/wp-includes/images/smilies/icon_smile.gif"  alt=":)"  class="wp-smiley"   style="border: 0;"/> . Ci sono comunque diversi argomenti che mi piacerebbe approfondire. Per esempio ho l&#8217;impressione di star usando poco e male lo <a href="http://framework.zend.com"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Zend Framework</a>, e che abbia ancora molte qualità nascoste da esplorare. Per di più, sta uscendo <a href="http://www.phpnews.it/notizie-php/varie/anticipazioni-sullo-zend-framework-1.5/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">la nuova versione 1.5</a> con supporto per View estese e Layout!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Javascript è ridiventato molto interessante (per me, naturalmente) di recente, grazie all&#8217;arrivo di librerie e framework come <a href="http://jquery.com/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">jQuery</a> che nascondono abbastanza bene le differenze più ostiche tra i browser e permettono di concentrarsi meglio sul lavoro da svolgere, più che sulle incompatibilità tra le varie versioni. Spero di poterlo approfondire maggiormente.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Purtroppo ho un po&#8217; lasciato in disparte <a href="http://www.python.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Python</a> per motivi di tempo, e comunque non ero un esperto nemmeno prima. Devo impormi di riprenderlo in mano e di studiarmi bene le caratteristiche della nuova 2.5 (decoratori e compagnia cantante).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Lo nascondo qui ma non fateci caso: mi piacerebbe anche studiare un po&#8217; <a href="http://www.ruby-lang.org/en/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Ruby</a>. Tra l&#8217;altro è appena uscita la 1.9 che sembra abbia prestazioni molto superiori alla precedente. Tutti ne parlano, ma ora che l&#8217;hype iniziale dato da Rails si sta esaurendo, forse è il momento giusto per vedere cosa offre di veramente vantaggioso rispetto agli altri (rails a parte).</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Postare più frequentemente sul blog</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo non sarà proprio facilissimo. A volte un argomento mi pare troppo scontato o trito per parlarne qui, e voglio evitare di parlare di politica o cose del genere (che sono una flame-bait non da poco). Per scrivere post tecnici preferisco informarmi bene ed evitare di scrivere porcherie non verificate, anche se a volte devo fidarmi di quello che trovo in giro, non avendo la possibilità di provarlo direttamente.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ciononostante, cercherò di trovare qualche argomento di cui parlare. Magari portare avanti i propositi di cui sopra mi darà anche qualche spunto interessante.</p>
<h2  style="font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.4em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Dulcis in fundo&#8230;</h2>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ah, naturalmente riportare <a href="http://www.corriere.it/cronache/07_dicembre_19/orgasmo_globale_sabato_584ce73c-ae37-11dc-8dc1-0003ba99c53b.shtml"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">la pace nel mondo</a>! (Ecco il <a href="http://www.globalorgasm.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">link diretto al sito</a>. O <a href="http://oltretrento.blogspot.com/2007/09/la-pace-nel-mondo.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">una variante, se la preferite</a>, in fondo i gusti sono gusti).</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20080101/i-buoni-propositi-per-il-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lista di plugin per jQuery</title>
		<link>http://alex.amiran.it/20071121/lista-di-plugin-per-jquery/</link>
		<comments>http://alex.amiran.it/20071121/lista-di-plugin-per-jquery/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 14:14:12 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20071121/lista-di-plugin-per-jquery/</guid>
		<description><![CDATA[Come raccappezzarsi nel mare di plugin per jQuery. jQuery è una libreria in javascript per semplificare lo sviluppo client-side di siti, che offre in pochissimo spazio (20 Kb compressa, meno di 100 non compressa) funzioni utilissime per la navigazione e la modifica del DOM, per le richieste AJAX e per alcune animazioni di base (fading, [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Come raccappezzarsi nel mare di plugin per jQuery.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><a href="http://jquery.com/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">jQuery</a> è una libreria in javascript per semplificare lo sviluppo client-side di siti, che offre in pochissimo spazio (20 Kb compressa, meno di 100 non compressa) funzioni utilissime per la navigazione e la modifica del DOM, per le richieste AJAX e per alcune animazioni di base (fading, folding, ecc.).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per mantenere minimo l&#8217;impatto sui download è stato scelto di lasciare a <a href="http://jquery.com/plugins/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">plugin esterni</a> la gestione di funzionalità aggiuntive, e di inglobare solo le più usate nel core. Uno dei plugin più famosi è <a href="http://ui.jquery.com/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">UI</a>, per la realizzazione di interfacce interattive.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Koller Juenger, nel suo blog, ha raccolto una <a href="http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">lista di più di 240 plugin per jQuery</a>, suddivisi anche per categoria e uso. Un lavoro titanico e molto utile.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20071121/lista-di-plugin-per-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sviluppo su OpenMoko/OpenEmbedded</title>
		<link>http://alex.amiran.it/20071116/sviluppo-su-openmokoopenembedded/</link>
		<comments>http://alex.amiran.it/20071116/sviluppo-su-openmokoopenembedded/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 13:28:53 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Palmari]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[angstrom]]></category>
		<category><![CDATA[cellulari]]></category>
		<category><![CDATA[openembedded]]></category>
		<category><![CDATA[subnotebook]]></category>
		<category><![CDATA[zaurus]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20071116/sviluppo-su-openmokoopenembedded/</guid>
		<description><![CDATA[La documentazione per sviluppare applicazioni per Linux è vasta, quasi infinita, ma quando si tratta di sviluppare per ambienti embedded non è sufficiente. O meglio, si può fare con la normale documentazione, ma se il nostro software deve girare su una delle distribuzioni esistenti conviene adeguarsi alle &#8220;usanze del luogo&#8221;. OpenEmbedded è una &#8220;meta-distribuzione&#8221; nel [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">La documentazione per sviluppare applicazioni per Linux è vasta, quasi infinita, ma quando si tratta di sviluppare per ambienti embedded non è sufficiente.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;"><img hspace="0"  vspace="1em"  align="left"  src="http://alex.amiran.it/wp-content/uploads/2007/11/oe.png"  alt="OpenEmbedded"  class="float_left"  height="142"  width="215"     style="border: 0;display: block; border: 0; float: left; clear: left; margin: 1em 1em 1em 0; padding: 5px;"/>O meglio, si può fare con la normale documentazione, ma se il nostro software deve girare su una delle distribuzioni esistenti conviene adeguarsi alle &#8220;usanze del luogo&#8221;.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">OpenEmbedded è una &#8220;meta-distribuzione&#8221; nel senso che è un calderone da cui si possono generare delle distribuzioni. Le due più famose sono Angstrom e OpenMoko. Saper usare i tool forniti da OpenEmbedded significa quindi saperli usare anche per <a href="http://www.angstrom-distribution.org"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Angstrom</a> e <a href="http://www.openmoko.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">OpenMoko</a>.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">A parte la <a href="http://www.openembedded.org/wiki/GettingStarted"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">documentazione sul sito OpenEmbedded</a> stesso, oggi ho trovato un&#8217;articolo su IBM DeveloperWorks sulla <a href="http://www.ibm.com/developerworks/edu/l-dw-linux-openmoko-i.html?ca=drs-"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">programmazione per OpenMoko</a>. Sono 13 pagine (in realtà 9, il resto sono link e schede autore/articolo), e si parte dall&#8217;installazione dell&#8217;ambiente per arrivare a sviluppare un&#8217;applicazione completa che riporta alcune informazioni sul sistema. Molto chiaro e semplice da seguire. Naturalmente dà per scontato che si conosca il C e utilizza <a href="http://www.gtk.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Gtk+</a>, le librerie alla base di tutte le applicazioni grafiche di OpenMoko.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20071116/sviluppo-su-openmokoopenembedded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I mali del mondo (secondo un sistemista/programmatore)</title>
		<link>http://alex.amiran.it/20071110/i-mali-del-mondo-secondo-un-sistemistaprogrammatore/</link>
		<comments>http://alex.amiran.it/20071110/i-mali-del-mondo-secondo-un-sistemistaprogrammatore/#comments</comments>
		<pubDate>Sat, 10 Nov 2007 16:26:00 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://alex.amiran.it/20071110/i-mali-del-mondo-secondo-un-sistemistaprogrammatore/</guid>
		<description><![CDATA[Ovvero le cose da evitare come la peste, le guerre, le carestie, la droga, ecc. Quando una persona diventa programmatore o sistemista, la maggior parte delle volte viene affascinato da cose a cui non dovrebbe nemmeno pensare. Un cristiano potrebbe chiamarle &#8220;tentazioni demoniache&#8221;, un buddista &#8220;ricchezze terrene&#8221;, ecc. ecc. Invece sono da evitare il più [...]]]></description>
			<content:encoded><![CDATA[<p class="caption"     style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;font-style: italic; padding: 0 1em;font-style: italic; padding: 0 1em;">Ovvero le cose da evitare come la peste, le guerre, le carestie, la droga, ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Quando una persona diventa programmatore o sistemista, la maggior parte delle volte viene affascinato da cose a cui non dovrebbe nemmeno pensare. Un cristiano potrebbe chiamarle &#8220;tentazioni demoniache&#8221;, un buddista &#8220;ricchezze terrene&#8221;, ecc. ecc. Invece sono da evitare il più possibile, e da abbandonare per poter raggiungere la Vera Illuminazione. Vediamone qualcuna.<span id="more-26" ></span></p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">chmod 777</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Questo semplice mantra (che per i file può anche essere &#8220;chmod 666&#8243;, notate il numero diabolico) permetterà a chiunque di andare a letto con la vostra ragazza, di venire a cena a casa vostra in qualsiasi momento, di &#8220;prendere in prestito&#8221; la vostra macchina, di leggervi la posta direttamente dalla cassetta, ecc. ecc. ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Seriamente: Questo semplice comando permette, su sistemi Linux e Unix, di accedere a qualsiasi risorsa (a un file, in realtà, ma in Unix/Linux TUTTO è un file) senza alcuna limitazione. Guardatevi da esso, poiché è il male. A parte dare il permesso di esecuzione (che nelle directory serve per poterci entrare, ma nei file rende eseguibile il file stesso) concede pieni poteri sul file a qualsiasi utente: lettura, scrittura, modifica, azzeramento. Forse l&#8217;unica cosa che non si può fare è cancellarlo (servono permessi equivalenti sulla sua directory). Può sembrare che risolva tutti i propri problemi (non devo più diventare root per modificarlo!), ma ci sono un sacco di motivi per cui Windows è pieno di virus e Linux no. Il fatto che le distribuzioni non usino mai chmod 777 è uno di questi.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Se un fiile ha un certo set di permessi è proprio perché nessuno, per errore o intenzionalmente, lo modifichi. Aprendo in questo modo i permessi di accesso si consente a programmi impazziti, a servizi bucati da cracker o semplicemente a un errore di digitazione di fare danni seri. Pensate a quale sia la differenza tra un &#8220;rm -Rf /&#8221; dato da utente (cancella solo i file a cui ha accesso l&#8217;utente, quindi solo la sua home e pochi file in /tmp) e dato da root (cancella tutto il sistema operativo).</p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">goto</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Qui entriamo nel campo della programmazione. Ormai è risaputo che goto è la fonte di tutti i mali, l&#8217;anticristo, il limone sulla Nutella. Lo dicono perfino <a href="http://it.wikipedia.org/wiki/Edsger_Dijkstra"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Dijkstra</a> e <a href="http://it.wikipedia.org/wiki/Niklaus_Wirth"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Wirth</a>! (I link sono alla Wikipedia italiana, ma quella inglese è più completa). goto vi farà uscire di strada in macchina (goto fosso), vi farà entrare nello sgabuzzino invece che in bagno (goto bin). Potreste perfino finire a letto con un uomo invece che con una ragazza  (goto man)! Attenti!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Seriamente: goto, se usato male (e nel 99% dei casi viene usato male) rende &#8220;spaghetti-code&#8221; i vostri programmi. Fa perdere velocemente il flusso logico delle procedure/funzioni, e porta a errori inaspettati (&#8220;ma questo codice non doveva essere eseguito quando questa variabile ha questo valore!&#8221;). Linus Torvalds lo può usare perché lui sa quello che fa.</p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">global</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Qui parlo in generale delle variabili globali. C&#8217;è un motivo per cui sono state inventate la programmazione strutturata e quella ad oggetti. Le variabili globali sono una macchina del tempo rotta, che ci porta solo indietro di 50 anni: guerra (o primo dopoguerra), malattie, dispersi, fame, ecc. ecc.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Seriamente: usare variabili globali è pericoloso quanto e forse più che usare goto: queste variabili possono venire modificate da altre funzioni che non c&#8217;entrano niente con quello che stiamo facendo, ed è impossibile sapere con esattezza, guardando il codice, che valore hanno in un certo punto. Passate valori alle funzioni, impostateli in qualche variabile di classe, ma guardatevi sempre dall&#8217;usare variabili globali. Hanno senso solo in pochissimi casi, e, se siete dei principianti, in NESSUN caso.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">In PHP questo comprende anche l&#8217;uso di register_globals. Questa direttiva (che per fortuna verrà disabilitata e sarà reso impossibile abilitarla conla versione 6 di PHP) prende tutte le variabili che arrivano dall&#8217;esterno del vostro script (quindi GET e POST, i cookies, i valori in sessione, le variabili d&#8217;ambiente) e le mette tutte in un minestrone, rendendole variabili globali. C&#8217;è un ordine preciso di &#8220;riempimento&#8221; di questo minestrone, ma vi sfido a capire, a colpo d&#8217;occhio, se una variabile sia stata passata da GET o se arrivi dalla sessione dell&#8217;utente. Molto meglio usare le superglobals: $_GET, $_POST, $_COOKIES, $_SESSION e $_ENV (oltre a $_SERVER).</p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">addslashes()/stripslashes()/magic_quotes</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Qui si parla specificatamente di PHP. Il giorno che queste funzioni verranno tolte da PHP probabilmente smetterà di piovere folgore dal cielo, o più probabilmente un\\\&#8217;infinita\` di pagine web l\&#8217;una coi  caratteri più  sballati dell\\\&#8217;altra, e parecchi casi di SQL-injection spariranno dalla rete.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Seriamente: poche cose in una pagina web hanno bisogno delle barre prima di un carattere. Può sembrare giusto prima di infilare una stringa in MySQL (per cui la &#8216; è un carattere speciale e, se contenuta in una frase, fa &#8220;escapata&#8221; con \&#8217;), ma, per esempio, in PostgreSQL il modo giusto di fare l&#8217;escape è &#8221; (due virgolette singole) e non \&#8217;, quindi i vostri script non funzioneranno cambiando DB. Usate <a href="http://it.php.net/manual/en/function.mysql-real-escape-string.php"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">mysql_real_escape_string()</a>, <a href="http://it.php.net/manual/en/function.pg-escape-string.php"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">pg_escape_string()</a> o, meglio ancora, <a href="http://it.php.net/manual/en/ref.pdo.php"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">PDO</a> o un framework come <a href="http://framework.zend.com"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Zend Framework</a>. Per passarle su un URL (un link con &lt;a&gt;, per esempio) la funzione giusta è urlencode(). addslashes non è quasi mai la risposta giusta. Vale la stessa considerazione di global: se siete principianti, addslashes() non è MAI la risposta giusta.</p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">&lt;font&gt;, &lt;b&gt;, &lt;i&gt;, &lt;frame&gt; (guest stars: &lt;table&gt;, &lt;br&gt;)</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Entriamo nel mondo del web dalla porta sul retro: HTML. Il poveretto era nato con buonissime intenzioni: l&#8217;ipertesto, la digitalizzazione e il collegamento delle informazioni, la diffusione della cultura. Ma tre bambini cattivi (non facciamo nomi, solo iniziali: MS, NS e MM) gli hanno regalato le caramelle fuori dalla scuola, e da allora si sta disintossicando in diverse comunità di recupero. Per fortuna ultimamente ha trovato un bel po&#8217; di amici che lo stanno tirando fuori dal tunnel, ma ci sono ancora un sacco di bambini cattivi in giro!</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Seriamente: L&#8217;HTML è nato per descrivere la struttura delle informazioni, non la loro rappresentazione sullo schermo. Usare editor WYSIWYG facilita sicuramente lo scrivere pagine web, ma avete mai provato a modificare il posizionamento di un&#8217;immagine senza usare quegli editor, o ad aggiungere un&#8217;immagine in mezzo alle altre, anche CON quegli editor? Da un po&#8217; il W3C ha preso una posizione netta sulla questione: l&#8217;HTML deve descrivere solo COSA è una certa informazione, mentre il COME FARLA VEDERE è compito dei CSS. COME SI COMPORTA è compito di Javascript (o ECMAscript), e con questo il cerchio si chiude. font, b e i sono (finalmente) tag deprecati. Un testo non è &#8220;Arial 18px  bold italic&#8221;, ma &#8220;titolo di sezione&#8221;, quindi &lt;h2&gt; (per esempio). Una frase importante non è &#8220;bold&#8221;, ma &#8220;importante&#8221; (strong) appunto! Prima si impara a usare i tag giusti, meglio è.</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Ho messo come guest star &lt;table&gt; e &lt;br&gt; perché si devono ancora usare, ma solo quando è giusto usarli. Non si usa &lt;table&gt; per definire il layout di una pagina, ma solo per intabellare dati. Non si usa &lt;br&gt; per fare spazio con le righe vuote, ma solo per andare a capo senza chiudere un paragrafo (che è &lt;p&gt;).</p>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Una malattia molto diffusa per chi si avvicina ai CSS è la DIVite (accompagnata dalla SPANite): quando non si sa cosa mettere, si mettono un div o uno span, dimenticando che esistono decine di tag che non usa nessuno. Una lista della spesa è &lt;ul&gt;, una lista di passi per una ricetta è una &lt;ol&gt;. Una lista di definizioni da vocabolario è &lt;dl&gt;. Un&#8217;etichetta da dare a qualcosa è &lt;label&gt;. La legenda di una tabella è &lt;caption&gt;. Una breve citazione è &lt;q&gt;, mentre una citazione lunga è &lt;blockquote&gt;. Un indirizzo è &lt;address&gt;. Ecc. ecc. <a href="http://www.w3schools.com/tags/default.asp"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Imparate a usare i tag giusti al momento giusto</a>, e il vostro codice sarà molto pià leggibile (e modificabile, che è la cosa più importante). Quando ci sarete arrivati, date un&#8217;occhiata anche ai <a href="http://microformats.org/"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">Microformati</a>, tenendo conto che ci sono già estensioni per Firefox che li usano, e che in futuro saranno sempre più diffusi e richiesti. E non dimenticate di impostare il <a href="http://www.quirksmode.org/css/quirksmode.html"  target="_blank"   style="color: #4fc84f; font-weight: bold; text-decoration: underline;color: #4fc84f; font-weight: bold; text-decoration: underline;">DOCTYPE corretto</a>!</p>
<h1  style="font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;font-size: 1.6em; font-weight: bold; line-height: 1.5em; font-family: 'DejaVu Serif' Tahoma 'Times New Roman' times serif;">Conclusione</h1>
<p  style="margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;margin: 1em 2em; line-height: 1.6em; font-size: 1em; font-family: 'DejaVu Sans' Verdana sans-serif; text-align: justify;">Per ora chiudo qui, ma sono sicuro che ho dimenticato un sacco di cose. La morale è sempre la solita: diffidate delle strade che sembrano troppo semplici. Sicuramente c&#8217;è qualcosa che non va.</p>
]]></content:encoded>
			<wfw:commentRss>http://alex.amiran.it/20071110/i-mali-del-mondo-secondo-un-sistemistaprogrammatore/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

