<?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>Quarto di miglio &#187; Programmazione</title>
	<atom:link href="http://www.corrado-napoli.com/blog/category/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.corrado-napoli.com/blog</link>
	<description>0,402336</description>
	<lastBuildDate>Mon, 18 May 2009 16:53:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ti 89 Titanium e compatibilità</title>
		<link>http://www.corrado-napoli.com/blog/2008/ti-89-titanium-e-compatibilita/</link>
		<comments>http://www.corrado-napoli.com/blog/2008/ti-89-titanium-e-compatibilita/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 20:33:30 +0000</pubDate>
		<dc:creator>Corrado</dc:creator>
				<category><![CDATA[Ingegneria]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Websurf]]></category>

		<guid isPermaLink="false">http://www.corrado-napoli.com/blog/2008/ti-89-titanium-e-compatibilita/</guid>
		<description><![CDATA[Ho acquistato da poco una TI89 Titanium. Per chi, come me, dovesse avere qualche problema a far funzionare i programmi scritti per la TI 89, segnalo la patch hw3patch scritta da Kevin Kofler. La patch permette di utilizzare programmi scritti per le altre versioni della TI89 con la Titanium, nonché di installare programmi scritti per [...]]]></description>
			<content:encoded><![CDATA[<p>Ho acquistato da poco una TI89 Titanium. Per chi, come me, dovesse avere qualche problema a far funzionare i programmi scritti per la TI 89, segnalo la patch <a href="http://www.tigen.org/~kevin.kofler//ti89prog.htm#hw3patch">hw3patch</a> scritta da <a href="http://www.tigen.org/~kevin.kofler/">Kevin Kofler</a>. La patch permette di utilizzare programmi scritti per le altre versioni della TI89 con la Titanium, nonché di installare programmi scritti per vecchie versioni dell&#8217;OS.<br />
<strong>Attenzione!</strong> La patch agisce sulla RAM della vostra calcolatrice disabilitando alcune protezioni del sistema, l&#8217;autore non offre alcuna garanzia sul corretto funzionamento della vostra calcolatrice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corrado-napoli.com/blog/2008/ti-89-titanium-e-compatibilita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Php-stat e tempi di permanenza sballati</title>
		<link>http://www.corrado-napoli.com/blog/2008/php-stat-e-tempi-di-permanenza-sballati/</link>
		<comments>http://www.corrado-napoli.com/blog/2008/php-stat-e-tempi-di-permanenza-sballati/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 22:24:08 +0000</pubDate>
		<dc:creator>Corrado</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://www.corrado-napoli.com/blog/2008/php-stat-e-tempi-di-permanenza-sballati/</guid>
		<description><![CDATA[Da un po&#8217; di tempo, su un paio di siti che gestisco, si è presentato un problema con la visualizzazione dei report delle statistiche riguardanti i tempi di permanenza medi sulle pagine registrati con php-stat.  I tempi di permanenza medi, risultavano falsati da un dato evidentemente errato, che chissà come è stato registrato nel Db.
Chiunque [...]]]></description>
			<content:encoded><![CDATA[<p>Da un po&#8217; di tempo, su un paio di siti che gestisco, si è presentato un problema con la visualizzazione dei report delle statistiche riguardanti i tempi di permanenza medi sulle pagine registrati con php-stat.  I tempi di permanenza medi, risultavano falsati da un dato evidentemente errato, che chissà come è stato registrato nel Db.</p>
<p>Chiunque riscontrasse lo stesso problema,  può risolvere semplicemente in pochi minuti:</p>
<p>1) da php-stat controllate all&#8217;interno della sezione &#8220;Tempi di permanenza&#8221; quale pagina presenta il dato errato.<br />
2) da phpmyadmin o dal vostro programma di amministrazione del Db preferito, eseguite una query sulla tabella <strong>php_stats_pages</strong>, sulla pagina con il problema<br />
3) sostituite con un dato di massima, o eliminate il record che presenta il problema</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corrado-napoli.com/blog/2008/php-stat-e-tempi-di-permanenza-sballati/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax: Sviluppare applicazioni Web 2.0</title>
		<link>http://www.corrado-napoli.com/blog/2008/ajax-sviluppare-applicazioni-web-20/</link>
		<comments>http://www.corrado-napoli.com/blog/2008/ajax-sviluppare-applicazioni-web-20/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 20:40:21 +0000</pubDate>
		<dc:creator>Corrado</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Libri]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://www.corrado-napoli.com/blog/2007/ajax-sviluppare-applicazioni-web-20/</guid>
		<description><![CDATA[Non sono mai stato un estimatore di Ajax, sopratutto per le difficoltà legate all&#8217;accessibilità dei contenuti gestiti tramite Javascript.
Purtroppo (o per fortuna?) i trend spingono in senso contrario e mi costringono ad approfondire, o per meglio dire ad imparare, questa tecnologia.
Mi ritrovo tra le mani una copia del libro &#8220;Sviluppare applicazioni web 2.0&#8221; di Christophe [...]]]></description>
			<content:encoded><![CDATA[<p>Non sono mai stato un estimatore di Ajax, sopratutto per le difficoltà legate all&#8217;accessibilità dei contenuti gestiti tramite Javascript.<br />
Purtroppo (o per fortuna?) i trend spingono in senso contrario e mi costringono ad approfondire, o per meglio dire ad imparare, questa tecnologia.</p>
<p>Mi ritrovo tra le mani una copia del libro &#8220;<strong>Sviluppare applicazioni web 2.0</strong>&#8221; di Christophe Porteneuve. In copertina si legge:</p>
<blockquote><p><strong>SCOPRIRE</strong><br />
la capacità di interazione e le possibilità comunicative del Web 2.0</p></blockquote>
<blockquote><p><strong>IMPARARE</strong><br />
a usare AJAX per migliorare e velocizzare l&#8217;esperienza utente</p></blockquote>
<p>Voglio cominciare un esperimento, sulla falsa riga di qualcosa che ho letto recentemente in un altro blog: il libro è composto da <strong>9 capitoli</strong>. Un capitolo alla settimana per <strong>9 settimane</strong> (Vacanze di Natale e Capodanno escluse, naturalmente!).<br />
Al termine di ognuno scriverò un breve riassunto corredato da qualche esercizietto di esempio, perché mettere nero su bianco mi ha sempre aiutato a riordinare le idee, e perché non si sa mai che non possa tornare utile in futuro; a me, o a qualcun&#8217;altro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corrado-napoli.com/blog/2008/ajax-sviluppare-applicazioni-web-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RAD per wxPython</title>
		<link>http://www.corrado-napoli.com/blog/2007/rad-per-wxpython/</link>
		<comments>http://www.corrado-napoli.com/blog/2007/rad-per-wxpython/#comments</comments>
		<pubDate>Wed, 05 Dec 2007 22:54:34 +0000</pubDate>
		<dc:creator>Corrado</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Websurf]]></category>

		<guid isPermaLink="false">http://www.corrado-napoli.com/blog/2007/rad-per-wxpython/</guid>
		<description><![CDATA[Da un mesetto circa sto provando un po&#8217; di tool per lo sviluppo di interfacce grafiche in Python. Cercando un&#8217;alternativa a Boa e WxGlade sono incappato in un progetto che, anche se in fase embrionale, mi è piaciuto: VisualWx.
A volte il look&#8217;n feel conta più di tutto il resto.
Qui il Wiki (in Italiano) del progetto.
]]></description>
			<content:encoded><![CDATA[<p>Da un mesetto circa sto provando un po&#8217; di tool per lo sviluppo di interfacce grafiche in Python. Cercando un&#8217;alternativa a Boa e WxGlade sono incappato in un progetto che, anche se in fase embrionale, mi è piaciuto: <a href="http://www.visualwx.altervista.org/index.php" title="VisualWx Home Page">VisualWx</a>.</p>
<p>A volte il look&#8217;n feel conta più di tutto il resto.</p>
<p><a href="http://www.altinum.org/project/index.php?title=VisualWx" title="Wiki VisualWx">Qui</a> il Wiki (in Italiano) del progetto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.corrado-napoli.com/blog/2007/rad-per-wxpython/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pile e parser RPN in Python</title>
		<link>http://www.corrado-napoli.com/blog/2007/pile-e-parser-rpn-in-python/</link>
		<comments>http://www.corrado-napoli.com/blog/2007/pile-e-parser-rpn-in-python/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 20:31:47 +0000</pubDate>
		<dc:creator>Corrado</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.corrado-napoli.com/blog/?p=9</guid>
		<description><![CDATA[La notazione polacca inversa (RPN) è una sintassi utilizzata per scrivere formule matematiche. Sostuisce all'uso delle parentesi e delle regole sulla precedenza degli operatori della notazione infissa una forma postfissa, ovvero che post pone agli operandi gli operatori. Ad es:

5 * 2 corrisponde a 5 2 *
(10 * 6) + 4 corrisponde a 10 6 * 4 + oppure 4 10 6 * +

Come piccolo esercizio per un esame ho scritto questo semplice parser RPN, che fa uso delle pile per sviluppare la formula matematica:]]></description>
			<content:encoded><![CDATA[<p>La notazione polacca inversa (<a href="http://en.wikipedia.org/wiki/Reverse_Polish_notation" title="Reverse Polish notation">RPN</a>) è una sintassi utilizzata per scrivere formule matematiche. Sostuisce all&#8217;uso delle parentesi e delle regole sulla precedenza degli operatori della notazione infissa una forma postfissa, ovvero che post pone agli operandi gli operatori. Ad es:</p>
<p><strong>5 * 2</strong> corrisponde a <strong>5 2 *</strong><br />
<strong> (10 * 6) + 4</strong> corrisponde a <strong>10 6 * 4 +</strong> oppure <strong>4 10 6 * +</strong></p>
<p>Come piccolo esercizio per un esame ho scritto questo semplice parser RPN, che fa uso delle pile per sviluppare la formula matematica:</p>
<p><span id="more-9"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
</pre></td><td class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">re</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> stack<span style="color: black;">&#40;</span><span style="color: #008000;">list</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span> = <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> push<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, Elemento, index = <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span>index == <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span>.<span style="color: black;">append</span><span style="color: black;">&#40;</span>Elemento<span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">else</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span>.<span style="color: black;">insert</span><span style="color: black;">&#40;</span>index, Elemento<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> pop<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, index = 0<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span>.<span style="color: black;">pop</span><span style="color: black;">&#40;</span>index<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> index<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, value<span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span>.<span style="color: black;">index</span><span style="color: black;">&#40;</span>value<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> count<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        indice = 0
        <span style="color: #ff7700;font-weight:bold;">for</span> element <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span>:
            indice += <span style="color: #ff4500;">1</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> indice
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> EVuota<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: black;">&#40;</span><span style="color: #008000;">self</span>.<span style="color: black;">Elementi</span> == <span style="color: black;">&#91;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> ParserRPN<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span> = stack<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> analizza<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, espressione<span style="color: black;">&#41;</span>:
&nbsp;
        <span style="color: #808080; font-style: italic;">#lista degli operatori</span>
        ListaToken = <span style="color: #dc143c;">re</span>.<span style="color: black;">findall</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;[^0-9s]&quot;</span>, espressione<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">for</span> element <span style="color: #ff7700;font-weight:bold;">in</span> espressione.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">try</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">push</span><span style="color: black;">&#40;</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>element<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">except</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">push</span><span style="color: black;">&#40;</span>element<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #ff7700;font-weight:bold;">for</span> Token <span style="color: #ff7700;font-weight:bold;">in</span> ListaToken:
            <span style="color: #808080; font-style: italic;">#trovo la posizione dell'operatore nello stack</span>
            TokenIndex = <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">index</span><span style="color: black;">&#40;</span>Token<span style="color: black;">&#41;</span>
&nbsp;
            <span style="color: #808080; font-style: italic;">#calcolo la posizione dei due operandi e rimuovo</span>
            <span style="color: #808080; font-style: italic;">#l'operatore dallo stack</span>
&nbsp;
            a = <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">pop</span><span style="color: black;">&#40;</span>TokenIndex - <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
            b = <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">pop</span><span style="color: black;">&#40;</span>TokenIndex - <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">pop</span><span style="color: black;">&#40;</span>TokenIndex - <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
&nbsp;
            <span style="color: #808080; font-style: italic;">#eseguo l'operazione</span>
            <span style="color: #ff7700;font-weight:bold;">if</span><span style="color: black;">&#40;</span>Token == <span style="color: #483d8b;">&quot;+&quot;</span><span style="color: black;">&#41;</span>:
                Risultato = a + b
            <span style="color: #ff7700;font-weight:bold;">elif</span><span style="color: black;">&#40;</span>Token == <span style="color: #483d8b;">&quot;*&quot;</span><span style="color: black;">&#41;</span>:
                Risultato = a <span style="color: #66cc66;">*</span> b
            <span style="color: #ff7700;font-weight:bold;">elif</span><span style="color: black;">&#40;</span>Token == <span style="color: #483d8b;">&quot;-&quot;</span><span style="color: black;">&#41;</span>:
                Risultato = a - b
            <span style="color: #ff7700;font-weight:bold;">elif</span><span style="color: black;">&#40;</span>Token == <span style="color: #483d8b;">&quot;/&quot;</span><span style="color: black;">&#41;</span>:
                Risultato = a / b
&nbsp;
            <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">push</span><span style="color: black;">&#40;</span><span style="color: #008000;">float</span><span style="color: black;">&#40;</span>Risultato<span style="color: black;">&#41;</span>, TokenIndex - <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">Stack</span>.<span style="color: black;">pop</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.corrado-napoli.com/blog/2007/pile-e-parser-rpn-in-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
