<?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; vala</title>
	<atom:link href="http://alex.amiran.it/tag/vala/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>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>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>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>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>
	</channel>
</rss>

