<?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>Sakya&#039;s Homepage</title>
	<atom:link href="http://www.sakya.it/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.sakya.it/wordpress</link>
	<description></description>
	<lastBuildDate>Thu, 29 Dec 2011 16:27:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Un nuovo progetto&#8230;</title>
		<link>http://www.sakya.it/wordpress/?p=163</link>
		<comments>http://www.sakya.it/wordpress/?p=163#comments</comments>
		<pubDate>Thu, 29 Dec 2011 14:03:49 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=163</guid>
		<description><![CDATA[I lettori più &#8220;datati&#8221; si ricorderanno di certo i Librogame degli anni &#8217;80. Personalmente da ragazzo ne lessi diversi e devo dire che li trovai divertenti. Ricordandomi questo e venendo a conoscenza del Project AON che ha avuto il permesso &#8230; <a href="http://www.sakya.it/wordpress/?p=163">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I lettori più &#8220;datati&#8221; si ricorderanno di certo i <a href="http://it.wikipedia.org/wiki/Librogame">Librogame</a> degli anni &#8217;80.<br />
Personalmente da ragazzo ne lessi diversi e devo dire che li trovai divertenti.<br />
Ricordandomi questo e venendo a conoscenza del <a href="http://www.projectaon.org/en/Main/Home">Project AON</a> che ha avuto il permesso dell&#8217;autore di pubblicare gratuitamente i libri della serie Lone Wolf (<a href="http://it.wikipedia.org/wiki/Lupo_Solitario_(librogame)">Lupo Solitario</a> in Italia) ho pensato che avrei potuto realizzare una versione &#8220;portatile&#8221; dei libri per poterli leggere comodamente sul mio nokia N900.</p>
<p>Da un po&#8217; di giorni ho iniziato a sviluppare il progetto e devo dire che procede abbastanza bene. Il primo libro è giocabile al 100% (ma devo ancora finire di testarlo) mentre per i successivi dovrò lavorarci ancora un po&#8217;.</p>
<p>Ecco comunque una piccola anteprima:<br />

<a href='http://www.sakya.it/wordpress/?attachment_id=164' title='screenshot_1'><img width="150" height="150" src="http://www.sakya.it/wordpress/wp-content/uploads/2011/12/screenshot_1-150x150.png" class="attachment-thumbnail" alt="screenshot_1" title="screenshot_1" /></a>
<a href='http://www.sakya.it/wordpress/?attachment_id=165' title='screenshot_2'><img width="150" height="150" src="http://www.sakya.it/wordpress/wp-content/uploads/2011/12/screenshot_2-150x150.png" class="attachment-thumbnail" alt="screenshot_2" title="screenshot_2" /></a>
<a href='http://www.sakya.it/wordpress/?attachment_id=166' title='screenshot_3'><img width="150" height="150" src="http://www.sakya.it/wordpress/wp-content/uploads/2011/12/screenshot_3-150x150.png" class="attachment-thumbnail" alt="screenshot_3" title="screenshot_3" /></a>
<a href='http://www.sakya.it/wordpress/?attachment_id=167' title='screenshot_4'><img width="150" height="150" src="http://www.sakya.it/wordpress/wp-content/uploads/2011/12/screenshot_4-150x150.png" class="attachment-thumbnail" alt="screenshot_4" title="screenshot_4" /></a>
</p>
<p>Non so quanto tempo mi servirà per completare il lavoro (devo rendere il mio programma compatibile con la licenza del Poject AON e fare un po&#8217; di testing), ma non appena il programma verrà rilasciato lo saprete di sicuro da queste pagine. <img src='http://www.sakya.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=163</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Portaudio e libmad</title>
		<link>http://www.sakya.it/wordpress/?p=148</link>
		<comments>http://www.sakya.it/wordpress/?p=148#comments</comments>
		<pubDate>Tue, 18 Oct 2011 10:09:29 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=148</guid>
		<description><![CDATA[Ho &#8220;scoperto&#8221; ieri una libreria audio compatibile con Windows e Linux: Portaudio. Incuriosito ho deciso di provarla: un&#8217;ottima opportunità per provare ad utilizzarla insieme a MAD (libreria di decodifica MPEG) e scrivere un piccolo esempio di riproduzione di file MP3 &#8230; <a href="http://www.sakya.it/wordpress/?p=148">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ho &#8220;scoperto&#8221; ieri una libreria audio compatibile con Windows e Linux: <a href="http://www.portaudio.com/">Portaudio</a>.<br />
Incuriosito ho deciso di provarla: un&#8217;ottima opportunità per provare ad utilizzarla insieme a <a href="http://www.underbit.com/products/mad/">MAD</a> (libreria di decodifica MPEG) e scrivere un piccolo esempio di riproduzione di file MP3 cross-platform (sicuramente funziona su Windows e Linux e molto probabilmente anche su Nokia N900 ma non ho ancora provato).</p>
<p>Il risultato lo trovate in <a href="http://www.sakya.it/wordpress/wp-content/uploads/2011/10/main.c"><strong>questo file</strong></a>.<br />
Si tratta ovviamente di un esempio e non è un programma completo, ma dimostra la semplicità d&#8217;uso di Portaudio e MAD (due ottime librerie a mio parere).</p>
<p>La funzione main è molto semplice:</p>
<div class="geshi no c">
<div class="head">/* Main */</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw4">int</span> main<span class="br0">&#40;</span><span class="kw4">int</span> argc, <span class="kw4">char</span> <span class="sy0">*</span>argv<span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Mad and portaudio sample<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Copyright (c) 2011 Paolo Iommarini<span class="es0">\n</span><span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">char</span> input<span class="br0">&#91;</span><span class="nu0">264</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;test.mp3&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>argc &gt; <span class="nu0">1</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; strcpy<span class="br0">&#40;</span>input, argv<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Input file: %s<span class="es0">\n</span>&quot;</span>, input<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; PaError err <span class="sy0">=</span> Pa_Initialize<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> err <span class="sy0">!=</span> paNoError <span class="br0">&#41;</span> <span class="kw1">goto</span> error;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Portaudio initialized<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_stream_init<span class="br0">&#40;</span><span class="sy0">&amp;</span>Stream<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_header_init<span class="br0">&#40;</span><span class="sy0">&amp;</span>Header<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_frame_init<span class="br0">&#40;</span><span class="sy0">&amp;</span>Frame<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_synth_init<span class="br0">&#40;</span><span class="sy0">&amp;</span>Synth<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_timer_reset<span class="br0">&#40;</span><span class="sy0">&amp;</span>Timer<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Mad initialized<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; input_fd <span class="sy0">=</span> fopen<span class="br0">&#40;</span>input, <span class="st0">&quot;rb&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>input_fd<span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Failed to open input file<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">goto</span> end;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw4">int</span> size <span class="sy0">=</span> ID3v2TagSize<span class="br0">&#40;</span>input<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Tag size %i<span class="es0">\n</span>&quot;</span>, size<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; fseek<span class="br0">&#40;</span>input_fd, size, SEEK_SET<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; PaStream <span class="sy0">*</span>stream;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="coMULTI">/* Open an audio I/O stream. */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; err <span class="sy0">=</span> Pa_OpenDefaultStream<span class="br0">&#40;</span> <span class="sy0">&amp;</span>stream,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">0</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">2</span>, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="coMULTI">/* stereo output */</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; paInt16,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SAMPLE_RATE,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; INPUT_BUFFER_SIZE, <span class="coMULTI">/* frames per buffer, i.e. the number</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;of sample frames that PortAudio will</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;request from the callback. Many apps</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;may want to use</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paFramesPerBufferUnspecified, which</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tells PortAudio to pick the best,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="coMULTI">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;possibly changing, buffer size.*/</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; patestCallback,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">NULL</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> err <span class="sy0">!=</span> paNoError <span class="br0">&#41;</span> <span class="kw1">goto</span> error;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Stream opened<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; err <span class="sy0">=</span> Pa_StartStream<span class="br0">&#40;</span> stream <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> err <span class="sy0">!=</span> paNoError <span class="br0">&#41;</span> <span class="kw1">goto</span> error;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Stream started<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Waiting end of stream<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">while</span> <span class="br0">&#40;</span><span class="sy0">!</span>eos<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; Pa_Sleep<span class="br0">&#40;</span><span class="nu0">1000</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; err <span class="sy0">=</span> Pa_StopStream<span class="br0">&#40;</span> stream <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> err <span class="sy0">!=</span> paNoError <span class="br0">&#41;</span> <span class="kw1">goto</span> error;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; err <span class="sy0">=</span> Pa_Terminate<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span> err <span class="sy0">!=</span> paNoError <span class="br0">&#41;</span> <span class="kw1">goto</span> error;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Portaudio terminated<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_synth_finish<span class="br0">&#40;</span><span class="sy0">&amp;</span>Synth<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_header_finish<span class="br0">&#40;</span><span class="sy0">&amp;</span>Header<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_frame_finish<span class="br0">&#40;</span><span class="sy0">&amp;</span>Frame<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; mad_stream_finish<span class="br0">&#40;</span><span class="sy0">&amp;</span>Stream<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&quot;Mad terminated<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">end<span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">error<span class="sy0">:</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">printf</span><span class="br0">&#40;</span> &nbsp;<span class="st0">&quot;PortAudio error: %s<span class="es0">\n</span>&quot;</span>, Pa_GetErrorText<span class="br0">&#40;</span> err <span class="br0">&#41;</span> <span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Una cosa che salta all&#8217;occhio guardando il sorgente dell&#8217;esempio è che riproduce solo MP3 a 44.100Hz, 16 bit, stereo ma non è difficile adattarlo. <img src='http://www.sakya.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dream Theater finalmente fuori dal baratro</title>
		<link>http://www.sakya.it/wordpress/?p=141</link>
		<comments>http://www.sakya.it/wordpress/?p=141#comments</comments>
		<pubDate>Wed, 05 Oct 2011 10:17:17 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=141</guid>
		<description><![CDATA[Con un po&#8217; di scetticismo in questi giorni sto ascoltando l&#8217;ultimo album dei Dream Theater: A Dramatic Turn Of Events e devo dire che mi ha piacevolmente sorpreso. Personalmente non ho per nulla apprezzato gli ultimi loro lavori: è almeno &#8230; <a href="http://www.sakya.it/wordpress/?p=141">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Con un po&#8217; di scetticismo in questi giorni sto ascoltando l&#8217;ultimo album dei <strong>Dream Theater</strong>: <em>A Dramatic Turn Of Events</em> e devo dire che mi ha piacevolmente sorpreso.</p>
<p>Personalmente non ho per nulla apprezzato gli ultimi loro lavori: è almeno dal 1999 con <em>Metropolis Pt. 2: Scenes From A Memory</em> (concept album di una bellezza incredibile, secondo me uno dei migliori concept album mai registrati) che un loro album non mi convinceva. Troppo &#8220;duri&#8221; e lontani dal progressive metal che tanto mi era piaciuto nel loro primo periodo.</p>
<p>Accingendomi ad ascoltare <em>A Dramatic Turn Of Events</em> mi aspettavo, purtroppo, di ritrovarmi con un album simile a quelli precedenti ed invece ho avuto una inaspettata sorpresa: finalmente torna il progressive.</p>
<p>L&#8217;album passa il mio personale esame con un buon voto. Devo ancora ascoltarlo un po&#8217; per potermi fare una idea precisa e &#8220;definitiva&#8221;, ma diciamo che un eventuale voto non potrebbe essere inferiore al 7.</p>
<p>In conclusione: <em>bentornati Dream Theater</em>!</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/Ip2HCYt8YiA" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QtBatteryWidget per Nokia N900</title>
		<link>http://www.sakya.it/wordpress/?p=126</link>
		<comments>http://www.sakya.it/wordpress/?p=126#comments</comments>
		<pubDate>Mon, 20 Jun 2011 21:18:22 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=126</guid>
		<description><![CDATA[Ecco QtBatteryWidget: un widget per il desktop che visualizza informazioni sullo stato della batteria. Le informazioni visualizzabili (sia standard che modulo bq27x00) sono: Percentuale di carica Carica mAh Voltaggio mV Tempo rimanente (di utilizzo o per terminare la ricarica) Temperatura &#8230; <a href="http://www.sakya.it/wordpress/?p=126">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ecco <strong>QtBatteryWidget</strong>: un widget per il desktop che visualizza informazioni sullo stato della batteria.<br />
Le informazioni visualizzabili (sia standard che modulo bq27x00) sono: </p>
<ul>
<li>Percentuale di carica</li>
<li>Carica mAh</li>
<li>Voltaggio mV</li>
<li>Tempo rimanente (di utilizzo o per terminare la ricarica)</li>
<li>Temperatura</li>
</ul>
<p>Il tempo rimanente è calcolato semplicemente sull&#8217;ultima variazione della percentuale della batteria, quindi è un valore istantaneo, ma viene aggiornato dopo un po&#8217;&#8230;<br />
Se state usando il telefono in modo &#8220;pesante&#8221; dopo un po&#8217; il tempo rimanente scenderà, mentre se lasciate il telefono in standby il tempo rimanente aumenterà.</p>
<p>Durante la ricarica viene utilizzata (se disponibile) sempre la percentuale del modulo bq27x00, quindi appena collegate l&#8217;N900 la percentuale sale immediatamente (perché quella del bq27x00 è la carica percentuale effettiva della batteria).</p>
<p>Nella configurazione potete scegliere quali informazioni visualizzare ed il grado di opacità del widget.<br />
La percentaule può essere visualizzata in modo grafico, standard (progressbar) o testuale.</p>
<p><strong><a href="http://www.assembla.com/spaces/qtbatterywidget/wiki">Homepage</a></strong><br />
<strong><a href="http://maemo.org/packages/view/qtbatterywidget/">Package</a></strong><br />
<strong><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&#038;hosted_button_id=TGHNGBMN88YSC">Donazioni</a></strong></p>
<p><strong>Screenshot:</strong><br />
<img width="400px" src="http://www.assembla.com/spaces/qtbatterywidget/documents/d5V_6cM34r4iNteJe5cbLr/download/d5V_6cM34r4iNteJe5cbLr" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=126</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un mezz&#8217;uomo all&#8217;arrembaggio</title>
		<link>http://www.sakya.it/wordpress/?p=113</link>
		<comments>http://www.sakya.it/wordpress/?p=113#comments</comments>
		<pubDate>Wed, 15 Jun 2011 19:42:26 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Internet/Communication]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=113</guid>
		<description><![CDATA[Come dice lo stesso protagonista della vicenda: i fatti, innanzitutto. Il ministro della Pubblica Amministrazione ed Innovazione Renato Brunetta ieri durante il Convegno Nazionale dell&#8217;Innovazione svoltosi a Roma ha agito in questo modo: Non credo ci siano molti dubbi sul &#8230; <a href="http://www.sakya.it/wordpress/?p=113">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Come dice lo stesso protagonista della vicenda: <strong>i fatti, innanzitutto</strong>.<br />
Il ministro della Pubblica Amministrazione ed Innovazione <strong>Renato Brunetta</strong> ieri durante il Convegno Nazionale dell&#8217;Innovazione svoltosi a Roma ha agito in questo modo:<br />
<iframe width="425" height="349" src="http://www.youtube.com/embed/9pFjw72v_lc" frameborder="0" allowfullscreen></iframe></p>
<p>Non credo ci siano molti dubbi sul suo comportamento: deplorevole e vergognoso, soprattutto se si pensa che quelle parole (e quel comportamento) vengono da un ministro della Repubblica.</p>
<p>Premettendo che per quanto mi riguarda la ragione sta tutta dalla parte dei precari, sia per quanto riguarda le lamentele sulle condizioni di lavoro, sia per la reazione alla diffusione della notizia e del video, posso capire che il &#8220;buon&#8221; (per cosa decidetelo voi, io resto sul vago&#8230;) Renato non intendesse con quelle parole dire che i precari sono &#8220;l&#8217;Italia peggiore&#8221; ma si riferisse a quella &#8220;intrusione&#8221; al convegno o a quelle associazioni, di qualsiasi tipo, che &#8220;rompono le scatole&#8221; in modo visibile (e non con le carte bollate) a favore dei precari; ma quello che più mi stupisce è la video-risposta del ministro.<br />
<iframe width="425" height="349" src="http://www.youtube.com/embed/ZoOiNyR8AlA" frameborder="0" allowfullscreen></iframe></p>
<p>Sulla sua pagina personale <a href="http://www.renatobrunetta.it/2011/06/15/ieri-pomeriggio-sono-stato-insultato-dallitalia-peggiore/">risponde con un commento</a> (che nelle sue intenzioni dovrebbe essere una ricostruzione dei fatti) ed un video che mi pare un autogol clamoroso ed inspiegabile: come si fa a mentire spudoratamente alterando la realtà quando tutti sanno e tutti hanno visto il video di ciò che è successo?<br />
Con quale intelligenza una persona che si trova in una tale situazione risponde volontariamente e pubblicamente mettendo in fila una serie palese di menzogne, verificabili da un video?</p>
<p>Una persona intelligente e seria avrebbe dovuto, secondo me, semplicemente spiegare a chi erano rivolte quelle parole, perché erano state dette e, soprattutto, scusarsi per quel comportamento (girare le spalle ed andarsene) e per aver offeso un&#8217;intera categoria di lavoratori.<br />
Invece lui segue la linea del traditore colto sul fatto: negare sempre!</p>
<p>Qualche sempio:<br />
<em>&#8220;Ho però preferito lasciare la sala quando ho capito che la signora intendeva sollevare il problema dei precari nella Pubblica Amministrazione: un argomento non solo estraneo al tema del convegno ma che avrebbe richiesto bel altro tempo e ben altra attenzione.&#8221;</em><br />
Eh no, caro ministro: una cosa è &#8220;preferire lasciare la sala&#8221; perché l&#8217;argomento &#8220;avrebbe richiesto bel altro tempo e ben altra attenzione&#8221; ed un&#8217;altra cosa è girarsi ed andarsene alla prima parola dicendo &#8220;Grazie, arrivederci. Buongiorno&#8221;: questa a casa mia si chiama semplicemente <strong>maleducazione</strong>.</p>
<p><em>&#8220;L’Italia peggiore è infatti quella di quanti – non avendo di meglio da fare – irrompono sistematicamente in convegni e dibattiti per interromperne i lavori, insultare i presenti e riprendere la loro bravata con una telecamerina portatile&#8221;</em><br />
Interrompere i lavori? Il convegno era finito, hanno atteso educatamente il termine del discorso per alzare la mano e chiedere &#8220;possiamo farle una domanda?&#8221;, sono stati invitati sul palco, messi davanti ad un microfono&#8230;<br />
Insultare i presenti? Ma se non li ha lasciati parlare? Gli insulti sono seguiti alla sua reazione maleducata, alla fuga immediata alla parola &#8220;precari&#8221;.</p>
<p><em>&#8220;L’Italia peggiore è quella che usa la Rete come un manganello per agguati squadristici, senza aver nulla da dire.&#8221;</em><br />
Questa è la chicca: adesso attraverso la rete si fanno gli agguati squadristici! Dove arriva la tecnologia!<br />
Tra l&#8217;altro mi sembra che su questa vicenda l&#8217;Italia peggiore della rete di cose da dire ne abbia parecchie&#8230;</p>
<p><em>&#8220;Che pena.&#8221;</em><br />
Qui mi trovo perfettamente d&#8217;accordo col ministro: <strong>che pena!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=113</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stop talking. Start planting.</title>
		<link>http://www.sakya.it/wordpress/?p=106</link>
		<comments>http://www.sakya.it/wordpress/?p=106#comments</comments>
		<pubDate>Thu, 09 Jun 2011 15:44:12 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=106</guid>
		<description><![CDATA[Ogni volta che sento parlare di effetto serra, protocollo di Kyōto e cose simili mi chiedo perché si parli sempre di riduzione di emissioni di anidride carbonica in decine di anni (mai avvenuta nella realtà, poi) con metodi costosi e/o &#8230; <a href="http://www.sakya.it/wordpress/?p=106">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ogni volta che sento parlare di effetto serra, <a href="http://it.wikipedia.org/wiki/Protocollo_di_Kyōto">protocollo di Kyōto</a> e cose simili mi chiedo perché si parli sempre di riduzione di emissioni di anidride carbonica in decine di anni (mai avvenuta nella realtà, poi) con metodi costosi e/o dannosi alle economie nazionali e nessuno abbia mai semplicemente proposto <em>&#8220;Piantiamo alberi&#8221;</em>.<br />
La soluzione mi è sempre sembrata la più semplice ed economica: le piante consumano anidride carbonica producendo ossigeno, quale miglior modo di abbassare la concentrazione di anidride carbonica nell&#8217;aria?</p>
<p>Da poco ho scoperto che qualcuno questo lo sta facendo da almeno tre anni, ed abbiamo dovuto aspettare che fosse un bambino di 9 anni a pensarci!</p>
<p>L&#8217;associazione si chiama <a href="http://www.plant-for-the-planet.org/">Plant for the Planet</a> ed ha già piantato più di un milione di piante in tre anni.</p>
<p><a href="http://www.plant-for-the-planet.org/"><img width="300px" src="http://img1.loadtr.com/b-453814-plant_for_the_planet_logo.gif" alt="" /></a></p>
<p>Personalmente ritengo il progetto molto interessante ed ho già effettuato una donazione (probabilmente ne seguiranno altre nel corso degli anni)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=106</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bing Maps e WPF</title>
		<link>http://www.sakya.it/wordpress/?p=84</link>
		<comments>http://www.sakya.it/wordpress/?p=84#comments</comments>
		<pubDate>Tue, 24 May 2011 08:55:31 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=84</guid>
		<description><![CDATA[Mi è capitato di dover sviluppare una applicazione desktop usando il WPF che visualizzasse le mappe di Bing. Pensavo sarebbe stato facile (&#8220;E&#8217; tutto di Microsoft, sarà sicuramente facile&#8221;, pensavo) ed invece con qualche rapida ricerca su internet mi sono &#8230; <a href="http://www.sakya.it/wordpress/?p=84">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Mi è capitato di dover sviluppare una applicazione desktop usando il WPF che visualizzasse le mappe di Bing.<br />
Pensavo sarebbe stato facile (<em>&#8220;E&#8217; tutto di Microsoft, sarà sicuramente facile&#8221;</em>, pensavo) ed invece con qualche rapida ricerca su internet mi sono reso conto che non esiste un metodo &#8220;standard&#8221;, semplice e supportato direttamente da Microsoft di fare ciò.</p>
<p>Ho cercato un po&#8217; di documentazione, e vagliato almeno due possibilità</p>
<ul>
<li>Scrivere una semplice applicazione Silverlight, renderla disponibile su qualche server ed usarla all&#8217;interno di una window WPF (ma anche l&#8217;embedding di Silverlight in WPF non è a noi &#8220;concesso&#8221; da Microsoft in modo nativo)</li>
<li>Scrivere una pagina HTML ed interagire con essa tramite Javascript.</li>
</ul>
<p>La soluzione che ho scelto di utilizzare è la seconda: più semplice e senza necessità di hostare niente su un server.</p>
<p><a href="http://www.sakya.it/wordpress/wp-content/uploads/2011/05/bingmaps.png"><img src="http://www.sakya.it/wordpress/wp-content/uploads/2011/05/bingmaps-300x232.png" alt="" title="bingmaps" width="300" height="232" class="alignnone size-medium wp-image-87" /></a></p>
<p>Partiamo con un po&#8217; di documentazione:<br />
<a href="http://msdn.microsoft.com/en-us/library/dd221354.aspx">Qui</a> potete trovare un esempio di utilizzo dei servizi SOAP di Bing.<br />
<a href="http://www.dotnetfunda.com/articles/article840-working-with-webbrowser-in-wpf-.aspx">Qui</a> trovate un esempio di interazione tra WPF e WebBrowser tramite javascript.</p>
<p>Il progetto di esempio, che potete scaricare in fondo a questa mini-guida, è composto principalmente da una pagina HTML che si occupa di visualizzare le mappe di Bing e da una finestra WPF che interagisce con la pagina HTML fornendo coordinate e ricevendo informazioni da essa.<br />
La classe che permette la conunicazione tra WPF e Javascript è la seguente:</p>
<div class="geshi no csharp">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>PermissionSet<span class="br0">&#40;</span>SecurityAction.<span class="me1">Demand</span>, Name <span class="sy0">=</span> <span class="st0">&quot;FullTrust&quot;</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>ComVisible<span class="br0">&#40;</span><span class="kw1">true</span><span class="br0">&#41;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">public</span> <span class="kw4">class</span> ObjectForScriptingHelper</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; Window1 mExternalWPF;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> ObjectForScriptingHelper<span class="br0">&#40;</span>Window1 w<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">mExternalWPF</span> <span class="sy0">=</span> w;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">void</span> ActionChanged<span class="br0">&#40;</span><span class="kw4">string</span> action<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">mExternalWPF</span>.<span class="me1">ActionChanged</span><span class="br0">&#40;</span>action<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">public</span> <span class="kw1">void</span> PinAdded<span class="br0">&#40;</span><span class="kw4">string</span> latitude, <span class="kw4">string</span> longitude<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">this</span>.<span class="me1">mExternalWPF</span>.<span class="me1">PinAdded</span><span class="br0">&#40;</span>latitude, longitude<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>Come vedete è molto semplice. Da notare soltanto i metodi <code>ActionChanged</code> e <code>PinAdded</code>, che sono quelli che verrano chiamati da Javascript per comunicare con il programma principale.</p>
<p>La pagina HTML usa i normali metodi AJAX utilizzati sul web.<br />
<a href="http://www.microsoft.com/maps/isdk/ajax/">Qui</a> potete trovare molti esempi di utilizzo.</p>
<p>La parte WPF non fa altro che visualizzare il contenuto HTML in un controllo WebBrowser, comunicando con essa attraverso Javascript.</p>
<p>Visto che un esempio vale più di mille parole, ecco il progetto di test.<br />
<a href='http://www.sakya.it/wordpress/wp-content/uploads/2011/05/BingMapsTest.zip'>BingMapsTest</a></p>
<p>Per poterlo utilizzare dovete registrare un account al <a href="https://www.bingmapsportal.com/">Bing Maps Account Center</a> ed inserire la chiave nella costante:</p>
<div class="geshi no csharp">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">private</span> <span class="kw1">const</span> <span class="kw4">string</span> m_BingKey <span class="sy0">=</span> <span class="st0">&quot;Your Bing Maps Key&quot;</span>;</div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=84</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian: bloccare pacchetti alla versione corrente</title>
		<link>http://www.sakya.it/wordpress/?p=75</link>
		<comments>http://www.sakya.it/wordpress/?p=75#comments</comments>
		<pubDate>Thu, 19 May 2011 10:16:35 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=75</guid>
		<description><![CDATA[Visto che mi dimentico sempre come si fa, pubblico qui questa mini guida così almeno so dove ritrovarla in modo semplice. Per evitare che un pacchetto venga aggiornato con un apt-get upgrade è sufficiente metterlo in hold usando dpgk echo &#8230; <a href="http://www.sakya.it/wordpress/?p=75">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Visto che mi dimentico sempre come si fa, pubblico qui questa mini guida così almeno so dove ritrovarla in modo semplice. <img src='http://www.sakya.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Per evitare che un pacchetto venga aggiornato con un <code>apt-get upgrade</code> è sufficiente metterlo in <em>hold</em> usando <code>dpgk</code><br />
<code>echo "packageName hold" | dpkg --set-selections</code></p>
<p>Per rimuovere un pacchetto dallo stato di <em>hold</em>:<br />
<code>echo "packageName install" | dpkg --set-selections</code></p>
<p>Per controllare lo stato attuale di tutti i pacchetti:<br />
<code>dpkg --get-selections</code></p>
<p>Per controllare quelli in stato di <em>hold</em>:<br />
<code>dpkg --get-selections | grep hold</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=75</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Nokia N9(50), forse ci siamo!</title>
		<link>http://www.sakya.it/wordpress/?p=69</link>
		<comments>http://www.sakya.it/wordpress/?p=69#comments</comments>
		<pubDate>Tue, 17 May 2011 15:31:48 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=69</guid>
		<description><![CDATA[Dopo mesi e mesi di rumors e smentite forse ci stiamo avvicinando all&#8217;evento che (credo) tutti i possessori di Nokia N900 stanno aspettando. Le specifiche tecniche di questo nuovo device non sono ancora state rilasciate ufficialmente da Nokia (solo rumors &#8230; <a href="http://www.sakya.it/wordpress/?p=69">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dopo mesi e mesi di rumors e smentite forse ci stiamo avvicinando all&#8217;evento che (credo) tutti i possessori di Nokia N900 stanno aspettando.</p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/t-KfxrI1NXg" frameborder="0" allowfullscreen></iframe></p>
<p>Le specifiche tecniche di questo nuovo device non sono ancora state rilasciate ufficialmente da Nokia (solo rumors in giro per la rete, senza fonte) ma ciò che interessa veramente è che, finalmente, avremo un successore di Maemo 5 (che si tratti di Maemo 6 o Meego).</p>
<p>Dal video sembra di capire che sarà equipaggiato con una fotocamera da <strong>12 megapixel</strong> (la stessa dell&#8217;N8?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=69</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snoop: l&#8217;icona della verità</title>
		<link>http://www.sakya.it/wordpress/?p=53</link>
		<comments>http://www.sakya.it/wordpress/?p=53#comments</comments>
		<pubDate>Tue, 03 May 2011 13:42:54 +0000</pubDate>
		<dc:creator>sakya</dc:creator>
				<category><![CDATA[Computers/Technology]]></category>

		<guid isPermaLink="false">http://www.sakya.it/wordpress/?p=53</guid>
		<description><![CDATA[Per lavoro mi ritrovo ad utilizzare uno degli ultimi ritrovati della Microsoft: il WPF! Se non sapete cosa è potete dare uno sguardo qui e qui, ma vi assicuro che non vi perdete nulla. Il mio giudizio personale sul WPF &#8230; <a href="http://www.sakya.it/wordpress/?p=53">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Per lavoro mi ritrovo ad utilizzare uno degli ultimi ritrovati della Microsoft: il WPF!<br />
Se non sapete cosa è potete dare uno sguardo <a href="http://it.wikipedia.org/wiki/Windows_Presentation_Foundation">qui</a> e <a href="http://it.wikipedia.org/wiki/XAML">qui</a>, ma vi assicuro che non vi perdete nulla. <img src='http://www.sakya.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Il mio giudizio personale sul WPF (e lo XAML, altra invenzione MS) non è mai stato positivo.<br />
Una delle cose più fastidiose è che se utilizzato in un progetto di dimensioni considerevoli (con data template, control template sparsi nei vari progetti della solution) e complicato (dati generalizzati, uso di controlli in base al tipo di dati, costruzione automatica di finestre di editing) diventa poi difficile risalire a quale XAML si ha di fronte quando si utilizza l&#8217;applicazione.</p>
<p>E&#8217; cercando una soluzione pratica che mi imbatto in una utility che pare proprio fare al caso mio: <a href="http://snoopwpf.codeplex.com/">Snoop</a>, che permette di ispezionare gli oggetti a video di una applicazione WPF (più o meno come fanno tanti tool per web developers con le pagine html).<br />
Inutile dire che questo semplifica molto il problema di cui sopra.</p>
<p>Ma veniamo alla &#8220;icona della verità&#8221; del titolo di questo post: ho riso di gusto quando sul sito di Snoop l&#8217;occhio mi è caduto sul logo:<br />
<a href="http://snoopwpf.codeplex.com/"><img alt="" src="http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=snoopwpf&#038;DownloadId=124124&#038;Build=17748" title="snoop" class="alignnone" width="400" /></a></p>
<p>Visto che Snoop è &#8220;The WPF spy utility&#8221; e il logo raffigura un cane che &#8220;ispeziona&#8221; un escremento direi che il giudizio che l&#8217;autore di questa utility dà del WPF è identico al mio!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sakya.it/wordpress/?feed=rss2&#038;p=53</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

