<?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>Meox Blog - a programming language resource</title>
	<atom:link href="http://www.meocci.it/wordpress/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.meocci.it/wordpress</link>
	<description>La teoria è quando si sa tutto ma non funziona niente. La pratica è quando funziona tutto ma non si sa il perché. In ogni caso si finisce sempre con il coniugare la teoria con la pratica: non funziona niente e non si sa il perché</description>
	<lastBuildDate>Sun, 21 Oct 2012 14:49:30 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>C++11 - Qualche esperimento</title>
		<link>http://www.meocci.it/wordpress/?p=111</link>
		<comments>http://www.meocci.it/wordpress/?p=111#comments</comments>
		<pubDate>Sun, 21 Oct 2012 10:08:49 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=111</guid>
		<description><![CDATA[Con l'introduzione del nuovo standard il C++ è diventanto effettivamente un nuovo linguaggio di programmazione. Sono stati introdotti molti nuovi concetti come: std::move (Rvalue), Lambda, auto keyword, Uniform initialization, Future (e async call), Callable entities e molte altre ancora precedentemente &#8230; <a href="http://www.meocci.it/wordpress/?p=111">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Con l'introduzione del nuovo standard il C++ è diventanto effettivamente un nuovo linguaggio di programmazione. Sono stati introdotti molti nuovi concetti come: <strong>std::move (Rvalue)</strong>, <strong>Lambda</strong>, <strong>auto</strong> keyword, <strong>Uniform initialization</strong>, <strong>Future</strong> (e async call), <strong>Callable entities</strong> e molte altre ancora precedentemente introdotte nelle boost e adesso inglobate nello standard e nello standard library. Vi presento un piccolo esempio di codice che ho compilato con il gcc 4.7.1. Lo scopo è quello di mostrare l'uso dei nuovi costrutti del C++11</p>
<pre class="brush: cpp; title: ; notranslate">
// includiamo gli header nececessari
#include
#include
#include

using namespace std;

// definiamo una semplice struttura che conterrà due valori interi
struct Point {
  int x, y;
};

// Definiamo una funzione f che utilizza dei vector come container.
// Adesso i vector sono automaticamente &quot;movable&quot;
std::vector f(int n)
{
  std::vector r;
  for (int i = 0; i &lt; n; i++)
    r.push_back(Point{i, i*i});

  return r;
}

int main()
{
  //definiamo una lambda function usando &quot;auto&quot; come tipo (lasciamo al compilatore il compito di derivare il tipo)
  auto s = [](const std::vector&amp; v){
    unsigned long int rx = 0, ry = 0;
    // scorriamo il vector con la nuova sintassi: for(auto v : c)
    for (auto i : v)
    {
      rx += i.x;
      ry += i.y;
    }

    // la nostra funzione restituisce una tupla
    return std::make_tuple(rx, ry);
  };

  // adesso invochiamo s (f (10000000))
  auto r = s(f(10000000));
  cout &lt;&lt; &quot;somma: &quot; &lt;&lt; std::get(r) &lt;&lt; &quot;, &quot; &lt;&lt; std::get(r) &lt;&lt; endl;

  return 0;
}
</pre>
<p>Per maggiori informazioni si può consulare "Overview of The New C++ (C++11)" di Scott Meyers (<a title="C++11 - Scott Meyers" href="http://www.aristeia.com/C++11.html" target="_blank">http://www.aristeia.com/C++11.html</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=111</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SunCycle</title>
		<link>http://www.meocci.it/wordpress/?p=100</link>
		<comments>http://www.meocci.it/wordpress/?p=100#comments</comments>
		<pubDate>Sun, 15 Jan 2012 21:31:25 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=100</guid>
		<description><![CDATA[Ho rilasciato SunCyle la mia prima App per Android sul Play Store (http://bit.ly/xxgLM8). Segui i movimenti del Sole ovunque sei Calcola l'ora dell'alba, del tramonto e della culminazione del Sole in base alle coordinate GPS attuali e alla data corrente. &#8230; <a href="http://www.meocci.it/wordpress/?p=100">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ho rilasciato <strong>SunCyle</strong> la mia prima App per Android sul Play Store (<a title="SunCycle Android Market" href="http://bit.ly/xxgLM8" target="_blank">http://bit.ly/xxgLM8</a>).</p>
<p>Segui i movimenti del Sole ovunque sei</p>
<p>Calcola l'ora dell'alba, del tramonto e della culminazione del Sole in base alle coordinate GPS attuali e alla data corrente. Fornisce indicazioni sulla posizione del Sole e sulla sua elevazione ed è dunque utile per tutti gli amanti della fotografia e per gli astronomi.</p>
<p><a href="https://play.google.com/store/apps/details?id=com.enginetwork.app.suncycle" rel="attachment wp-att-127"><img class="alignleft size-medium wp-image-127" title="SunCycle" src="http://www.meocci.it/wordpress/wp-content/uploads/2012/01/unnamed-168x300.jpg" alt="" width="168" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=100</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alcuni libri consigliati e qualche riflessione in merito</title>
		<link>http://www.meocci.it/wordpress/?p=74</link>
		<comments>http://www.meocci.it/wordpress/?p=74#comments</comments>
		<pubDate>Thu, 10 Jun 2010 12:00:37 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=74</guid>
		<description><![CDATA[In questi giorni, avendo qualche ora in più a disposizione vorrei proporvi due letture estive. Ovvero meravigliosi libri che dovrebbero essere il punto di partenza per chiunque volesse capirci qualcosa in più sulla programmazione e su quello che realmente essa &#8230; <a href="http://www.meocci.it/wordpress/?p=74">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In questi giorni, avendo qualche ora in più a disposizione vorrei proporvi due letture estive. Ovvero meravigliosi libri che dovrebbero essere il punto di partenza per chiunque volesse capirci qualcosa in più sulla programmazione e su quello che realmente essa sia: un arte. Il primo libro è: <strong>Structure and Interpretation of Computer Programs</strong> di <em>Harold Abelson</em> e <em>Gerald Jay Sussman</em>. Testo utilizzato al MIT per insegnare agli studenti a programmare usando la testa e lo Scheme. Il libro lo potete tranuillamente scaricare dal sito degli autori o <a href="/manual/Structure-and-Interpretation-of-Computer-Programs-SICP.pdf" target="_blank">qui</a> in formato PDF. Io ho iniziato a leggerlo appena in questi giorni nonostante abbia terminato la laurea nel dicembre 2007. Mi sembra assurdo che in tutti i miei anni di studi alla facoltà di ingegneria nessun professore o un assistente che sia abbiano mai fatto mensione ad un libro utilizzato in quasi tutte le università americane, oltre che al MIT, per oltre venti anni. E mi pare ancora più assurdo che nessuno abbia mai tenuto un corso sul Lisp, o i sui dialetti, e che nessuno ci abbia mai parlato del lambda calcolo. Ma va be siamo in Italia ... forse invecchiando sono diventato troppo esigente. L'altro libro di cui volevo parlarvi è <strong>Higher Order Perl</strong> scritto da <em>Mark Jason Dominus</em>. Il libro spiega come usare il Perl come linguaggio funzionale piuttosto che come sustituto del C. Anche in questo caso si tratta di un libro incredibilmente affascinante e come ogni cosa bella rilasciato gratuitamente (lo trovate <a href="/manual/HigherOrderPerl.pdf" target="_blank">qui</a> in formato PDF).</p>
<p>Vi auguro un buona lettura.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=74</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I primi di Collatz</title>
		<link>http://www.meocci.it/wordpress/?p=42</link>
		<comments>http://www.meocci.it/wordpress/?p=42#comments</comments>
		<pubDate>Wed, 09 Jun 2010 16:19:41 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=42</guid>
		<description><![CDATA[Se andate su Wikipedia al seguente link link troverete una chiara spiegazione sulla congettura di Collatz. Se prendiamo un qualsiasi numero e iteriamo la seguente procedura: la congettura afferma che prima o poi arriveremo sempre ad 1. Questo è quantomeno &#8230; <a href="http://www.meocci.it/wordpress/?p=42">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se andate su Wikipedia al seguente link <a href="http://en.wikipedia.org/wiki/Collatz_conjecture">link</a> troverete una chiara spiegazione sulla congettura di Collatz. Se prendiamo un qualsiasi numero e iteriamo la seguente procedura:<br />
<span class='MathJax_Preview'><img src='http://www.meocci.it/wordpress/wp-content/plugins/latex/cache/tex_9f37f12f07a65841eb284611cf0317c4.gif' style='vertical-align: middle; border: none; padding-bottom:2px;' class='tex' alt="n^{\prime} = \begin{cases} n/2 &\mbox{if } n \equiv 0 \pmod{2}\\ 3n+1 & \mbox{if } n\equiv 1 \pmod{2} \end{cases}" /></span><script type='math/tex'>n^{\prime} = \begin{cases} n/2 &\mbox{if } n \equiv 0 \pmod{2}\\ 3n+1 & \mbox{if } n\equiv 1 \pmod{2} \end{cases}</script><br />
la congettura afferma che prima o poi arriveremo sempre ad 1. Questo è quantomeno affascinante, il sapere cioè che ogni numero sottoposto a questa legge converga inesorabilmente ad 1 un numero finito di passi. Allora mi è venuto in mente di studiare come si comportano i numeri primi, e ho così scritto un semplice programma in c++ usando le gmplib per capire l'andamento delle orbite dei primi, ovvero del numero di iterazioni necessarie a raggiungere uno. I risultati non mostrano per adesso alcun comportamento particolare ma ancora mi riservo qualche ulteriore analisi.</p>
<pre class="brush: cpp; title: ; notranslate">
#include
#include
#include
#include

int main(int argc, char *argv[])
{
int i = 0, k = 0, c = 10;
mpz_t s, n, one;

if(argc &amp;gt; 1)
c = strtol (argv[1], 0, 10);

mpz_init (s);
mpz_init (n);
mpz_init (one);

mpz_set_ui (s, 3);
mpz_set_ui (one, 1);

FILE *fd = fopen (&quot;orbita.txt&quot;, &quot;w&quot;);

while( i &amp;lt; c )
{
if (mpz_probab_prime_p (s, 15) == 2) // if s is definitely prime
{
mpz_set (n, s);
char *stxt = mpz_get_str(0, 10, s);
printf (&quot;Trovato primo: %s, con orbita = &quot;, stxt);
while ( mpz_cmp_ui (n, 1) != 0 )
{
if( mpz_tstbit(n, 0) == 0 ) // pari
{
mpz_divexact_ui (n, n, 2);
}
else
{
// n = 3*n + 1
mpz_mul_ui (n, n, 3);
mpz_add_ui (n, n, 1);
}
k++;
}
printf (&quot;%d\n&quot;, k);
fprintf(fd, &quot;%s %d\n&quot;, stxt, k);
free(stxt);
k = 0;
i++;
}
mpz_add_ui (s, s, 2);
}

mpz_clear (s);
mpz_clear (n);
mpz_clear (one);

fclose (fd);

return 0;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=42</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PyCon Quattro</title>
		<link>http://www.meocci.it/wordpress/?p=34</link>
		<comments>http://www.meocci.it/wordpress/?p=34#comments</comments>
		<pubDate>Sat, 20 Mar 2010 15:05:09 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=34</guid>
		<description><![CDATA[Importante conferenza sul Python. Penso proprio di andarci visto che vorrei indagare un po di più su questo importante linguaggio. Per maggiori dettagli sull'evento http://www.pycon.it]]></description>
			<content:encoded><![CDATA[<p>Importante conferenza sul Python. Penso proprio di andarci visto che vorrei indagare un po di più su questo importante linguaggio. Per maggiori dettagli sull'evento <a href="http://www.pycon.it/">http://www.pycon.it</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rinominare in Bash</title>
		<link>http://www.meocci.it/wordpress/?p=28</link>
		<comments>http://www.meocci.it/wordpress/?p=28#comments</comments>
		<pubDate>Thu, 11 Mar 2010 17:20:42 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=28</guid>
		<description><![CDATA[Per rinomare tutti i file *.JPG in *.jpg è sufficente utilizzare questo comando nella nostra shell bash:]]></description>
			<content:encoded><![CDATA[<p>Per rinomare tutti i file *.JPG in *.jpg è sufficente utilizzare questo comando nella nostra shell bash:</p>
<pre class="brush: bash; light: true; title: ; notranslate">
for i in $(ls *.JPG); do
echo &quot;mv&quot; $i `echo $i | tr &quot;[:upper:]&quot; &quot;[:lower:]&quot;` | bash;
done;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=28</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reverse file in Perl</title>
		<link>http://www.meocci.it/wordpress/?p=21</link>
		<comments>http://www.meocci.it/wordpress/?p=21#comments</comments>
		<pubDate>Sat, 06 Feb 2010 10:01:35 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=21</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<pre class="brush: perl; light: true; title: ; notranslate">
#!/usr/bin/perl -w

use strict;
use warnings;

open FILE, &quot;&lt;&quot;.$ARGV[0];
my @LINES = &lt;FILE&gt;;

for(my $i = scalar(@LINES) - 1; $i &gt;= 0; $i--)
{
    print $LINES[$i];
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polkit</title>
		<link>http://www.meocci.it/wordpress/?p=6</link>
		<comments>http://www.meocci.it/wordpress/?p=6#comments</comments>
		<pubDate>Sat, 26 Sep 2009 11:32:29 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=6</guid>
		<description><![CDATA[Se avete una Debian Squeeze e usate KDE 4 vi sarete accorti che il mounting dei dischi interni non funziona per motivi di "policy".  La soluzione barbina che avevo trovato per risolvere il problema tempo fa fu quella di modificare &#8230; <a href="http://www.meocci.it/wordpress/?p=6">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se avete una Debian Squeeze e usate KDE 4 vi sarete accorti che il mounting dei dischi interni non funziona per motivi di "policy".  La soluzione barbina che avevo trovato per risolvere il problema tempo fa fu quella di modificare a mano il file xml di configurazione di HAL. Oggi ho trovato una simpatica utility <strong>polkit-kde-authorization</strong> che vi consente di cambiare qualsiasi impostazione di policy. L'articolo ( che trovate <a href="http://hal.freedesktop.org/docs/PolicyKit/model-theory-of-operation.html">qui</a>) illustra il funzionamento del meccanismo di autenticazione tra HAL e X.Org che si basa proprio sulla libreria libpolkit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=6</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il mio blog</title>
		<link>http://www.meocci.it/wordpress/?p=1</link>
		<comments>http://www.meocci.it/wordpress/?p=1#comments</comments>
		<pubDate>Sun, 20 Sep 2009 14:57:29 +0000</pubDate>
		<dc:creator>meox</dc:creator>
				<category><![CDATA[Generale]]></category>

		<guid isPermaLink="false">http://www.meocci.it/wordpress/?p=1</guid>
		<description><![CDATA[Questo spazio vuole essere un modo di comunicare all'esterno quello che faccio (o cerco di fare), le idee che mi passano per la mente e qualche riflessione sugli accadimenti che la vita ci pone. Fra poco vedremo se riuscirò a &#8230; <a href="http://www.meocci.it/wordpress/?p=1">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Questo spazio vuole essere un modo di comunicare all'esterno quello che faccio (o cerco di fare), le idee che mi passano per la mente e qualche riflessione sugli accadimenti che la vita ci pone. Fra poco vedremo se riuscirò a postare qualcosa di decente. A presto</p>
]]></content:encoded>
			<wfw:commentRss>http://www.meocci.it/wordpress/?feed=rss2&#038;p=1</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
