<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2italianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>.::  Maurizio Pelizzone ::.</title>
	
	<link>http://maurizio.mavida.com</link>
	<description>#WordPress Lover</description>
	<lastBuildDate>Wed, 15 May 2013 18:14:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6-beta2-24210</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/mauriziopelizzone" /><feedburner:info uri="mauriziopelizzone" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>45.061456</geo:lat><geo:long>7.933414</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>mauriziopelizzone</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>“mysql has gone away” durante importazione</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/z0PlAyJ8BFE/</link>
		<comments>http://maurizio.mavida.com/2013/01/09/mysql-has-gone-away-durante-importazione/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 21:14:05 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[max_allowed_packet]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql has gone away]]></category>
		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4286</guid>
		<description><![CDATA[Da pochi giorni ho cambiato notebook e un pezzo alla volta sto migrando tutto sul nuovo sistema. Tra le tante cose da portare avevo anche i database dei progetti dei quali ho fatto sviluppo in locale. Ho deciso di esportarli tutti con un&#8217;unico dump e fin qui tutto bene (circa 1gb di dati): mysqldump -u [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Da pochi giorni ho cambiato notebook e un pezzo alla volta sto migrando tutto sul nuovo sistema.<br />
Tra le tante cose da portare avevo anche i database dei progetti dei quali ho fatto sviluppo in locale.</p>
<p>Ho deciso di esportarli tutti con un&#8217;unico dump e fin qui tutto bene (circa 1gb di dati):<br />
<code>mysqldump -u root -p --all-databases > alldb.sql </code></p>
<p>Trasferisco da un macchina all&#8217;altra e quando provo ad importarli ricevo un bellissimo: <strong>mysql has gone away</strong>.</p>
<p><img src="http://static.mavidacdn.in/files/2013/01/mysql-has-gone-away.gif" alt="mysql-has-gone-away" width="480" height="270" class="alignnone size-full wp-image-4288" /></p>
<p>Ricordo che in passato avevo avuto un problema simile che avevo risolto modificando il timeout.<br />
Breve ricerca su google e aggiungo queste 3 righe nel file di configurazione impostando i valori ben oltre i valori di default.</p>
<p><code><br />
wait_timeout = 128800<br />
connect_timeout = 120<br />
interactive_timeout = 128800<br />
</code></p>
<p>Il risultato non cambia: <strong>mysql has gone away</strong>.<br />
Aumento ancora ma nulla&#8230;</p>
<p>Prendo in considerazione di esportare i database uno alla volta ma sono più di 50 e non ne ho voglia&#8230;</p>
<p>Ricontrollo l&#8217;errore e vedo che si ferma sempre alla stessa riga.<br />
Apro il dump e vado a vedere: si tratta di una INSERT multipla molto (molto) lunga.</p>
<p>Scorro le altre variabili presenti nel file di configurazione ed ecco davanti a me la causa del problema:<br />
<code>max_allowed_packet = 1M</code></p>
<p>Questa variabile globale imposta la dimensione massima dei pacchetti e nel mio caso era troppo piccola per quella query estramamente grossa.<br />
La porto da 1 a 5M, riavvio il servizio e lancio l&#8217;importazione che questa volta arriva al fondo senza problemi.</p>
<p>La prossima votla spero di ricordami di aver scritto qui la soluzione&#8230;</p>
<p>Illustrazione di <a href="http://elenatriolo.blogspot.it/2011/06/scleri-di-una-studentessa-di-storia.html">Elena Triolo </a></p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2013/01/09/mysql-has-gone-away-durante-importazione/">&#8220;mysql has gone away&#8221; durante importazione</a> was first posted on January 9, 2013 at 10:14 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=z0PlAyJ8BFE:Dj1FqAlVq8s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=z0PlAyJ8BFE:Dj1FqAlVq8s:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/z0PlAyJ8BFE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2013/01/09/mysql-has-gone-away-durante-importazione/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2013/01/09/mysql-has-gone-away-durante-importazione/</feedburner:origLink></item>
		<item>
		<title>Cose da approfondire per il 2013</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/u3LdAbTOExc/</link>
		<comments>http://maurizio.mavida.com/2013/01/02/cose-da-approfondire-per-il-2013/#comments</comments>
		<pubDate>Wed, 02 Jan 2013 11:06:14 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[segnalazioni]]></category>
		<category><![CDATA[sticky]]></category>
		<category><![CDATA[ace-editor]]></category>
		<category><![CDATA[backbones.js]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[chosen]]></category>
		<category><![CDATA[composer]]></category>
		<category><![CDATA[d3]]></category>
		<category><![CDATA[gantt]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[under]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4274</guid>
		<description><![CDATA[&#160; &#160; Buon 2013 a tutti&#8230; Sulla traccia di questo post faccio anche io una piccola (e velocissima) lista delle cose che in questo 2012 ho iniziato ad usare (alcune in maniera molto superficiale) ma che mi piacerebbe approfondire nei prossimi mesi ed usare nel maggior numero di progetti. Symfony Di questo framework se ne [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Buon 2013 a tutti&#8230;</p>
<p>Sulla traccia di questo <a href="http://net.tutsplus.com/articles/general/whats-hot-in-2013-our-picks/">post</a> faccio anche io una piccola (e velocissima) lista delle cose che in questo 2012 ho iniziato ad usare (alcune in maniera molto superficiale) ma che mi piacerebbe approfondire nei prossimi mesi ed usare nel maggior numero di progetti.</p>
<ol>
<li><a href="http://symfony.com/">Symfony</a><br />
Di questo framework se ne è parlato tanto ed anche se ne sono nati altri forse altrattando validi per quello che mi riguarda è il punto di riferimento. Con alcune delle sue librerie ho già avuto modo di <a href="http://www.slideshare.net/miziomon/use-symfony2-components-inside-wordpress">approfondire</a> ma non ho ancora affrontato progetti complessi.</li>
<li><a href="http://getcomposer.org/">Composer</a> e <a href="https://github.com/">GitHub</a><br />
In questo caso il proposto e di rilasciare alcuni progettini relativi a <strong>WordPress</strong> su <strong>GitHub</strong> usando <strong>Composer</strong> per le dipendenze aggiungendo un po&#8217; di documentazione per renderli usabili anche da altri.</li>
<li><a href="http://twitter.github.com/bootstrap/">Bootstap</a><br />
Tra i <em>framework</em> responsivi ho scelto questo. Usato già per qualche sito vorrei renderlo uno standard in tutti i futuri progetti.</li>
<li><a href="http://nodejs.org/">NodeJs</a><br />
Questa invece è una di quelle cose che vorrei provare ad usare ma non è ancora capitato il progetto giusto.</li>
</ol>
<p>Oltre a questi grossi nomi ci sono anche alune librerie Javascipt di cui da tempo ho salvato il link tra i miei segnalibri (e di cui in parte <a href="http://maurizio.mavida.com/2012/06/07/3-librerie-jsjquery-da-conoscere/">vi avevo già scritto</a>) ma  che sono rimaste tra l&#8217;elenco delle &#8220;cose interessanti da vedere&#8221;</p>
<ol>
<li><a href="http://backbonejs.org/">Backbonejs</a> Una sorta di MVC per Js</li>
<li><a href="http://underscorejs.org/">Underscorejs</a> Una libreria di supporto a <strong>Backbone</strong> e Jquery</li>
<li><a href="http://harvesthq.github.com/chosen/ ">Chosen</a> un piccola libreiria per rednere le select più carine (di cui vi lascio anche il link per un&#8217;utile implementazione con l&#8217;admin di WordPress)</li>
<li><a href="http://d3js.org/">D3</a> Un strumento per generare grafici (anche se detto in questo modo è quasi riduttivo)</li>
<li><a href="http://ace.ajax.org/">Ace Editor</a> si tratta dell&#8217;editor usato da <strong>Github</strong> per le gist. Fa Syntax highlighting, indentazione automatica del codice, gestisce il drag and drop ed un sacco di altre cose.</li>
<li><a href="http://taitems.github.com/jQuery.Gantt/">jQuery Gantt</a> questo invece vi può servire se avete bisogno di generare dei Gantt.</li>
</ol>
<p>Come sempre se avete progetti interessanti da suggerire e segnarare siete i benvenuti.</p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2013/01/02/cose-da-approfondire-per-il-2013/">Cose da approfondire per il 2013</a> was first posted on January 2, 2013 at 12:06 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=u3LdAbTOExc:cmW2pIbwHV4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=u3LdAbTOExc:cmW2pIbwHV4:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/u3LdAbTOExc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2013/01/02/cose-da-approfondire-per-il-2013/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2013/01/02/cose-da-approfondire-per-il-2013/</feedburner:origLink></item>
		<item>
		<title>WordPress Hardening [wordcamp bologna 2012]</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/scW5UQtdkP0/</link>
		<comments>http://maurizio.mavida.com/2012/11/26/wordpress-hardening/#comments</comments>
		<pubDate>Mon, 26 Nov 2012 10:43:08 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[hardening]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[wordcamp]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4240</guid>
		<description><![CDATA[E per chi se lo è perso ecco le slide di sabato scorso al WordCamp Bologa dove si è parlato di WordPress e sicurezza. WordPress Hardening from Maurizio Pelizzone In breve si tratta di qualche semplice spunto per rendere più difficile l&#8217;utilizzo di un qualsiasi exploit che è possibile mettere in pratica senza l&#8217;installazione di [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>E per chi se lo è perso ecco le slide di sabato scorso al <a href="http://2012.bologna.wordcamp.org/">WordCamp Bologa</a> dove si è parlato di <strong>WordPress</strong> e <strong>sicurezza.</strong></p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/15347278" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen> </iframe>
<div style="margin-bottom:5px"> <strong> <a href="http://www.slideshare.net/miziomon/word-press-hardening-v3" title="WordPress Hardening" target="_blank">WordPress Hardening</a> </strong> from <strong><a href="http://www.slideshare.net/miziomon" target="_blank">Maurizio Pelizzone</a></strong> </div>
<p>In breve si tratta di qualche semplice spunto per rendere più difficile l&#8217;utilizzo di un qualsiasi exploit che è possibile mettere in pratica senza l&#8217;installazione di plugins.<br />
Questa è una versione aggiornata e migliorata rispetto a quella presentata il giugno scorso.</p>
<p>&#8230; e se le slide non vi bastano prossimamente saranno anche pubblicati i video dei singoli interventi.</p>
<p><strong>update</strong>: <a href="https://gist.github.com/3003290">qui il link per scaricare</a> il file .htaccess di cui parlo nelle slide</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/11/26/wordpress-hardening/">WordPress Hardening [wordcamp bologna 2012]</a> was first posted on November 26, 2012 at 11:43 am.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=scW5UQtdkP0:VScnpWbaKy0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=scW5UQtdkP0:VScnpWbaKy0:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/scW5UQtdkP0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/11/26/wordpress-hardening/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/11/26/wordpress-hardening/</feedburner:origLink></item>
		<item>
		<title>Settembre 2012</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/jRMvNBWJgvg/</link>
		<comments>http://maurizio.mavida.com/2012/09/07/settembre-2012/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 15:53:17 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[pensieri ... e parole]]></category>
		<category><![CDATA[segnalazioni]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[SMWtorino]]></category>
		<category><![CDATA[symfonyday]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4167</guid>
		<description><![CDATA[Ci siamo. Le vacanze sono ormai solo un ricordo e si ricomincia con la solita routine. Che poi Settembre è un mese particolare. Come dicono altri è un po&#8217; capodanno. Ora, giusto per lastricare un po&#8217; le strade dell&#8217;inferno, parliamo dei &#8220;buoni propositi&#8220;. Ci sono un paio di progetti come la pubblicazione di qualche template [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Ci siamo. Le vacanze sono ormai solo un ricordo e si ricomincia con la solita routine.</p>
<p>Che poi <strong>Settembre</strong> è un mese particolare. Come dicono altri è un po&#8217; <a href="http://www.axellweb.com/capodanno/">capodanno</a>.</p>
<p>Ora, giusto per lastricare un po&#8217; le strade dell&#8217;inferno, parliamo dei &#8220;<em>buoni propositi</em>&#8220;.</p>
<p><img class="alignnone size-full wp-image-4177" title="positano-estate-2012" src="http://static.mavidacdn.in/files/2012/09/positano-estate-2012.jpg" alt="" width="480" height="300" /></p>
<p>Ci sono un paio di progetti come la pubblicazione di qualche template <strong>WordPress</strong> su <strong>ThemeForest</strong> che spero di concretizzare entro l&#8217;anno, ci sono alcune importanti collaborazioni che sono iniziate e che spero diventino più solide e ci sono un po&#8217; di lavori da chiudere che sono rimasti appesi da ormai troppe settimane.</p>
<p>Nel breve periodo ho anche due belle occasioni di incontro:</p>
<p>La prima è durante la settimana della <strong>Social Media Week</strong>  dove il 25, 26 e 27 Settembre sono tra i relatori di questo talk: <a href="http://socialmediaweek.org/blog/event/wordpress-soluzioni-e-idee-per-startup-e-piccolemedia-imprese-3/">WordPess: Soluzioni e Idee per Startup e piccole/media imprese</a></p>
<p>La seconda, un po&#8217; più tecnica, sempre a Torino in occasione del <strong>Symfonyday (5 ottobre)</strong>: <a title="" href="http://www.symfonyday.it/#">Come usare i componenti di Symfony2 dentro WordPress e vivere felici</a></p>
<p>Bene ora sapete tutto. E poi ricordatevi anche che a fine mese è il mio compleanno.</p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/09/07/settembre-2012/">Settembre 2012</a> was first posted on September 7, 2012 at 4:53 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=jRMvNBWJgvg:pUEmTQUDCRU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=jRMvNBWJgvg:pUEmTQUDCRU:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/jRMvNBWJgvg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/09/07/settembre-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/09/07/settembre-2012/</feedburner:origLink></item>
		<item>
		<title>3 Librerie js/jquery da conoscere</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/8unV8nRYJbw/</link>
		<comments>http://maurizio.mavida.com/2012/06/07/3-librerie-jsjquery-da-conoscere/#comments</comments>
		<pubDate>Thu, 07 Jun 2012 09:14:03 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[segnalazioni]]></category>
		<category><![CDATA[backbones.js]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquerypp]]></category>
		<category><![CDATA[undescorejs]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4134</guid>
		<description><![CDATA[Ho messo da parte questi 3 link con l&#8217;intento di guardarli in un secondo momento con più attenzione. Ovviamente non sono ancora riuscito a farlo ma voglio almeno condividerli facendo almeno un copie ed incolla della loro descrizione. Qualcuno le ha già usate? &#160; jQuery++I am an MIT licensed collection of extremely useful DOM helpers [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Ho messo da parte questi 3 link con l&#8217;intento di guardarli in un secondo momento con più attenzione.<br />
Ovviamente non sono ancora riuscito a farlo ma voglio almeno condividerli facendo almeno un copie ed incolla della loro descrizione.</p>
<p>Qualcuno le ha già usate?</p>
<p>&nbsp;</p>
<ul>
<li><strong>jQuery++</strong>I am an MIT licensed collection of extremely useful DOM helpers and special events for jQuery 1.7 and later. I’m not a UI project like jQuery UI or jQuery Tools. Instead, I’m all about providing low-level utilities for things that jQuery doesn’t support. If Underscore is jQuery’s functional-programming tie, I am jQuery’s bald-spot covering toupee.<a href="http://jquerypp.com">http://jquerypp.com</a></li>
<li><strong>Underscore.js</strong>Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It&#8217;s the tie to go along with jQuery&#8217;s tux, and Backbone.js&#8217;s suspenders.Underscore provides 60-odd functions that support both the usual functional suspects: map, select, invoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on. It delegates to built-in functions, if present, so modern browsers will use the native implementations of forEach, map, reduce, filter, every, some and indexOf.
<p><a href="http://underscorejs.org/">http://underscorejs.org/</a></li>
<li><strong>Backbone.js</strong>Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface<a href="http://backbonejs.org">http://backbonejs.org</a></li>
</ul>
<p>Image credits: <a href="http://www.flickr.com/photos/annais/353849027/">annais</a></p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/06/07/3-librerie-jsjquery-da-conoscere/">3 Librerie js/jquery da conoscere</a> was first posted on June 7, 2012 at 10:14 am.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=8unV8nRYJbw:fo7brO5TSfs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=8unV8nRYJbw:fo7brO5TSfs:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/8unV8nRYJbw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/06/07/3-librerie-jsjquery-da-conoscere/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/06/07/3-librerie-jsjquery-da-conoscere/</feedburner:origLink></item>
		<item>
		<title>CloudFlare: una CDN facile (e gratis)</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/1pzyQ6yWevc/</link>
		<comments>http://maurizio.mavida.com/2012/04/25/cloudflare-una-cdn-facile-e-gratis/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 14:13:35 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[post_thumbnail_html]]></category>
		<category><![CDATA[reverse proxy]]></category>
		<category><![CDATA[script_loader_src]]></category>
		<category><![CDATA[the_content]]></category>
		<category><![CDATA[widget_text]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4060</guid>
		<description><![CDATA[Argomento un po&#8217; complesso per cui preferisco partire con la definizione di CDN: Le Content Delivery Network (CDN, Rete per la consegna di contenuti) &#8230; sono un sistema di computer collegati in rete attraverso Internet che collaborano in maniera trasparente, sotto forma di sistema distribuito, per distribuire contenuti agli utenti finali. &#8230; L&#8217;obiettivo di una [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Argomento un po&#8217; complesso per cui preferisco partire con la definizione di <a href="http://maurizio.mavida.com/">CDN</a>:</p>
<p>Le <em>Content Delivery Network</em> (<strong>CDN</strong>, Rete per la consegna di contenuti) &#8230; sono un sistema di computer collegati in rete attraverso Internet che collaborano in maniera trasparente, sotto forma di sistema distribuito, per distribuire contenuti agli utenti finali.<br />
&#8230;<br />
L&#8217;obiettivo di una <strong>CDN</strong> è di instradare una richiesta di contenuto sul nodo che viene individuato come ottimale. Se ottimizzate per le prestazioni, il nodo ottimale è quello che può soddisfare la richiesta nel minor tempo possibile: si può determinare per esempio scegliendo quello geograficamente o topograficamente (nel contesto di rete, minor numero di hops o minor ping) più vicino alla locazione del richiedente, oppure quello con un minor carico di lavoro (in inglese, load average).</p>
<p><a href="http://500px.com/photo/5362490"><img class="alignnone size-large wp-image-4071" title="wordpress-cloudflare" src="http://static.mavidacdn.in/files/2012/04/wordpress-cloudflare.jpg" alt="" /></a></p>
<p>Detto in modo più concreto si tratta di un sistema per ottimizzare e risparmiare carico server facendo in modo che alcuni contenuti (es. le immagini e/o i file statici come js e css) vengano erogati da server differenti ottimizzando la distribuzione a livello geografico in modo che sia il server più vicino a noi ad occuparsi del trasferimento.</p>
<p>Mi sono chiesto più volte in quale modo la nostra infrastuttura potesse beneficiare di questo tecnologia ma guardando le specifiche di <a href="http://www.akamai.com/">Akamai</a> e/o <a href="http://aws.amazon.com/cloudfront/">Amazon</a> (che sono forse tra le più importanti realtà in questo settore) mi sono reso conto che i prezzi per la gestione di piccoli siti sono abbastanza proibitivi.</p>
<p>Poi, come sempre succede in queste cose, &#8220;<em><a href="http://it.wikipedia.org/wiki/Serendipità">la figlia del contadino</a></em>&#8221; mi ha parlato di <strong><a href="https://www.cloudflare.com/plans">CloudFlare</a></strong> e del suo piano gratuito.</p>
<p>Ho deciso quindi di provare l&#8217;integrazione su questa pagine limitando però l&#8217;uso alle immagini e ai file javascript e css.<br />
Questo, in breve, quello che ho fatto.</p>
<ol>
<li>Comprato un nuovo dominio &#8220;<strong>mavidacdn.in</strong>&#8221; su <a href="http://www.whois.com/">whois.com</a> (in offerti in questi giorni a 3.88 dollari).</li>
<li>Ho girato i name server sui server di <strong>Cloudflare</strong></li>
<li>Impostato un nuovo sottominio <strong>static.mavidacdn.in</strong> in modo che punti sul mio ip</li>
<li>Configurato Apache per indirizzare correttamente. (sia maurizio.mavida.com che static puntano adesso allo stesso sito)</li>
<li>Scritto un microplugin per fare in modo che l&#8217;indirizzo delle immagini pubblicare su queste pagine punti sul sottodominio CDN.</li>
<li>Modificato nella pagina nelle impostazioni dei media il &#8220;Percorso URL completa ai file&#8221; con il sottodominio configurato su <strong>CloudFlare</strong> (http://static.mavidacdn.in/wp-content/uploads)</li>
</ol>
<p>In questo modo <strong>CloudFlare</strong> oltre a fare da <strong>CDN</strong> svolge anche un lavoro come <strong>Reverse Proxy</strong> facendo <strong>cache</strong> dei contenuti. Quando viene chiesta un&#8217;immagine, o un file javascript/css <strong>CloudFlare</strong> verifica se è già nella sua cache e solo nel caso non lo sia la chiede al mio server. I benefici nel mio caso sono molto limitati in quanto il traffico generato è relativamente piccolo ma in situazioni più complesse una soluzione come questa potrebbe ridurre notevolemente il traffico.</p>
<p>Questo è il risparmio di banda (e di richieste) ottenuto in 5 giorni di utilizzo:</p>
<p><img class="alignnone size-full wp-image-4076" title="cloudflare-stas" src="http://static.mavidacdn.in/files/2012/04/cloudflare-stas.jpg" alt="" width="480" height="98" /></p>
<p>Adesso qualche dettaglio tecnico:<br />
Qui sotto potete vedere il modo in cui vado ad effettuare la <em>sostituzione dei link alle immagini</em> che viene usata su filtri: &#8216;the_content&#8217;, &#8216;post_thumbnail_html&#8217; e &#8216;widget_text&#8217;.</p>
<pre>

function CloudFlareImageReplace ( $content ) {

$pattern="/(" .$this-&gt;blog_url . ")(\/wp-content\/)(.*)(png|gif|jpg)/";
$replacement = $this-&gt;cf_cdnurl. "$2$3$4";

return preg_replace($pattern, $replacement,$content );

}

</pre>
<p>Mentre questa quella per js e css che viene attiva dal filtro su &#8220;script_loader_src&#8221;.</p>
<pre>
function CloudFlareScriptReplace ( $src ) {

$pattern="/(" . $this->blog_url . ")(\/wp-content\/)(.*)(js|css)/";
$replacement = $this->CloudFlareUrl . "$2$3$4";

// remove Query Strings From Static Resources
$src_parts = explode('?', $src);
return preg_replace($pattern, $replacement, $src_parts[0] );

}
</pre>
<p>Su <strong>GitHub</strong> potete trovare il sorgente <a href="https://gist.github.com/2437025">versione completa</a> (ancora in versione beta) ma se volte installarlo potete usare quella che ho pubblicato sul codex: <a href="http://wordpress.org/extend/plugins/cloudflare-url-replacement/">http://wordpress.org/extend/plugins/cloudflare-url-replacement/</a>.</p>
<p>Anche in quato caso sono graditi consigli e suggerimenti.</p>
<p>&#8212;<br />
image credits: <a href="http://500px.com/photo/5362490">Derek Heisler</a></p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/04/25/cloudflare-una-cdn-facile-e-gratis/">CloudFlare: una CDN facile (e gratis)</a> was first posted on April 25, 2012 at 3:13 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=1pzyQ6yWevc:Wf3rnyBh8Rc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=1pzyQ6yWevc:Wf3rnyBh8Rc:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/1pzyQ6yWevc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/04/25/cloudflare-una-cdn-facile-e-gratis/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/04/25/cloudflare-una-cdn-facile-e-gratis/</feedburner:origLink></item>
		<item>
		<title>WordPress: qualità e quantità</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/Ilgv44_A0WY/</link>
		<comments>http://maurizio.mavida.com/2012/04/20/wordpress-qualita-e-quantita/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 13:01:52 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[pensieri ... e parole]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[source code]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=3246</guid>
		<description><![CDATA[[polemica on] Da qualche giorno sto seguendo le conversationi su twitter con il tag #wordpress e sinceramente mi aspettavo un po&#8217; più di qualità. Moltissime segnalazioni portano ad articoli veramente banali. E non parlo solo delle migliaia di raccolte plugins che titolano robe tipo &#8220;I migliori plugin per &#8230;&#8221; (che spesso portano a roba vecchia [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>[polemica on]<br />
Da qualche giorno sto seguendo le conversationi su twitter con il tag <a href="https://twitter.com/#!/search/%23wordpress">#wordpress</a> e sinceramente mi aspettavo un po&#8217; più di qualità.</p>
<p>Moltissime segnalazioni portano ad articoli veramente banali. E non parlo solo delle migliaia di raccolte plugins che titolano robe tipo &#8220;<strong><em>I migliori plugin per &#8230;</em></strong>&#8221; (che spesso portano a roba vecchia e superata), ma in generale la comunità è povera di contenuti di qualità.<br />
[polemica off]</p>
<p>Ovviamente mi rendo conto che questo non è un problema che possa essere riferito solo <strong>WordPress</strong> ma che affligge un po&#8217; tutta la rete.</p>
<p>Nonostante questo vedere decine di articoli &#8220;fotocopia&#8221; dopo <a href="http://wordpress.org/news/2012/04/wordpress-3-4-beta-2/">l&#8217;annuncio delle beta2</a> mi ha fatto un po&#8217; tristezza (senza contare il fatto che la fonte nella maggior parte dei casi non era nemmeno citata).</p>
<p>&nbsp;</p>
<p>La selezione di siti che seguo tramite rss va leggermente meglio anche se il numero di articoli e/o snippets interessanti è un po&#8217; in calo.<br />
Ovviamente in tutto questo ci sono le eccezioni e sia su questo sito che sul mio <strong><a href="https://twitter.com/#!/miziomon">twitter</a></strong> cerco di segnalare quello che a mio giudizio può essere interessante da condividere.</p>
<p>Pochi comunque rimangono gli articoli tecnici di approfondimento e come dice <strong><a href="http://scribu.net/wordpress/how-to-become-a-wordpress-guru.html">scribu</a></strong> per diventare &#8220;guru&#8221; bisogna imparare a leggere il sorgente del core.</p>
<p>In generale è curioso vedere come a questo appiattimento dei contenuti si affianchi invece una <em><a href="http://royal.pingdom.com/2012/04/11/wordpress-completely-dominates-top-100-blogs/">continua crescita</a></em> della popolarità ed utilizzo in ambito business.<br />
Forse anche in questo campo vale la regole che dice &#8220;l&#8217;importante è parlarne&#8221;&#8230;</p>
<p>&#8212;&#8212;&#8212;&#8212;<br />
Image from: <a href="http://500px.com/photo/6588623">Garrett Meyers</a></p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/04/20/wordpress-qualita-e-quantita/">WordPress: qualità e quantità</a> was first posted on April 20, 2012 at 2:01 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=Ilgv44_A0WY:4Z0yf3vETpE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=Ilgv44_A0WY:4Z0yf3vETpE:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/Ilgv44_A0WY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/04/20/wordpress-qualita-e-quantita/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/04/20/wordpress-qualita-e-quantita/</feedburner:origLink></item>
		<item>
		<title>Estendere il server XML-RPC di WordPress</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/Es0zxSTCbFk/</link>
		<comments>http://maurizio.mavida.com/2012/04/19/estendere-il-server-xml-rpc-di-wordpress/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 21:14:13 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[webservice]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[xml-rpc]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=3809</guid>
		<description><![CDATA[Leggere, scrivere e/o modificare i contenuti su WordPress non sempre può essere fatto da un&#8217;interfaccia di amministrazione (sia questa web, mobile o app). Ci possono essere esigenze in cui è necessario automatizzare alcuni processi appoggiandosi a strumenti esterni. WordPress ci viene incontro con &#8220;una cosa&#8221; nota come XML-RPC. &#160; In pratica si tratta di un [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Leggere, scrivere e/o modificare i contenuti su <strong>WordPress</strong> non sempre può essere fatto da un&#8217;interfaccia di amministrazione (sia questa web, mobile o app). Ci possono essere esigenze in cui è necessario automatizzare alcuni processi appoggiandosi a strumenti esterni.</p>
<p><strong>WordPress</strong> ci viene incontro con &#8220;<em>una cosa</em>&#8221; nota come <strong><a href="http://scripting.com/davenet/1998/07/14/xmlRpcForNewbies.html">XML-RPC</a></strong>.</p>
<p>&nbsp;</p>
<p>In pratica si tratta di un componente che ci permette di dialogare secondo un protocollo standard attraverso internet. In questo modo un sito e/o applicazione esterna potrebbe pilotare la nostra installazione facendogli fare qualsiasi cosa.</p>
<p>In realtà &#8220;qualsiasi cosa&#8221; non è ancora prevista ma dalla nuova versione 3.4 ne saranno <a href="http://codex.wordpress.org/XML-RPC_WordPress_API">aggiunte parecchie</a>. Ricordatevi solo di <a href="http://codex.wordpress.org/XML-RPC_Support#Enabling_XML-RPC">abilitarlo</a> che di default è disattivato.</p>
<p>Il titolo di questo articolo però è &#8220;Estendere il server XML-RPC&#8221; non &#8220;Usare il server XML-RPC&#8221; quindi iniziamo a vedere cosa ci dice il codex: <a href="http://codex.wordpress.org/XML-RPC_Extending">XML-RPC Extending</a></p>
<p><em>Like the rest of <strong>WordPress</strong>, the <strong>XML-RPC API</strong> contains numerous hooks to customize or extend its behavior.</em></p>
<p>Nel caso volessimo estendere il servizio XML-RPC attraverso un plugin in grado di restituire gli ultimi post non dovremo quindi fare altro che aggiugnere una roba come questa:</p>
<pre>// aggiungo il fitro
add_filter( 'xmlrpc_methods', 'mycustom_methods');

// dichiaro i nuovi metodi
function mycustom_methods( $methods ) {
    $methods['getlastposts'] = 'get_LastPosts';
    return $methods;   
}

/*
 * restisuisco gli ultimi n. post in formato serializzato
 */
function get_LastPosts( $params ) {

  $args =  $params[0]
  $defaults = array(
	'numberposts' =&gt; 5, 
	'post_type' =&gt; 'post', 	
        'post_status'     =&gt; 'publish' 		
	);

  $args = wp_parse_args( $args, $defaults );			
  $posts = get_posts( $args );

  // restituisco l'oggetto serializzato
  return serialize($posts); 
}</pre>
<p>Questo invece un esempio di come poter usare il vostro &#8220;nuovo&#8221; metodo usando il client offerto dalla <em><a href="http://framework.zend.com/manual/en/zend.xmlrpc.client.html">libreria Zend</a></em></p>
<pre> $client = new Zend_XmlRpc_Client('http://tuosito.com/xmlrpc.php');
 $response = $client-&gt;call('getlastposts');
 $posts = deserialize($response)

 //con passaggio di parametri
 $client = new Zend_XmlRpc_Client('http://tuosito.com/xmlrpc.php');

 $args = array(
	'numberposts' =&gt; 3, 
	'post_type' =&gt; 'page'
	);

 $response = $client-&gt;call('getlastposts' , array( $args));
 $posts = deserialize($response)</pre>
<p>Le cose nella pratica non sono così semplici e potrebbe servire un sistema di autenticazione.<br />
Poi dato che spesso parlo di performance male non farebbe un piccolo sistema di cache.</p>
<p>Ecco quindi una <em>nuova</em> versione di &#8220;get_LastPosts&#8221; che accetta come parametri $blog_id, $username, $password e poi array con gli argomenti necessari a getposts.</p>
<pre>function get_LastPosts( $params ) {

  $blog_id  =  $params[0]
  $username =  $params[1]
  $password =  $params[2]

  $args     =  $params[3]

  $defaults = array(
	'numberposts' =&gt; 5, 
	'post_type' =&gt; 'post', 	
        'post_status'     =&gt; 'publish' 		
	);

  $args = wp_parse_args( $args, $defaults );			
  extract( $args, EXTR_SKIP );

  if ( !$user = $this-&gt;login($username, $password) ) {
     // user o password non validi 
     return false;

  } else {

  // creo una chiave univoca per la cache
  $cache_key = "_xmlrpc_" . $username. md5( $numberposts . $post_type);

  $posts = get_transient( $cache_key );

  if (false === $posts) {
     $posts = get_posts( $args );
     set_transient( $cache_key , $posts, 60*60*4 );
  }

  // restituisco l'oggetto serializzato, compresso, ed in base64
  // per ripristinarlo: unserialize(gzuncompress(base64_decode($posts))); 
  return base64_encode(gzcompress(serialize($posts))); 
 }

}</pre>
<p>Bene, adesso potete fare un po&#8217; di prove e se nel fare copia e incolla ho sbagliato qualche cosa ditemlo che lo correggo.</p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/04/19/estendere-il-server-xml-rpc-di-wordpress/">Estendere il server XML-RPC di WordPress</a> was first posted on April 19, 2012 at 10:14 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=Es0zxSTCbFk:ZvlcqlvwKFA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=Es0zxSTCbFk:ZvlcqlvwKFA:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/Es0zxSTCbFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/04/19/estendere-il-server-xml-rpc-di-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/04/19/estendere-il-server-xml-rpc-di-wordpress/</feedburner:origLink></item>
		<item>
		<title>WordPress: Evitare “brute force” via .htaccess</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/h4msXNMa5rs/</link>
		<comments>http://maurizio.mavida.com/2012/04/18/wordpress-evitare-brute-force-e-nasconde-il-login-via-htaccess/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 16:06:18 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[better security]]></category>
		<category><![CDATA[hide login]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=4006</guid>
		<description><![CDATA[Sempre più spesso dando un&#8217;occhiata ai log di sistema vedo attacchi &#8220;brute force&#8221; sulle pagina di login standard (wp-login.php) di WordPress. Su alcuni sito sono arrivato ad avere centinaia di tentativi al giorno ma fortunatamente avendo password alfanumeriche da 12 caratteri e non usando l&#8217;utente &#8220;admin&#8221; di default non mi sono mai preoccupato più di [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Sempre più spesso dando un&#8217;occhiata ai log di sistema vedo attacchi &#8220;<strong><a href="http://it.wikipedia.org/wiki/Metodo_forza_bruta">brute force</a></strong>&#8221; sulle pagina di <strong>login</strong> standard (<em>wp-login.php</em>) di <strong>WordPress</strong>.<br />
Su alcuni sito sono arrivato ad avere centinaia di tentativi al giorno ma fortunatamente avendo <strong>password alfanumeriche da 12 caratteri</strong> e <em>non usando</em> l&#8217;utente &#8220;admin&#8221; di default non mi sono mai preoccupato più di tanto.</p>
<p>&nbsp;</p>
<p>Nel tempo però mi sono reso conto di <strong>due grossi problemi</strong> problemi:</p>
<ol>
<li><strong>Banda e sovraccarico del server</strong>: in questo caso e stato semplice intervenire e plugin come <a href="http://wordpress.org/extend/plugins/simple-login-lockdown/screenshots/"><strong>Simple Login Lockdow</strong>n</a> hanno reso la cosa molto semplice. In pratica dopo un numero configurabile di tentativi falliti, per un periodo di tempo altrettanto configurabile, viene bloccato l&#8217;IP impedendo l&#8217;accesso alla pagina.<br />
Io lo avevo configurato in modo che dopo 3 tentativi venisse bannato per 4 ore.</li>
<li><strong>Utenti Utonti</strong>: Questo è stato il problema più grave. Dato che nella maggior parte dei casi non sono io l&#8217;utilizzatore del sito ma il mio lavoro termina creado le credenziali per gli utenti che andranno ad operare, succede che per alcuni una password alfanumerica sia troppo complicata. Ecco quindi che di loro iniziativa la modificano con delle robe tipo &#8220;la data di nascita del figlio&#8221; perchè così <strong><em>è più facile da ricordare</em></strong>. La soluzione a questa &#8220;<strong>esigenza imprescindibile</strong>&#8221; l&#8217;ho trovata modificando e nascondendo l&#8217;url della pagina di login.<br />
Inizialmente ho usato &#8220;<strong><a href="http://wordpress.org/extend/plugins/hide-login/">hide login</a></strong>&#8221; e successivamente anche &#8220;<strong><a href="http://wordpress.org/extend/plugins/better-wp-security/">better security</a></strong>&#8221; ma alla fine ho preferito preparare uno snippet (che trovatre qui sotto) da mettere manualmente nel file <strong>.htaccess</strong> evitando in questo modo che il plugin possa essere disattivato.</li>
</ol>
<p>Se volte implementarlo nel nostra installazzione vi lascio solo alcune avvertenze in quanto prima di usarlo vanno modificate alcune variabili che sono dipendenti dal vostra configurazione.</p>
<p>[key] = chiave di controllo per il login &#8211; es. &#8220;0agw7&#8243; (4 sostituzioni)<br />
[nomesito] = l&#8217;url del vostro sito &#8211; es. &#8220;http://maurizio.mavida.com (6 sostituzioni)<br />
[login] = nuovo url per la pagina di login &#8211; es. &#8220;custom-login&#8221; (2 sostituzioni)<br />
[admin] = nuovo url per la pagina di admin &#8211; es. &#8220;custom-admin&#8221; (2 sostituzioni)</p>
<p>Attenzione: Prima di metterlo in produzione vi consiglio di provarlo localmente <strong>e di fare un backup del vostro precedente .htaccess</strong>. (non mi assumo responsabilità).</p>
<pre># CUSTOM RULES
RewriteEngine On
RewriteBase /
RewriteRule ^[login] wp-login.php?hide_in_key=[key]&amp;redirect_to=/wp-admin/ [R,L]
RewriteRule ^[admin] wp-admin/?hide_admin_key=[key] [R,L]

RewriteCond %{HTTP_REFERER} !^[nomesito]/wp-admin
RewriteCond %{HTTP_REFERER} !^[nomesito]/wp-login\.php
RewriteCond %{HTTP_REFERER} !^[nomesito]/[login]
RewriteCond %{HTTP_REFERER} !^[nomesito]/[admin]
RewriteCond %{QUERY_STRING} !^hide_in_key=[key]
RewriteCond %{QUERY_STRING} !^hide_admin_key=[key]
RewriteRule ^wp-login\.php [nomesito] [R,L]

RewriteCond %{QUERY_STRING} ^loggedout=true 
RewriteRule ^wp-login\.php [nomesito] [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END CUSTOM RULES</pre>
<p>Rimango comunque disponibile nel caso doveste avere problemi o vogliate segnalarmi come migliorarlo.</p>
<p>&#8212;<br />
Image credits: <a href="http://500px.com/photo/3901251">shintaro s</a></p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/04/18/wordpress-evitare-brute-force-e-nasconde-il-login-via-htaccess/">WordPress: Evitare &#8220;brute force&#8221; via .htaccess</a> was first posted on April 18, 2012 at 5:06 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=h4msXNMa5rs:gjLXX6SK-hE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=h4msXNMa5rs:gjLXX6SK-hE:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/h4msXNMa5rs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/04/18/wordpress-evitare-brute-force-e-nasconde-il-login-via-htaccess/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/04/18/wordpress-evitare-brute-force-e-nasconde-il-login-via-htaccess/</feedburner:origLink></item>
		<item>
		<title>WordPress in numeri – aprile 2012</title>
		<link>http://feedproxy.google.com/~r/mauriziopelizzone/~3/nsjluaIiQvY/</link>
		<comments>http://maurizio.mavida.com/2012/04/16/wordpress-in-numeri-aprile-2012/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 20:12:21 +0000</pubDate>
		<dc:creator>Maurizio Pelizzone</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[infographic]]></category>
		<category><![CDATA[statistiche]]></category>
		<category><![CDATA[yoast]]></category>

		<guid isPermaLink="false">http://maurizio.mavida.com/?p=3998</guid>
		<description><![CDATA[Yoast ha pubblicato oggi un&#8217;interssante infografica relativa alla diffusione di WordPress ed ai numeri pubblicati qualche giorno da da pingdom. Cita anche un pensiero di Matt Mullenweg dove leggo con piagere che la più grande sfida dei prossimi due anni sarà l&#8217;evolvere della dashboard per essere più veloce e più accessibile (soprattutto per dispositivi touch). [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://yoast.com">Yoast</a> ha pubblicato oggi un&#8217;interssante <strong><a href="http://maurizio.mavida.com/tags/infographic/">infografica</a></strong> relativa alla diffusione di <strong>WordPress</strong> ed ai numeri pubblicati qualche giorno da da <strong><a href="http://royal.pingdom.com/2012/04/11/wordpress-completely-dominates-top-100-blogs/">pingdom</a></strong>.</p>
<p><a href="http://cdn.yoast.com/files/2012/04/wordpress-stats-infographic-yoast-full.jpg"><img src="http://maurizio.mavida.com/files/2012/04/wordpress-stats-infographic-yoast.jpg" alt="" title="wordpress-stats-infographic-yoast" width="480" height="306" class="alignnone size-full wp-image-4000" /></a></p>
<p>Cita anche un pensiero di <a href="http://ma.tt/2012/04/wordpress-and-the-top-100/">Matt Mullenweg</a> dove leggo con piagere che la più grande sfida dei prossimi due anni sarà l&#8217;evolvere della dashboard per essere più veloce e più accessibile (soprattutto per dispositivi touch).</p>
<p>In una delle <a href="http://maurizio.mavida.com/2012/03/21/php-to-start-2012/">mie ultime slide</a>, riferendomi alla <em>diffusione</em> di <strong>WordPress</strong> riportavo:</p>
<ul>
<li>72 mln di installazioni nel mondo (circa 50% wordpress.com)</li>
<li>53.7 % del mercato dei CMS</li>
<li>+ 18,800 plugins (Marzo 2012)</li>
<li>+ 1.500 themes (Marzo 2011)</li>
<li>+ 11 mln di download WordPress 3.3 (dicembre 2012 / marzo 2012)</li>
</ul>
<p><a href="http://royal.pingdom.com/2012/04/11/wordpress-completely-dominates-top-100-blogs/">Questa bellissima infografica</a> completa ed estende qui numeri.</p>
<p>Update:<br />
Trovo anche molto interessante e <strong>significativo</strong> l&#8217;incredibile quantitità di richieste di lavoro &#8220;<strong>WordPress</strong>&#8221; pibblicate su piattaforme come <a href="https://www.odesk.com/trends/WordPress">oDesk</a> e <a href="http://www.freelancer.com/hire/Wordpress">Freelancer</a>.<br />
Se qualcuno le ha già provate sarei curioso di conoscere il suo parere&#8230;</p>
<hr style="border-top:black solid 1px" /><a href="http://maurizio.mavida.com/2012/04/16/wordpress-in-numeri-aprile-2012/">WordPress in numeri &#8211; aprile 2012</a> was first posted on April 16, 2012 at 9:12 pm.<br />©2012 "<a href="http://maurizio.mavida.com">.::  Maurizio Pelizzone ::.</a>". Use of this feed is for personal non-commercial use only. If you are not reading this article in your feed reader, then the site is guilty of copyright infringement. Please contact me at maurizio@mavida.com<br /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=nsjluaIiQvY:1i1saoy4bZY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/mauriziopelizzone?a=nsjluaIiQvY:1i1saoy4bZY:ANkz6nJbUoM"><img src="http://feeds.feedburner.com/~ff/mauriziopelizzone?d=ANkz6nJbUoM" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/mauriziopelizzone/~4/nsjluaIiQvY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://maurizio.mavida.com/2012/04/16/wordpress-in-numeri-aprile-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://maurizio.mavida.com/2012/04/16/wordpress-in-numeri-aprile-2012/</feedburner:origLink></item>
	</channel>
</rss>
