<?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>Davide Petrillo &#187; Programmazione</title>
	<atom:link href="http://petr.illodavi.de/category/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>http://petr.illodavi.de</link>
	<description>Tech blog, roba varia &#38; me stesso</description>
	<lastBuildDate>Mon, 12 Jul 2010 19:32:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Strumenti per controllare la performance di MySQL</title>
		<link>http://petr.illodavi.de/2010/02/strumenti-per-controllare-la-performance-di-mysql/</link>
		<comments>http://petr.illodavi.de/2010/02/strumenti-per-controllare-la-performance-di-mysql/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 22:29:41 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mytop]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[slow query]]></category>

		<guid isPermaLink="false">http://petr.illodavi.de/?p=81</guid>
		<description><![CDATA[Nessun compendio, solo un paio di appunti a riguardo: 
Mytop: permette di vedere i processi MySQL attualmente in esecuzione, ed eventualmente abbattere quelli pendenti o che stanno occupando troppe risorse di sistema. Esiste anche un package per Ubuntu. 
log_slow_query: permette di tener traccia in un file di tutte le query che impiegano più di n [...]]]></description>
			<content:encoded><![CDATA[<p>Nessun compendio, solo un paio di appunti a riguardo: <a href="http://jeremy.zawodny.com/mysql/mytop/"></a></p>
<p><a href="http://jeremy.zawodny.com/mysql/mytop/">Mytop</a>: permette di vedere i processi MySQL attualmente in esecuzione, ed eventualmente abbattere quelli pendenti o che stanno occupando troppe risorse di sistema. Esiste anche un package per Ubuntu. <a href="http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html"></a></p>
<p><a href="http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html">log_slow_query</a>: permette di tener traccia in un file di tutte le query che impiegano più di n secondi <code>&lt;nsec&gt;</code> ad eseguirsi. Per abilitarlo, oltre al metodo descritto nel link, possiamo modificare il nostro file my.cnf ed aggiungere, nella sezione [mysqld]:</p>
<p><code>long_query_time = &lt;nsec&gt;</code></p>
<p><code>log-slow-queries = /path/to/mysql_slow_query.log</code></p>
<p>Bisogna poi creare il file <code>/path/to/mysql_slow_query.log</code> e rendere l&#8217;utente <code>mysql</code> proprietario con un chown (questo su Linux, naturalmente)</p>
<p>Altro?</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">
<p>http://jeremy.zawodny.com/mysql/mytop/</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://petr.illodavi.de/2010/02/strumenti-per-controllare-la-performance-di-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Funzioni anonime e closures in PHP 5.3</title>
		<link>http://petr.illodavi.de/2009/03/funzioni-anonime-e-closures-in-php-53/</link>
		<comments>http://petr.illodavi.de/2009/03/funzioni-anonime-e-closures-in-php-53/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 09:58:08 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[chiusure]]></category>
		<category><![CDATA[closures]]></category>
		<category><![CDATA[funzioni anonime]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[lambda]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php 5.3]]></category>

		<guid isPermaLink="false">http://petr.illodavi.de/?p=62</guid>
		<description><![CDATA[Fino ad oggi in PHP era possibile creare funzioni anonime (lambda) utilizzando la funzione create_function, ma il suo utilizzo non mi ha mai convinto, sapeva troppo di eval. Essendo abituato a Javascript, e a jQuery, trovo questa sintassi molto più funzionale:

var a = 5;
var myFunc = function (b) {
  return a + b;
};
a = [...]]]></description>
			<content:encoded><![CDATA[<p>Fino ad oggi in PHP era possibile creare funzioni anonime (lambda) utilizzando la funzione <code>create_function,</code> ma il suo utilizzo non mi ha mai convinto, sapeva troppo di <code>eval</code>. Essendo abituato a Javascript, e a jQuery, trovo questa sintassi molto più funzionale:</p>
<pre class="brush: jscript;">
var a = 5;
var myFunc = function (b) {
  return a + b;
};
a = 10;
alert( myFunc(2) ); //print 7
</pre>
<p>L&#8217;utilizzo di <code>a</code> all&#8217;interno di <code>myFunc </code>è chiamata closure: il valore di <code>a </code>viene bindato (legato) nello scope di <code>myFunc</code>, e rimarrà invariato nel tempo.</p>
<p>Dalla prossima versione di PHP, la 5.3, sarà possibile fare qualcosa del tutto simile. Ecco come:</p>
<pre class="brush: php;">
$a = 5;
$myFunc = function ( $b ) use ( $a ) {
  return $a + $b;
};
$a = 10;
echo $myFunc( 2 ); // print 7
</pre>
<p>Notare che in PHP le closures vanno dichiarate esplicitamente con l&#8217;utilizzo del comando <code>use</code>.</p>
<p>Per quanto sia contento di questa nuova feature, rimango perplesso sulla linea con cui viene sviluppato ed aggiornato PHP: si prosegue con la mancanza di convenzioni, e a volte, come in questo caso, funzionalità nuove sanno più di patch che di improvement.</p>
<p>Sul sito di PHP trovate <a href="http://wiki.php.net/rfc/closures">maggiori info</a>, mentre in questo PDF sono elencate <a href="http://conf.phpquebec.com/slides/2009/php5.3-phpquebec_2009.pdf">tutte le nuove features di PHP 5.3</a></p>
<p>Via: <a href="http://zaemis.blogspot.com/2009/03/anonymous-functions-and-closures.html">Zaemis</a></p>
]]></content:encoded>
			<wfw:commentRss>http://petr.illodavi.de/2009/03/funzioni-anonime-e-closures-in-php-53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Due modi semplici per testare le espressioni regolari</title>
		<link>http://petr.illodavi.de/2008/10/due-modi-semplici-per-testare-le-espressioni-regolari/</link>
		<comments>http://petr.illodavi.de/2008/10/due-modi-semplici-per-testare-le-espressioni-regolari/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 08:41:49 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://petr.illodavi.de/?p=7</guid>
		<description><![CDATA[Se siete stanchi di testare le vostre regular expression andando avanti a tentativi, ecco un paio di strumenti che possono fare al caso vostro.
Il primo, per gli utenti Linux, è KRegExpEditor, un semplice software in cui avete la possibilità di creare la regex in maniera semplice e veloce tramite la pulsantiera superiore, oppure scriverla alla [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://petr.illodavi.de/wp-content/uploads/2008/10/regexp.png"><img class="alignleft alignnone size-medium wp-image-45" style="float: left;" title="regexp" src="http://petr.illodavi.de/wp-content/uploads/2008/10/regexp-300x235.png" alt="Il RegExp Evaluator di Firefox" width="240" /></a>Se siete stanchi di testare le vostre regular expression andando avanti a tentativi, ecco un paio di strumenti che possono fare al caso vostro.</p>
<p>Il primo, per gli utenti Linux, è KRegExpEditor, un semplice software in cui avete la possibilità di creare la regex in maniera semplice e veloce tramite la pulsantiera superiore, oppure scriverla alla vecchia maniera, down &amp; dirty. Nell&#8217;area centrale inserite il testo sul quale volete testare la regex: si illuminerà a seconda della bontà della vostra espressione.</p>
<p>La seconda possibilità ve la fornisce invece Firefox: installate l&#8217;<a href="http://ted.mielczarek.org/code/mozilla/extensiondev/" target="_self">Extension Developer</a> extension ed avrete a disposizione il RegExp Evaluator, uno strumento simile al precedente, sviluppato in Javascript. Ne trovate anche una <a href="http://www.cuneytyilmaz.com/prog/jrx/jrx.nongecko.html">versione online</a>.</p>
<p>Se invece di espressioni regolari non avete mai capito (quasi) nulla, vi rimando al bellissimo <a href="http://www.regular-expressions.info/" target="_self">regular-expressions.info</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://petr.illodavi.de/2008/10/due-modi-semplici-per-testare-le-espressioni-regolari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perchè rendere pubblico il proprio codice</title>
		<link>http://petr.illodavi.de/2008/06/perche-rendere-pubblico-il-proprio-codice/</link>
		<comments>http://petr.illodavi.de/2008/06/perche-rendere-pubblico-il-proprio-codice/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 00:17:14 +0000</pubDate>
		<dc:creator>Davide</dc:creator>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[iPampics]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://petr.illodavi.de/?p=30</guid>
		<description><![CDATA[E&#8217; di qualche giorno fa il rilascio della prima versione (in realtà molto beta) di iPampics, il piccolo progetto di photo gallery scritto in PHP.
 Come anticipato, voglio spendere 5 minuti per spiegare il perchè abbia reso pubblico, e scaricabile, quei pochi kappa di codice.
Crescita controllata. Ogni grande software ha iniziato ad emettere i primi [...]]]></description>
			<content:encoded><![CDATA[<p>E&#8217; di qualche giorno fa il rilascio della prima versione (in realtà molto beta) di <a href="http://petr.illodavi.de/ipampics">iPampics</a>, il piccolo progetto di photo gallery scritto in PHP.<br />
<a href="http://petr.illodavi.de/2008/06/limon-azucar-cafe/"> Come anticipato</a>, voglio spendere 5 minuti per spiegare il perchè abbia reso pubblico, e scaricabile, quei pochi kappa di codice.</p>
<p><strong>Crescita controllata.</strong> Ogni grande software ha iniziato ad emettere i primi vagiti sotto forma di piccola applicazione ancora non ben sviluppata. Rilasciare periodicamente nuovi aggiornamenti e funzionalità del software aiuta a studiarne bene l&#8217;architettura, focalizzando sulle features che si vogliono prioritarizzare; si tenderà quindi a sviluppare step by step, ma con una visione chiara di quali sono gli orizzonti che si vogliono raggiungere.</p>
<p><strong>Esercizio di stile.</strong> C&#8217;è una bella differenza tra un software funzionante ed uno fruibile. iPampics, per esempio, era funzionante già diverso tempo prima del rilascio; il pensiero che però il tuo software possa davvero finire in mano a qualcun altro, ti porta a rigiudicare le scelte effettuate, dall&#8217;architettura allo stile di coding. E poi, la documentazione, importantissima: i vari Readme per gli utenti, e i commenti al codice, magari utilizzando doxygen, per gli eventuali sviluppatori. Con tutto vantaggio non solo loro, ma anche nostro.</p>
<p><strong>Fonte di stimoli.</strong> E se qualcuno finisse davvero per utilizzare il nostro software? E ci arrivassero feedback, idee, critiche, consigli? Non c&#8217;è dubbio, ne trarremmo sicuramente giovamento. Saremmo spronati a migliorare quello che già avremo fatto, con l&#8217;effetto collatterale di migliorare noi stessi come professionisti. In fondo, rendere pubblicamente visibile qualcosa scritto di proprio pugno, in ogni sua forma, è un modo per mostrarsi, aprirsi al confronto e, con la giusta dose di umiltà, arrivare a capire dove si sbaglia. E ho menzionato le possibili collaborazioni che potrebbero nascere?</p>
<p>Rimangono comunque delle questioni poco chiare che devo ancora approfondire. Come, per esempio: con <a href="http://it.wikipedia.org/wiki/Comparazione_di_licenze_libere">quale licenza</a> pubblicare il mio software?</p>
]]></content:encoded>
			<wfw:commentRss>http://petr.illodavi.de/2008/06/perche-rendere-pubblico-il-proprio-codice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
