<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/1.5.1-alpha" -->
<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/"
>

<channel>
	<title>PDI^2</title>
	<link>http://riffraff.blogsome.com</link>
	<description>Propulsione d'Improbabilità Infinita</description>
	<pubDate>Mon, 18 Mar 2013 07:01:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>
	<language>en</language>

		<item>
		<title>Geany, editor/ide leggero per gnome</title>
		<link>http://riffraff.blogsome.com/2007/03/19/geany-editoride-leggero-per-gnome/</link>
		<comments>http://riffraff.blogsome.com/2007/03/19/geany-editoride-leggero-per-gnome/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 00:13:47 +0000</pubDate>
		<dc:creator>gabriele</dc:creator>
		
	<category>gtk</category>
	<category>software</category>
		<guid>http://riffraff.blogsome.com/2007/03/19/geany-editoride-leggero-per-gnome/</guid>
		<description><![CDATA[	Mio fratello deve fare un progettino lavorando con i pthread (brr..) e purtroppo non è ancora in grado di lavorare con VIm, per cui mi sono messo a cercare un qualcosa che fosse un po&#8217; più user friendly, e che avesse un filino di funzionalità in più di gedit (leggasi: i bottoni &#8220;compile&#8221; e &#8220;execute&#8221;).
	Frugando [...]]]></description>
			<content:encoded><![CDATA[	<p>Mio fratello deve fare un progettino lavorando con i pthread (brr..) e purtroppo non è ancora in grado di lavorare con VIm, per cui mi sono messo a cercare un qualcosa che fosse un po&#8217; più user friendly, e che avesse un filino di funzionalità in più di gedit (leggasi: i bottoni &#8220;compile&#8221; e &#8220;execute&#8221;).</p>
	<p>Frugando in apt mi è venuto fuori questo <a href="http://geany.uvena.de/">geany</a>, che è un mini-ide basato su gtk2, molto leggero ma abbastanza ben fatto, per quel che ho visto, con code folding, un minimo di autocompletion, syntax highlight, console degli errori di compilazione.. Bravi, 7++ <img src='http://riffraff.blogsome.com/wp-images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
]]></content:encoded>
			<wfw:commentRss>http://riffraff.blogsome.com/2007/03/19/geany-editoride-leggero-per-gnome/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Ruby-GNOME2, i binding dimenticati</title>
		<link>http://riffraff.blogsome.com/2006/01/12/ruby-gnome2-i-binding-dimenticati/</link>
		<comments>http://riffraff.blogsome.com/2006/01/12/ruby-gnome2-i-binding-dimenticati/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 15:07:56 +0000</pubDate>
		<dc:creator>gabriele</dc:creator>
		
	<category>ruby</category>
	<category>gnome</category>
	<category>gtk</category>
		<guid>http://riffraff.blogsome.com/2006/01/12/ruby-gnome2-i-binding-dimenticati/</guid>
		<description><![CDATA[	Uno dei punti forti di gnome/gtk sono i binding delle librerie per altri linguaggi.
Non che KDE/QT non ne abbiano, ma la mia impressione è che non siano apprezzati quanto quelli in gnome-landia, forse perché QT/C++ forniscono già un&#8217;ambiente di  lavoro di livello più alto rispetto al C liscio. 
	Colgo l&#8217;occasione dell&#8217;uscita di questo articolo [...]]]></description>
			<content:encoded><![CDATA[	<p>Uno dei punti forti di gnome/gtk sono i binding delle librerie per altri linguaggi.<br />
Non che KDE/QT non ne abbiano, ma la mia impressione è che non siano apprezzati quanto quelli in gnome-landia, forse perché QT/C++ forniscono già un&#8217;ambiente di  lavoro di livello più alto rispetto al C liscio. <a id="more-92"></a></p>
	<p>Colgo l&#8217;occasione dell&#8217;uscita di <a href="http://www-128.ibm.com/developerworks/views/opensource/libraryview.jsp?search_by=gtk+fundamentals">questo articolo</a> per parlare un po&#8217; del mio binding preferito, ruby-gtk2 (e ruby-atk e ruby-glib e ruby-pango etc)..</p>
	<p>Si tratta di un toolkit poco conosciuto rispetto ai vari Gtk# o pygtk ma secondo me è quello con l&#8217;api migliore, per due motivi:</p>
	<ul>
	<li> si accede alle proprietà in modo semplice come <tt> obj.foo=bar</tt></li>
	<li> si usano i blocchi per i callback</li>
	</ul>
	<p>Prendendo spunto dal codice del secondo articolo su developerworks, un porting dell&#8217;esempio in ruby sarebbe sostanzialmente identico alla versione python, solo che i callback usano i blocchi direttamente in linea, una cosa del tipo</p>
	<pre>
foo.signal_connect \"clicked\" do
 print \"clicccato!\"
end
</pre>
	<p>Io personalmente ho un alias &#8220;<tt>on</tt>&#8221; per <tt>signal_connect</tt> perché ritengo che </p>
	<pre>
window.on \"signal\" do ...
</pre>
	<p>sia molto meglio.. </p>
	<p>Colgo l&#8217;occasione invece per fare un port dell&#8217;applicazione che aveva <a href="http://www.oluyede.org/blog/2005/12/03/writing-a-widget-using-cairo-and-pygtk-28/">tradotto lawrence</a> da C a python, per mostrare come usare insieme Cairo e Gtk. Io ho fatto le prove su ubuntu breezy badger e su win32 e funzionano, per altre distro non garantisco</p>
	<pre>
	
<font color=\"#ff80ff\">require</font> <font color=\"#ffa500\">&#8216;</font><font color=\"#ffa0a0\">cairo</font><font color=\"#ffa500\">&#8216;</font>
<font color=\"#ff80ff\">require</font> <font color=\"#ffa500\">&#8216;</font><font color=\"#ffa0a0\">gtk2</font><font color=\"#ffa500\">&#8216;</font>
<font color=\"#ff80ff\">include</font> <font color=\"#40ffff\">Math</font>
<font color=\"#ff80ff\">class </font><font color=\"#60ff60\"><b>EggClockFace</b></font> &lt;<font color=\"#40ffff\">Gtk</font>::<font color=\"#40ffff\">DrawingArea</font>
<font color=\"#ff80ff\">  def </font><font color=\"#40ffff\">initialize</font>
    <font color=\"#ffff60\"><b>super</b></font>
    signal_connect <font color=\"#ffa500\">&quot;</font><font color=\"#ffa0a0\">expose_event</font><font color=\"#ffa500\">&quot;</font> <font color=\"#ffff60\"><b>do</b></font> <font color=\"#40ffff\">|widget,event|</font>
      ctx= widget.window.create_cairo_context
      ctx.rectangle event.area.x, event.area.y,
                    event.area.width, event.area.height
      ctx.clip
      draw(ctx)
      <font color=\"#ffa0a0\">false</font>
    <font color=\"#ffff60\"><b>end</b></font>
  <font color=\"#ff80ff\">end</font>
<font color=\"#ff80ff\">  def </font><font color=\"#40ffff\">draw</font>(ctx)
        rect = allocation()
        x = rect.x + rect.width / <font color=\"#ffa0a0\">2.0</font>
        y = rect.y + rect.height / <font color=\"#ffa0a0\">2.0</font>
	
        radius = [rect.width / <font color=\"#ffa0a0\">2.0</font>, rect.height / <font color=\"#ffa0a0\">2.0</font>].min - <font color=\"#ffa0a0\">5</font>
	
        <font color=\"#80a0ff\"># clock back</font>
        ctx.arc(x, y, radius, <font color=\"#ffa0a0\">0</font>, <font color=\"#ffa0a0\">2.0</font> * <font color=\"#40ffff\">PI</font>)
        ctx.set_source_rgb(<font color=\"#ffa0a0\">1</font>, <font color=\"#ffa0a0\">1</font>, <font color=\"#ffa0a0\">1</font>)
        ctx.fill_preserve
        ctx.set_source_rgb(<font color=\"#ffa0a0\">0</font>, <font color=\"#ffa0a0\">0</font>, <font color=\"#ffa0a0\">0</font>)
        ctx.stroke
	
        <font color=\"#ffff60\"><b>for</b></font> i <font color=\"#ffff60\"><b>in</b></font> <font color=\"#ffa0a0\">0</font>..<font color=\"#ffa0a0\">11</font>
            outset = <font color=\"#ffa0a0\">0.9</font> * radius
            ctx.move_to x + outset * cos(i * <font color=\"#40ffff\">PI</font> / <font color=\"#ffa0a0\">6.0</font>),
                        y + outset * sin(i * <font color=\"#40ffff\">PI</font> / <font color=\"#ffa0a0\">6.0</font>)
            ctx.line_to x + radius * cos(i * <font color=\"#40ffff\">PI</font> / <font color=\"#ffa0a0\">6.0</font>),
                        y + radius * sin(i * <font color=\"#40ffff\">PI</font> / <font color=\"#ffa0a0\">6.0</font>)
            ctx.stroke
        <font color=\"#ffff60\"><b>end</b></font>
        ctx.stroke
  <font color=\"#ff80ff\">end</font>
<font color=\"#ff80ff\">end</font>
	
<font color=\"#40ffff\">Gtk</font>.init
window = <font color=\"#40ffff\">Gtk</font>::<font color=\"#40ffff\">Window</font>.new
clock = <font color=\"#40ffff\">EggClockFace</font>.new
	
window.add clock
window.signal_connect <font color=\"#ffa500\">&quot;</font><font color=\"#ffa0a0\">destroy</font><font color=\"#ffa500\">&quot;</font> <font color=\"#ffff60\"><b>do</b></font>
 <font color=\"#40ffff\">Gtk</font>.main_quit
<font color=\"#ffff60\"><b>end</b></font>
window.show_all
	
<font color=\"#40ffff\">Gtk</font>.main
	</pre>
	<p><a href="http://img296.imageshack.us/my.php?image=schermata9tx.png" target="_blank"><img src="http://img296.imageshack.us/img296/1065/schermata9tx.th.png" border="0" alt="Free Image Hosting at www.ImageShack.us" />Screensoht</a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://riffraff.blogsome.com/2006/01/12/ruby-gnome2-i-binding-dimenticati/feed/</wfw:commentRss>
	</item>
		<item>
		<title>Post Archivio n. 2</title>
		<link>http://riffraff.blogsome.com/2005/12/03/post-archivio-n-2/</link>
		<comments>http://riffraff.blogsome.com/2005/12/03/post-archivio-n-2/#comments</comments>
		<pubDate>Sat, 03 Dec 2005 10:31:27 +0000</pubDate>
		<dc:creator>gabriele</dc:creator>
		
	<category>ruby</category>
	<category>python</category>
	<category>personale</category>
	<category>web</category>
	<category>gtk</category>
		<guid>http://riffraff.blogsome.com/2005/12/03/post-archivio-n-2/</guid>
		<description><![CDATA[	* lawrence fa un orologio in pygtk+cairo, in molto poco tempo
* il ruby italia wiki è stato messo in modalità produzione, non perché è maturo, ma perché almeno ciuccia meno risorse.
* la mia tesi prosegue con il tipico passo da ubriaco. Un passo avanti, due di lato, uno indietro, un elefante rosa. Tinyviz è Il [...]]]></description>
			<content:encoded><![CDATA[	<p>* lawrence <a href="http://www.oluyede.org/blog/writing-a-widget-using-cairo-and-pygtk-28/">fa un orologio </a>in pygtk+cairo, in molto poco tempo<br />
* il <a href="http://ruby-it.org">ruby italia wiki </a>è stato messo in modalità produzione, non perché è maturo, ma perché almeno ciuccia meno risorse.<br />
* la mia tesi prosegue con il tipico passo da ubriaco. Un passo avanti, due di lato, uno indietro, un elefante rosa. Tinyviz è <strong>Il Male</strong> in forma di simulatore di reti.<br />
* lisp! <a href="http://www.davidnewberger.com/wp/2005/11/28/if-you-havent-reddit-you-are-missing-out/">Intervista </a>a <a href="http://www.reddit.com">Reddit</a> che include la domanda &#8220;perché lisp?&#8221;.<br />
* Più lisp! Come avere successo nel mondo dei linguaggi di programmazione, <a href="http://www.livejournal.com/users/hisashim/232542.html">ne parla </a>il presidente di Franz inc. Mi piace molto questo:</p>
	<blockquote><p>
Programming language is a cult. It&#8217;s a religion. Many programmers stick to one language and do not change it for 50 years, their entire career. So you have to be like a cult leader to gain a good user base.
</p></blockquote>
	<p>* Alberto Mucignat<a href="http://www.mucignat.com/blog/archives/215-David-Weinberger-sullarchitettura-delle-informazioni.html"> mi fa scoprire </a> che esiste un IASummit (dove IA sta per Architettura dell&#8217;Informazione). A roma.  Figata, peccato però che nel call for papers non parlino di blind review, anzi chiedano esplicitamente i dati personali.<br />
* Piergiuliano Bossi, che è il mio riferimento personale nel mondo XP, <a href="http://blogs.codehaus.org/people/theboxx/">ha aperto un blog</a><br />
* Stasera se beve e se magna, romanella, porchetta e coppiette. Speriamo che il santo protettore degli stressati si faccia un giretto sul GRA con me.<br />
* Sono tanti. Sono feroci. Hanno già iniziato la loro vendetta verso il genere umano sbranando un cane nostro alleato. <a href="http://news.bbc.co.uk/2/hi/europe/4489792.stm">Sono scoiattoli</a>.
</p>
]]></content:encoded>
			<wfw:commentRss>http://riffraff.blogsome.com/2005/12/03/post-archivio-n-2/feed/</wfw:commentRss>
	</item>
	</channel>
</rss>
