<?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 Salerno&#187; Programmazione</title> <atom:link href="http://www.davidesalerno.net/category/programmazione/feed/" rel="self" type="application/rss+xml" /><link>http://www.davidesalerno.net</link> <description>Se l&#039;Informatica è una fede, Internet è la sua chiesa</description> <lastBuildDate>Sun, 05 Feb 2012 21:54:44 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Fate come vi dico, non fate come faccio</title><link>http://www.davidesalerno.net/2009/04/fate-come-vi-dico-non-fate-come-faccio/</link> <comments>http://www.davidesalerno.net/2009/04/fate-come-vi-dico-non-fate-come-faccio/#comments</comments> <pubDate>Tue, 28 Apr 2009 15:16:21 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Istruzione]]></category> <category><![CDATA[Personale]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Università]]></category> <category><![CDATA[dtd]]></category> <category><![CDATA[java]]></category> <category><![CDATA[jax]]></category> <category><![CDATA[pattern]]></category> <category><![CDATA[schema]]></category> <category><![CDATA[web service]]></category> <category><![CDATA[ws]]></category> <category><![CDATA[xml]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1706</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>Anche se il titolo dell&#8217;articolo è stato legato a doppio filo per anni (se non per decenni o secoli) a questioni etico-religiose in ambito cattolico di poco conto e forse lo è ancora, non voglio neanche lontanamente toccare questo argomento e questa sfera in queste poche righe. L&#8217;articolo si intitola così semplicemente perchè questo celebre detto popolare si addice particolarmente ad alcune vicende personali (anch&#8217;esse di poco conto) che mi sono accadute di recente.</p><p
style="text-align: center;"><a
title="l'amore sacro e l'amor profano di ho visto nina volare, su Flickr" href="http://www.flickr.com/photos/41099823@N00/2907747826/"><img
class="aligncenter" style="margin-top: -10px; margin-bottom: -10px;;  display: block; margin-right: auto; margin-left: auto;" src="http://farm4.static.flickr.com/3015/2907747826_812ce07962.jpg" alt="l'amore sacro e l'amor profano" width="570" height="410" /></a> </p><p
style="text-align:center;margin-top:-20px !important"><small>Crediti foto: <a
href="http://www.flickr.com/photos/41099823@N00/2907747826/">L&#8217;amore sacro e l&#8217;amore profano</a></small></p><p>Nell&#8217;ultimo mese e mezzo ho seguito un corso in Università particolarmente interessante per l&#8217;elevato contenuto tecnologico che lo ha reso estremamente utile ed attuale (strano ma vero&#8230;) su formati molto in voga negli ultimi anni soprattutto in ambito web quali, tanto per citarne uno, l&#8217;<strong>XML</strong> (con <strong>DTD</strong>, <strong>Schema</strong> e <strong>XSLT</strong> annessi e connessi) e alcune sue possibili applicazioni per facilitare lo scambio di informazioni (per lo più in Java con <strong>JAX-P</strong> e <strong>JAX-B</strong>) fino ad arrivare nientemeno che alla progettazione e realizzazione di veri e propri Web Services sia <strong>SOAP</strong> che <strong>REST</strong> (con furtivi accenni a <strong>CORBA</strong>) con <strong>JAX-WS</strong>.</p><p>Lo ammetto: mi ha preso particolarmente, anche perchè in concomitanza con un altro interessantissimo corso sull&#8217;ottimizzazione dei DBMS di cui parlerò magari un&#8217;altra volta, ed è questo uno dei motivi per cui non sono riuscito ad aggiornare più tanto frequentemente queste pagine.</p><p>Se sono arrivato a scrivere queste righe è segno che la situazione non è <em>tutta rosa e fiori</em> come sembrebbe. Il perchè non lo so. Mi verrebbe da dire perchè siamo in Italia anche se non sono sicuro che all&#8217;estero le cose siano diverse.</p><p><strong>Veniamo al nocciolo della questione</strong>. Il corso di cui sopra si occupa fondamentalmente di fornire delle conoscenze avanzate nella programmazione in ambienti distribuiti in quanto è il proseguio di un corso di base su questo genere di programmazione che deve prevedere uno stile ed una mentalità da parte del programmatore (o meglio del progettista) nettamente diversa rispetto alla programmazione classica.</p><p>Le nozioni da spiegare e da apprendere sono così numerose che una prova d&#8217;esame &#8220;classica&#8221; non sarebbe in grado di valutare se lo studente abbia apprese sufficientemente bene i concetti che sono stati spiegati nel corso. Ecco quindi che anche la modalità di esame è tecnologimanente avanzata: il corso infatti ha un sito/portale tutto suo gestito dal professore e dall&#8217;assistente che ogni settimana pubblicano degli Assignments (dei <em>compiti casa</em> si programmazione/progettazione) che gli studenti devono obbligatoriamente fare per superare la prova d&#8217;esame. La consegna va effettuata sul portale del corso che effettua in automatico dei test per verificare la correttezza o meno delle soluzione. La scadenza per la consegna degli Assignments non è però settimanale bensì qualche giorno prima della prova d&#8217;esame &#8220;in aula&#8221; che è orale ed è atta in primis ad accertarsi che i programmi degli Assignments siano stati fatti dallo studente ed in secundis a verificare che lo studente non si sia limitato a mettere assieme unpò di codice scopiazzato dai vari manuali ma abbia realmente capito quello che stava facendo anche teoricamente in modo da poter applicare i principi imparati quanto prima in ambito lavorativo. </p><p>Piccola importantissima postilla: per sostenere la prova d&#8217;esame orale bisogna aver consegnato gli Assignments entro la scadenza stabilita e bisogna che questi abbiamo passato con successo tutti i test effettuati online dal portale (fatto ovviamente in Java e XML, ndr)</p><p><strong>Vi starete chiedendo dov&#8217;è il problema?</strong> Semplice, che dopo aver passato un mese e mezzo a sentir parlare di sicurezza, programmazione robusta, modellazione della soluzione in base al caso peggiore e bla bla bla in prossimità della scadenza della consegna degli Assignments fissata qualche qualche giorno prima dell&#8217;esame e quindi subito dopo la fine del corso, il famigerato portale era irraggiungibile.</p><p><strong>Adesso mi chiedo</strong>: forse costoro (professore ed assistente) non sanno che i corsi al Politecnico di Torino durano 7 settimane (avete capito bene 7 settimane nè un giorno di più nè uno di meno)? Che gli studenti hanno giornate con 8 ore di lezione in media ( con anche giornate di 10 ore di fila senza pausa pranzo 8.30-18.30)? Che tra la fine dei corsi e l&#8217;inzio della sessione esami non c&#8217;è neanche un giorno di &#8220;pausa&#8221;? Che tutte le argomentazioni addotte prima avrebbero portato i poveri e frustrati studenti a consegnare l&#8217;ultimo Assignment in prossimità della scadenza? Che quindi il portale essendo di importanza vitale per dare la possibilità ad uno studente di superare l&#8217;esame andava realizzato modellando il progetto e la realizzazione sul caso peggiore ovvero sui giorni di maggior carico?</p><p>Voi mi direte: &#8220;Eh ma siamo in Italia, mancano i soldi per l&#8217;istruzione e la ricerca è già tanto, anzi troppo, quello che è stato fatto&#8221;. Vi rispondo che sborsando quasi 2000 euro all&#8217;anno di tasse e con tutti i soldi derivanti dagli spin-off vari interni ad università come il Politecnico è stato fatto, come al solito, il minimo indispensabile.</p><p>E&#8217; inutile venire a sindacare poi sul fatto che la mia soluzione non è quella ottimale perchè non implementa il pattern di programmazione XYZ e quindi nella remotissima ipotesi che&#8230; forse potrebbe non funzionare non tanto bene quando sei tu per primo che predichi bene e razzoli male&#8230;<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2007/06/votailprofit-parte-il-primo-social-rating-studentesco/" rel="bookmark" title="6 giugno 2007">Votailprof.it : parte il primo social rating studentesco</a></li><li><a
href="http://www.davidesalerno.net/2007/03/bloglab-si-parte/" rel="bookmark" title="21 marzo 2007">BlogLab: si parte!!!</a></li><li><a
href="http://www.davidesalerno.net/2007/02/netvibes-promette-di-universalizzare-i-widgets/" rel="bookmark" title="21 febbraio 2007">Netvibes promette di universalizzare i widgets</a></li><li><a
href="http://www.davidesalerno.net/2007/01/prima-di-aggionare-e-fare-danni-guarda-qui/" rel="bookmark" title="26 gennaio 2007">Prima di aggionare (e fare danni) guarda qui&#8230;</a></li><li><a
href="http://www.davidesalerno.net/2007/02/worpress-e-mysql-error-28/" rel="bookmark" title="1 febbraio 2007">WordPress e MySQL error 28</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/04/fate-come-vi-dico-non-fate-come-faccio/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Installare Apache Ant su Windows XP / Vista</title><link>http://www.davidesalerno.net/2009/04/installare-apache-ant-su-windows-xp-vista/</link> <comments>http://www.davidesalerno.net/2009/04/installare-apache-ant-su-windows-xp-vista/#comments</comments> <pubDate>Sun, 05 Apr 2009 07:46:25 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Guide]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[ant]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[cmd]]></category> <category><![CDATA[eclipse]]></category> <category><![CDATA[installazione]]></category> <category><![CDATA[java]]></category> <category><![CDATA[netbeans]]></category> <category><![CDATA[programmi]]></category> <category><![CDATA[windows]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1704</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p><img
style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1705" title="ant_logo_large" src="http://www.davidesalerno.net/wp-content/uploads/2009/03/ant_logo_large.gif" alt="ant_logo_large" width="190" height="120" />Chi ha delle discrete basi di programmazioni in C/C++ e magari ama il mondo dell&#8217;Open Source perchè utilizza con soddisfazione una distribuzione tra le tante di <strong>GNU/Linux</strong> sul proprio computer, conoscerà sicuramente ed avrà utilizzato più di una volta nella sua vita <strong><a
title="Make" href="http://www.gnu.org/software/make/" target="_blank">MAKE</a></strong>, un comodissimo tool per automatizzare la compilazione del codice sorgente di programmi di qualsivoglia genere.</p><p>Bene se seguendo le mode e le richieste di mercato del momento, utilizzate o sviluppate applicazioni in <strong>JAVA, </strong>allora troverete molto utile <a
title="Apache ANT" href="http://ant.apache.org/" target="_blank"><strong>Apache Ant</strong></a> che analogamente a MAKE si può banalmente definire come uno strumento per automatizzare la compilazione del codice sorgente in JAVA ma non solo. Non mi dilunghero nello spiegare come funziona o ad elencare i suoi punti di forza o i suoi difetti in quanto l&#8217;ho scoperto da poco tempo quindi non lo conosco a fondo neanche io: vi dico soltanto che per automatizzare tutti i task che mette a disposizione utilizza un file di configurazione scritto in XML (che si chiama solitamente <strong>build.xml</strong>) e questo, se siete degli sviluppatori incalliti, dovrebbe soltanto farvi venire l&#8217;acquolina in bocca.</p><p>Premettendo che se utilizzate IDE come <strong>Eclipse</strong> o <strong>NetBeans</strong> c&#8217;è già una versione di <strong>Ant</strong> incapsulata al loro interno, con ovvie limitazioni dovute ai compromessi a cui i vari ambienti di sviluppo scendono per essere in grado di offrire la <em>pappa pronta</em> ai propri utilizzatori, e che l&#8217;installazione su una qualsisasi distribuzione Linux è banale, per installarlo su Windows ed utilizzarlo dalla shell è necessario effettuare le seguenti operazioni che non vengono effettuate in automatico in fase di installazione.</p><p>Ecco, punto per punto, quello che c&#8217;è da fare:</p><ol><li>Scaricate ed installate, se ancora non l&#8217;avete fatto, una <a
href="http://java.sun.com/javase/downloads/index.jsp">JDK</a></li><li>Scaricate da questo link<br
/> <a
title="Apache Ant Apache" href="http://ant.apache.org/bindownload.cgi"><span><span>http://ant.apache.org/bindownload.cgi</span></span></a><br
/> l&#8217;ultima versione di Ant sotto forma di pacchetto compresso in formato .zip</li><li>Decomprimete il pacchetto di Ant appena scaricato in una cartella di vostro piacimento come C:\Ant oppure C:\Programmi\Ant</li><li>Impostate la viabile d&#8217;ambiente ANT_HOME<ul><li>Fate click con il <strong>tasto desto </strong>del mouse sull&#8217;icona <strong>Computer</strong> sulla vosta scrivania</li><li>Scegliete la voce <strong>Proprietà</strong></li><li>Selezionate la voce<strong> Impostazioni Avanzate di Sistema</strong> dalla barra laterale a sinistra</li><li>Cliccate sul pulsante <strong>Variabili d&#8217;ambiente&#8230;</strong> che trovate in fondo alla finestra di dialogo</li><li>Create una nuova vaiabile cliccando sul pulsante Nuova&#8230;</li><li>Assegnate come Nome Variabile <strong>ANT_HOME</strong> e come Valore Variabile <strong>C:\Programmi\Ant</strong> se avete scompattato Ant come suggerito in questa cartella</li><li>Cliccate su OK e avrete completato questo primo passo.</li></ul></li><li>Cercate nella finestra di dialogo delle variabili d&#8217;ambiete, nella parte bassa dove vengono elencate tutte le <strong>Variabili di Sistema</strong> la variabile <strong>PATH</strong><ul><li>Dopo averla trovata e selezionata cliccate sul pulsante <strong>Modifica&#8230;</strong></li><li>Aggiungete in coda al testo del campo del Valore Variabile<strong> </strong><span><span><strong>%ANT_HOME%\bin;</strong></span></span></li><li><span><span>Cliccate <strong>OK</strong> per confermare la modifica</span></span></li></ul></li><li><span><span>Uscite dalla finestra di dialogo ed aprendo il Prompt dei comandi di Windows controllate che Ant funzioni digitando<em> ant -version</em> e dando quindi invio<br
/> </span></span></p><ul><li>se tutto funziona dovreste vedere qualcosa del genere:<br
/> <em><span><span>Apache Ant version 1.7.1 compiled on June 27 2008 </span></span></em></li></ul></li><li><span><span>Se tutto è aderente a quanto detto sopra la vostra installazione di Apache Ant sotto Windows è avvenuta con successo</span></span></li></ol><p
style="text-align: right;">[via <a
title="Apache ANT" href="http://omrudi.wordpress.com/2008/11/08/how-to-install-ant-in-windows-xp/">Think and Write it</a>]</p><p>Ora la parola passa a voi.</p><p>Conoscevate già Apache Ant e lo utilizzate quotidianamente nel vostro lavoro? Lo usate all&#8217;interno di Eclipse/Netbeans o da liena di comando? Per l&#8217;installazione quale procedura avete seguito?</p><p>Personalmente fino a qualche settimana fa non lo conoscevo e da neo-utilizzatore lo trovo davvero molto comodo per rendere portabile e facilmente ricompilabile il proprio codice e quindi poterlo distribuire apertamente in giro ma anche per automatizzare alcune operazioni decisamente noiose. Le potenzialità di Ant sono davvero innumerevoli e come spesso accade riuscire a sfruttare appieno quello che il software offre richiede tempo ma può sicuramente giovare in termini di tempo risparmiato a lungo andare <img
src='http://www.davidesalerno.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2009/01/windows-vista-e-hp-scanjet-2200c-installare-i-driver/" rel="bookmark" title="28 gennaio 2009">Windows Vista e HP Scanjet 2200c: installare i driver</a></li><li><a
href="http://www.davidesalerno.net/2008/01/installa-mac-os-x-leopard-sul-tuo-pc-2/" rel="bookmark" title="25 gennaio 2008">Installare Mac OS X Leopard sul tuo PC /2</a></li><li><a
href="http://www.davidesalerno.net/2007/07/bitlet-un-client-per-torrent-via-web/" rel="bookmark" title="31 luglio 2007">BitLet: un client per torrent via web</a></li><li><a
href="http://www.davidesalerno.net/2007/10/attivare-lopzione-di-ibernazione-in-windows-vista/" rel="bookmark" title="9 ottobre 2007">Attivare l&#8217;opzione di ibernazione in Windows Vista</a></li><li><a
href="http://www.davidesalerno.net/2007/11/internet-explorer-su-mac-con-ies4osx-e-possibile/" rel="bookmark" title="30 novembre 2007">Internet Explorer su Mac? Con ies4osx è possibile</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/04/installare-apache-ant-su-windows-xp-vista/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Come Velocizzare WordPress Su Dreamhost Con APC</title><link>http://www.davidesalerno.net/2009/01/come-velocizzare-wordpress-su-dreamhost-con-apc/</link> <comments>http://www.davidesalerno.net/2009/01/come-velocizzare-wordpress-su-dreamhost-con-apc/#comments</comments> <pubDate>Tue, 20 Jan 2009 10:38:07 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Guide]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[acceleratore]]></category> <category><![CDATA[APC]]></category> <category><![CDATA[Dreamhost]]></category> <category><![CDATA[eaccelerator]]></category> <category><![CDATA[installazione]]></category> <category><![CDATA[php]]></category> <category><![CDATA[velocità]]></category> <category><![CDATA[Wordpress]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1676</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>All&#8217;indomani dell&#8217;<a
title="iWordcamp 2008" href="http://www.davidesalerno.net/tag/iwordcamp/" target="_blank">iWordCamp 2008</a>, dopo aver seguito diversi talk interessanti e aver chiaccherato con diversi geek vi avevo parlato di come <a
title="Velocizzare WordPress su Dreamhost con eAccelerator" href="http://www.davidesalerno.net/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/" target="_blank">velocizzare WordPress su Dreamhost utilizzando eAccelerator</a> che è un’estensione gratuita ed open source per PHP che si occupa di effettuare un lavoro di accelerazione, ottimizzazione e di cache sui vostri script scritti in questo linguaggio. C&#8217;è un&#8217;altra estensione che effettua un lavoro analogo facilmente installabile anch&#8217;essa su Dreamhost che si chiama <strong><a
title="APC" href="http://pecl.php.net/package/APC" target="_blank">APC</a></strong>.</p><p><strong>APC</strong> è l&#8217;acronimo di <strong>Alternative PHP Cache</strong> e può essere considerato l&#8217;acceleratore ufficiale di PHP tanto che verrà con ogni probabilità incluso di default nella versione 6 di PHP. I più attenti di voi avranno sicuramente notato che nel precedente articolo c&#8217;era un grafico riassuntivo prestazionale e eAccelerator era proprio messo a confronto con APC e i risultati erano quasi indistinguibili.</p><p>Vi riporto qui sotto per comodità il risultato del benchmark.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1157" title="benchmark_eacc" src="http://www.davidesalerno.net/wp-content/uploads/2006/08/benchmark_eacc.png" alt="benchmark_eacc" width="400" height="241" />Passiamo ora a vedere come installare APC per dare un&#8217;accelerata ai vostri script in PHP. Anche in questo caso sarà necessario collegarsi via SSH per compilarsi prima PHP e poi APC quindi vi riporto di seguito i primi 2 punti della precedente guida per chiarezza.</p><h4>Collegatevi SSH</h4><p>Per prima cosa dovrete connettervi via SSH al server web dove è ospitato il vostro blog in <strong>WordPress</strong>. Se siete utenti <strong>Mac</strong> potete utilizzare tranquillamente il <strong>Terminale</strong> (Applicazioni-&gt;Utility-&gt;Terminale), se siete utenti <strong>Linux</strong> dopo aver installato <a
title="OpenSSH" href="http://www.openssh.com/" target="_blank">OpenSSH</a> potrete allo stesso modo utilizzare la shell, se utilizzate <strong>Windows</strong> dovrete procurarvi un <a
title="Lista client ssh" href="http://linuxmafia.com/ssh/win32.html" target="_blank">client SSH</a> tra quelli disponibili in circolazione. Se vi connettete da linea di comando in ogni caso dovrete digitare:</p><pre>ssh username@yourdomain.com</pre><p>quindi invio (ovviamente al posto di <em>username</em> dovrete mettere il nome utente abilitato all’accesso ssh e al posto di <em>yourdomain.com</em> il nome del vostro dominio) ed inserire la password di accesso. E’ tutto comunque dettagliatamente descritto nel <a
title="Wiki di Dreamhost: accesso SSH" href="http://wiki.dreamhost.com/index.php/SSH" target="_blank">wiki di Dreamhost</a> anche se è un’operazione semplicissima.</p><p><strong>Compilate PHP</strong></p><p>La seconda cosa da effettuare è compilarvi PHP. Aspetta, aspetta non scappare: la cosa è molto più semplice di quanto può sembrare e ci puoi riuscire anche tu che non hai mai compilato mai un programma in vita tua. Come al solito c’è una pagina dedicata a tutto ciò nel <a
title="Wiki di Dreamhost: compilazione PHP5" href="http://wiki.dreamhost.com/Installing_PHP5" target="_blank">wiki</a>, l procedura si può riassumere nei seguenti passaggi:</p><ol><li>Scaricatevi e trasferite nella home del vostro account <a
title="installscript" href="http://www.davidesalerno.net/wp-content/uploads/2006/02/installscript" target="_blank">questo script</a> di shell (è lo stesso presente nel wiki)</li><li>Modificate la riga 14<pre>export DOMAIN="your.domain.com"</pre><p>inserendo il nome del vostro dominio sul quale volete installare PHP ed APC</li><li>Date i permessi di esecuzione allo script con il comando, ovviamente sostituendo ad <em>installscript</em> il nome del vostro script se lo avete chiamato diversamente<pre>chmod +x installscript</pre></li><li>Eseguite lo script con il comando sotto ed aspettate che termini l’esecuzione<pre>./installscript</pre></li><li>Al termine vi verrà segnalato che è stato impossibile cancellare le directory <em>source</em> e <em>dist</em>, non vi preoccupate è normale. Cancellatele con il comando sotto ed aspettate che vengano eliminate<pre>rm -rf dist/ source/</pre></li><li>Copiate il file php.ini nella cartella yourdomain.com/cgi-bin con il comando<pre>
cp php5/etc/php5/yourdomain.com/php.ini yourdomain.com/cgi-bin/php.ini</pre></li><li>Createvi un file chiamato <em>php5-wrapper.fcgi</em> con le informazioni che trovate sotto. Per comodità <a
title="php-wrapper.fcgi" href="http://www.davidesalerno.net/wp-content/uploads/2006/02/php5-wrapper.txt" target="_blank">qui</a> potete scaricarne uno già preimpostato: ovviamente sostituite <em>username</em> e <em>yourdomain.com</em> con i vostri dati<pre>#!/bin/sh
export PHPRC=/home/username/yourdomain.com/cgi-bin/
export PHP_FCGI_CHILDREN=3
exec /home/username/yourdomain.com/cgi-bin/php.cgi</pre></li></ol><h4>Installiamo APC</h4><p>Ora che abbiamo PHP compilato ed installato nel nostro account possiamo installarci <strong>APC </strong>in modo molto simile a quanto abbiamo fatto con PHP. Ecco i passaggi salienti, la procedura completa come al solito è presente nel <a
title="Wiki di Dreamhost: APC" href="http://it.php.net/apc" target="_blank">wiki</a> di <strong>Dreamhost</strong>.</p><ol><li>Scaricatevi e trasferite nella cartella home del vostro account <a
title="APC_install.sh " href="http://www.davidesalerno.net/wp-content/uploads/2006/02/APC_install.sh " target="_blank">questo</a> script di shell avendo cura di rinominarlo con estensione .sh</li><li>Date i permessi di esecuzione allo script con il comando sotto ovviamente se avete chiamato lo script in modo diverso da <em>APC_install.sh</em> sostituite il nome del vostro script nel comando sotto<pre>chmod +x APC_install.sh</pre></li><li>Eseguite lo script con il comando sotto ed aspettate che termini l’esecuzione<pre>./APC_install.sh</pre></li><li>Andate a modificare il file php.ini che se avete seguito le indicazioni sopra dovrebbe trovarsi nella directory<pre>/home/username/yourdomain.com/cgi-bin/php.ini</pre></li><li> Trovate le righe<pre>; Directory in which the loadable extensions (modules) reside.
extension_dir = "./"</pre></li><li>Sostituitele con<pre>; Directory in which the loadable extensions (modules) reside.
extension_dir = "/home/username/php5/lib/php/extensions"</pre></li><li>Al termine del file andate invece ad inserire le seguenti righe<pre>[apc]
extension="apc.so"
apc.enabled=1
apc.shm_segments=1
apc.shm_size=16
apc.ttl=7200
apc.user_ttl=7200
apc.num_files_hint=1024
apc.mmap_file_mask=/home/username/tmp/apc.XXXXXX
apc.enable_cli=1</pre></li></ol><p>Bene anche APC è installato, ora non ci resta che avviare il tutto.</p><h4>Avviamo la nostra versione di PHP con APC</h4><p>Ora che avete installato la vostra versione di PHP con APC come estensione non vi resterà che avviare il tutto. Per una questione di ottimizzazione delle prestazioni avvieremo PHP come processo fcgi  (fast-cgi) e non semplicemente come processo cgi: dovete però aver attivato nel <a
title="Dreamhost fast-cgi" href="https://panel.dreamhost.com/index.cgi?tree=domain.manage&amp;" target="_blank">vostro pannello di controllo di Dreamhost</a> l’apposita opzione che vi permette di avere PHP come processo fcgi per il dominio in questione (quello su cui abbiamo lavorato finora).</p><p>Fatto questo dovrete andare a modificare il file .htaccess che trovate nella posizione</p><pre>yourdomain.com/.htaccess</pre><p>aggiungendo le seguenti righe</p><pre>Options +ExecCGI
AddHandler fastcgi-script fcg fcgi fpl
AddHandler php5-fastcgi .php
Action php5-fastcgi /php5-wrapper.fcgi</pre><p>Fatto ciò tutto dovrebbe funzionare. Se riscontrate dei problemi fate riferimento come al solito al <a
title="Wiki di Dreamhost: PHP FastCGI" href="http://wiki.dreamhost.com/PHP_FastCGI" target="_blank">wiki</a> di Dreamhost. Una cosa molto comune che potrebbe causarvi dei malfunzionamenti è il fatto che non avete terminato tutti i processi fcgi prima di avviare la vostra versione di PHP com processo fcgi. Vi ricordo che per terminare un processo da shell si usa il comando <em>kill -9 PID</em> dove PID è l’ID del processo che volete uccidere che vi restituisce il comando ps aux.</p><p>Per esempio se avete come risposta al comando <em>ps aux</em></p><pre>[dinar]$ ps aux
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
user    682  0.0  0.1 17180 6148 ?        Ss   15:27   0:00 /dh/cgi-system/php5.cgi
user  21117  0.1  0.3 23872 11924 ?       S    15:27   0:00 /dh/cgi-system/php5.cgi
user   7576  0.0  0.3 23872 11920 ?       S    15:27   0:00 /dh/cgi-system/php5.cgi
user  23783  0.5  0.0  2632 1500 pts/7    S    15:30   0:00 -bash
user  20840  0.0  0.0  2488  860 pts/7    R+   15:30   0:00 ps aux</pre><p>Per terminare il primo processo, quello con PID 682 dovete dare il comando</p><pre>kill -9 682</pre><p>Personalmente tra i due acceleratori, non essendoci una sostanziale differenza a livello prestazionale, preferisco <strong>eAccelerator</strong> in quanto ha un consumo a livello di memoria leggermente inferiore e quindi su un hosting condiviso come <strong>Dreamhost</strong> la cosa è da tenere seriamente in considerazione per una convivenza senza attriti con gli altri clienti presenti sul vostro stesso server.</p><p>Anche in questo caso credo di avervi tediato a sufficienza, forse anche troppo, ora sono curioso di avere dei vostri riscontri: utilizzate uno dei due acceleratori? Quale? Se siete anche vuoi su <strong>Dreamhost</strong> o in generale su hosting condiviso notate la differenza?<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2008/05/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/" rel="bookmark" title="2 maggio 2008">Come Velocizzare WordPress Su Dreamhost Con eAccelerator</a></li><li><a
href="http://www.davidesalerno.net/2006/11/dreamhost-w3c-validator-e-phpsessid-la-soluzione/" rel="bookmark" title="9 novembre 2006">Dreamhost, W3C Validator e PHPSESSID</a></li><li><a
href="http://www.davidesalerno.net/2008/04/convertire-la-propria-installazione-standard-di-wordpress-a-subversion-svn/" rel="bookmark" title="18 aprile 2008">Convertire La Propria Installazione Standard Di WordPress A Subversion (SVN)</a></li><li><a
href="http://www.davidesalerno.net/2008/01/installa-mac-os-x-leopard-sul-tuo-pc-2/" rel="bookmark" title="25 gennaio 2008">Installare Mac OS X Leopard sul tuo PC /2</a></li><li><a
href="http://www.davidesalerno.net/2010/07/installare-latex-su-fedora/" rel="bookmark" title="8 luglio 2010">Installare LaTeX su Fedora</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/01/come-velocizzare-wordpress-su-dreamhost-con-apc/feed/</wfw:commentRss> <slash:comments>13</slash:comments> </item> <item><title>WordPress: allineare le immagini all&#8217;interno dei feed</title><link>http://www.davidesalerno.net/2009/01/wordpress-allineare-immagini-nei-feed/</link> <comments>http://www.davidesalerno.net/2009/01/wordpress-allineare-immagini-nei-feed/#comments</comments> <pubDate>Wed, 07 Jan 2009 09:34:21 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Web Design]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[2.6]]></category> <category><![CDATA[allineamento]]></category> <category><![CDATA[feed]]></category> <category><![CDATA[immagini]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[rss]]></category> <category><![CDATA[w3c]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1657</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>Dalla versione <strong>2.6</strong> di <strong>WordPress</strong>, per chi non se ne fosse accorto (come il sottoscritto fino a qualche giorno fa, ndr) le immagini che andate ad inserire nei vostri articoli e che allineate nel testo in qualche modo, nel <strong>feed</strong> poi perderanno questo tipo di formattazione. Tutto questo a quanto pare è dovuto ad una precisa scelta degli sviluppatori di <strong>WordPress</strong> che a quanto pare hanno deciso di adattarsi agli standard web  <a
onclick="javascript:pageTracker._trackPageview('/outgoing/wordpress.org/support/topic/189289');" href="http://wordpress.org/support/topic/189289">rimuovendo l&#8217;attributo deprecato “align”</a> all&#8217;interno dei <strong>feed</strong>. Rispettare gli standard è sempre cosa buona, ma in alcuno casi è veramente tanto, anzi troppo, antiestetico: guardate qui il confronto tra un&#8217;immagine non allineata e la stessa allineata.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1659" title="example-picture-in-feed-300x144" src="http://www.davidesalerno.net/wp-content/uploads/2009/01/example-picture-in-feed-300x144.jpg" alt="example-picture-in-feed-300x144" width="300" height="144" />La prima soluzione che potrebbe venirvi in mente è quella di aggiungere un attributo <em>style=&#8221;float:left;&#8221;</em> (or <em>“float:right;”</em>), ma è una soluzione molto noiosa, lunga e macchinosa se mettete tante immagini nei vostri articoli e se magari volete che anche tutto quello che avete scritto fino ad oggi sia tutto bello allineato e ordinato.</p><p>C&#8217;è una soluzione rapida, semplice ed indolore che come potrete immaginare consiste nell&#8217;installazione di un semplice plugin: <strong><a
title="Align images in RSS Feeds" href="http://w-shadow.com/blog/2008/12/31/aligning-images-in-rss-feeds/" target="_blank">A lign images in RSS Feeds</a></strong>.</p><p>Il plugin è di una banalità disarmante e non farà nient&#8217;altro che andare a controllore, quando <strong>WordPress</strong> genererà dinamicamente i vostri feed RSS, che nel codice HTML dei vostri articoli tutti gli elementi formattati con una delle <a
onclick="javascript:pageTracker._trackPageview('/outgoing/codex.wordpress.org/CSS#Wordpress_Generated_Classes');" href="http://codex.wordpress.org/CSS#Wordpress_Generated_Classes">classi generate da WordPress</a> abbiano un allieamento e dei margini consoni a quanto ci si aspetterebbe.<a
onclick="javascript:pageTracker._trackPageview('/outgoing/codex.wordpress.org/CSS#Wordpress_Generated_Classes');" href="http://codex.wordpress.org/CSS#Wordpress_Generated_Classes"> </a></p><p>Così facendo è vero che non si rispettano alla perfezione gli standard web in quanto si va ad inserire una formattazione all&#8217;interno dei feed RSS ma non ci sono contro indicazioni per i maggiori lettori di feed RSS come Google Reader o Bloglines e anche per il <a
onclick="javascript:pageTracker._trackPageview('/outgoing/validator.w3.org/feed/');" href="http://validator.w3.org/feed/">W3C Feed Validator</a> sembra essere tutto ok&#8230; quindi siccome oggigiorno anche l&#8217;occhio vuole la sua parte io ve ne consiglio vivamente l&#8217;utilizzo.</p><p>Il plugin ovviamente serve solo per chi usa una versione di WordPresss pari o superiore alla 2.6 e si installa scompattandolo e caricandolo nella vostra cartella wp-content/plugins ed andandolo ad attivare dal pannello di controllo nella sezione Plugins.</p><p>Ecco il link per il download: <strong><a
onclick="javascript:pageTracker._trackPageview('/downloads/files/rss-image-align.zip');" href="http://w-shadow.com/files/rss-image-align.zip">rss-image-align.zip</a></strong> (2 KB)</p><p>Avevate già individuato il problema? Lo avevate risolto con lo stesso plugin o fino ad oggi utilizzavate il metodo manuale? Avete qualche soluzione diversa migliore/peggiore da consigliare/sconsigliare? Sono tutto orecchie.<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2006/11/wordpress-feedburner-plugin-e-trasferimenti/" rel="bookmark" title="20 novembre 2006">WordPress, Feedburner plugin e trasferimenti</a></li><li><a
href="http://www.davidesalerno.net/2007/10/rendi-il-tuo-blog-in-wordpress-iphoneipod-touch-friendly/" rel="bookmark" title="15 ottobre 2007">Rendi il tuo blog in WordPress iPhone/iPod Touch friendly</a></li><li><a
href="http://www.davidesalerno.net/2007/03/prove-tecniche/" rel="bookmark" title="8 marzo 2007">Prove tecniche&#8230;</a></li><li><a
href="http://www.davidesalerno.net/2007/09/wordpress-the-revolution-begins/" rel="bookmark" title="25 settembre 2007">WordPress: the revolution begins</a></li><li><a
href="http://www.davidesalerno.net/2007/05/rilasciato-wordpress-22/" rel="bookmark" title="16 maggio 2007">Rilasciato WordPress 2.2</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/01/wordpress-allineare-immagini-nei-feed/feed/</wfw:commentRss> <slash:comments>7</slash:comments> </item> <item><title>WordPress, commenti paginati, contenuti duplicati e ottimizzazione SEO</title><link>http://www.davidesalerno.net/2009/01/wordpress-commenti-paginati-seo/</link> <comments>http://www.davidesalerno.net/2009/01/wordpress-commenti-paginati-seo/#comments</comments> <pubDate>Mon, 05 Jan 2009 15:28:07 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Guide]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[2.7]]></category> <category><![CDATA[commenti]]></category> <category><![CDATA[paginated comments]]></category> <category><![CDATA[paginati]]></category> <category><![CDATA[paginazione]]></category> <category><![CDATA[plugin]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1645</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p><img
style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1646" title="wp-27-duplicate-content-pin-up" src="http://www.davidesalerno.net/wp-content/uploads/2009/01/wp-27-duplicate-content-pin-up.png" alt="wp-27-duplicate-content-pin-up" width="128" height="128" />L&#8217;ultima versione di <a
title="Wordpress" href="http://wordpress.or" target="_blank"><strong>WordPress</strong></a>, la <strong>2.7</strong>, tra le tante novità ha introdotto una vera e propria rivoluzione nella gestione dei commenti. Infatti oltre alla possibilità di gestire le repliche ai vari commenti annidandoli gli uni dentro gli altri, ha introdotto la paginazione dei commenti che permette di limitare il numero di commenti mostrati per pagina e l&#8217;ordine con il quale mostrarli (in modo cronologico o cronologico inverso).</p><p>Funzionalità decisamente interessanti e utili soprattutto per quei siti/blog che hanno solitamente un elevato numero di commenti nei quali si sviluppano spesso delle discussioni interessati. Se si decide di sfruttarle ovviamente bisognerà modificare il proprio tema grafico ma non voglio tediarvi con lunghe e complicate guide perchè c&#8217;è già <a
title="Francesco Gavello How-to" href="http://francescogavello.it/wordpress-27-commenti-nidificati-quello-che-ce-da-sapere" target="_blank">chi</a> l&#8217;ha <a
title="Wordpress-IT How-to" href="http://www.wordpress-it.it/2008/12/13/wordpress-27-commenti-nidificati-e-paginati/" target="_blank">fatto</a> prima di me in italiano. Ovviamente adesso che <strong>WordPress</strong> offre queste funzionalità direttamente nel core andare a sfruttare plugin aggiuntivi mi sembra alquanto insensato in quanto per bene che siano fatto sono pur sempre dei plugin che vanno ad appesantire ed in un certo qual senso a rallentare la vostra installazione di WordPress.</p><p>Fatte queste premesse volevo segnalarvi che se sfruttate o avete intenzione di sfruttare la <strong>paginazione dei commenti</strong> sul vostro blog, sarebbe opportuno prendere alcuni accorgimenti per evitare il problema dell&#8217;<strong>indicizzazione</strong> da parte dei <strong>motori di ricerca</strong> dei <strong>contenuti duplicati</strong>. Se siete degli esperti SEO saprete già di che problema si tratta e quali sono i problemi ad esso connessi, altrimenti per farla breve il problema consiste nel fatto che sul vostro sito saranno presenti delle pagine con contenuto pressochè identico ma URL diverso: in pratica è come se fosse stato duplicato su più pagine con indirizzo diverso lo stesso contenuto. Per tastare con mano la gravità del problema, se utilizzate la aginazione dei commenti e non siete ancora corsi ai ripari, basta avere un account <a
rel="external" href="http://www.google.com/webmasters/">Google Webmaster</a> ed andare ad effettuare una scansione del sito in questione per vedere come verranno trovati dei contenuti duplicati.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-medium wp-image-1648 aligncenter" title="google-webmaster-tools-content-analysis" src="http://www.davidesalerno.net/wp-content/uploads/2009/01/google-webmaster-tools-content-analysis-840x118.png" alt="google-webmaster-tools-content-analysis" width="435" height="61" /><a
rel="external" href="http://www.google.com/webmasters/"><br
/> </a></p><p>Tutto questo è dannoso sotto diversi punti di vista tra i quali per esempio:</p><ul><li>il fatto che i crawler dei motori di ricerca indicizzeranno lo stesso contenuto sul vostro sito su pagine differenti causando un consumo di banda e di lavoro del server che a volte protebbe non essere trascurabile;</li><li>un cattivo PR in quanto molti motori di ricerca (tra cui anche Google, ndr) penalizzano esplicitamente qui siti in cui viene ripetuto più volte su pagine differenti lo stesso identi contenuto;</li><li>un cattivo posizionamento nelle SERP dovuto al punto precente, ovvero al fatto che il vostro sito verrà <em>additato</em> come poco affidabile in quanto troppo <em>ripetitivo</em>.</li></ul><p>In poche parole visto che a soluzione c&#8217;è e tutto sommato è semplice ed implementabile vi conviene metterla in atto. Si tratta infatti di aggiungere un <em>meta tag</em> di tipo <strong><a
title="robots noindex meta tag" href="http://www.google.com/support/webmasters/bin/answer.py?answer=93710">robots noindex</a></strong> alle pagine dei commenti così il motore di ricerca saprà di non doverle indicizzare e vivrete tranquilli e sereni entrambi.</p><p>Per farlo basterà aggiungere il seguente codice al file functions.php del vostro tema (basterà fare un semplice copia-incolla):</p><pre>/**
 * void wpi_comment_paging_noindex_meta()
 * Add meta noindex rules on Singular comment page section
 *
 * @author	Avice D &lt;ck+filter@kaizeku.com&gt;
 * @license	http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License
 * @link 	http://blog.kaizeku.com/wordpress/prevent-wordpress-27-duplicate-content/
 *
 * @todo	Check for duplicate meta-robots tag generated by
 *		meta-tag type plugins (SEO plugins)
 *
 * @uses	$wp_query	Wp_query object
 * @return 	string 		Output HTML meta noindex
 */
function wpi_comment_paging_noindex_meta()
{	global $wp_query;

	if (version_compare( (float) get_bloginfo('version'), 2.7, '&gt;=') ){

		if ($wp_query-&gt;is_singular &amp;&amp; get_option('page_comments')){ // comments paging enabled
			if (isset($wp_query-&gt;query['cpage'])
				&amp;&amp; absint($wp_query-&gt;query['cpage']) &gt;= 1 ){

				echo '&lt;meta name="robots" content="noindex" /&gt;'.PHP_EOL;
			}
		}
	}
}

add_action('wp_head','wpi_comment_paging_noindex_meta');</pre><p>I più smanettoni/competenti potranno notare come si andrà ad aggiungere semplicemente un&#8217;<em>azione</em> aggiuntiva che andrà ad aggiungere il <em>meta tag</em> che risolve il nostro problema nelle pagine dei commenti all&#8217;<em>hook wp_head</em>. Se usate il popolarissimo plugin <a
title="Paginated Comments" href="http://wordpress.org/extend/plugins/paginated-comments/" target="_blank">Paginated Comments</a> il problema sussiste e sinceramente non so se è stato risolto o meno, come risolverlo ecc ecc e dato che sono un acceso sostenitore del partito &#8220;Se lo può fare WordPress il plugin cestinalo&#8221; (adesso quasi quasi creo un gruppo su Facebook tanto per&#8230;) vi consiglio di sfruttare quello che offre il convento che è ottimo e abbondante <img
src='http://www.davidesalerno.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><p
style="text-align: right;">via <a
title="Kaizeku Ban" rel="home" href="http://blog.kaizeku.com/wordpress/prevent-wordpress-27-duplicate-content/" target="_blank">Kaizeku Ban</a></p><p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2007/09/aggiornamento-di-sicurezza-wordpress-223/" rel="bookmark" title="8 settembre 2007">Aggiornamento di sicurezza: WordPress 2.2.3</a></li><li><a
href="http://www.davidesalerno.net/2006/10/parole-dordine-validare-e-semplificare/" rel="bookmark" title="21 ottobre 2006">Parole d&#8217;ordine: validare e semplificare !!!</a></li><li><a
href="http://www.davidesalerno.net/2007/08/utilizzare-la-compressione-gzip-con-wp-cache-attivato/" rel="bookmark" title="10 agosto 2007">Utilizzare la compressione Gzip con WP-Cache attivato</a></li><li><a
href="http://www.davidesalerno.net/2007/10/vp-cache-funziona-finalmente-grazie-a-wolly/" rel="bookmark" title="20 ottobre 2007">Wp-cache funziona. Finalmente. Grazie a Wolly</a></li><li><a
href="http://www.davidesalerno.net/2006/11/wordpress-feedburner-plugin-e-trasferimenti/" rel="bookmark" title="20 novembre 2006">WordPress, Feedburner plugin e trasferimenti</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/01/wordpress-commenti-paginati-seo/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Hiddy per WordPress 2.7</title><link>http://www.davidesalerno.net/2009/01/hiddy-wordpress-27-aggiornamento/</link> <comments>http://www.davidesalerno.net/2009/01/hiddy-wordpress-27-aggiornamento/#comments</comments> <pubDate>Fri, 02 Jan 2009 10:00:16 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Novità]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[2.7]]></category> <category><![CDATA[aggiornamento]]></category> <category><![CDATA[antispam]]></category> <category><![CDATA[commenti]]></category> <category><![CDATA[dashboard]]></category> <category><![CDATA[hiddy]]></category> <category><![CDATA[plugin]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1640</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p><img
style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1641" title="hiddy-logo" src="http://www.davidesalerno.net/wp-content/uploads/2009/01/hiddy-logo.gif" alt="hiddy-logo" width="205" height="80" />Se come il sottoscritto e altre centinaia se non migliaia di bloggers utilizzate <a
title="Hiddy antispam per Wordpres" href="http://hiddy.etechs.it/" target="_blank"><strong>Hiddy</strong></a> per combattere il fastidiosissimo fenomeno dello spam sul vostro blog, volevo soltato informarvi che se avete aggiornato a <strong>WordPress 2.7</strong> sarebbe il caso di aggiornare Hiddy alla <a
title="Hiddy 1.3 per WordPress 2.7" href="http://hiddy.etechs.it/2008/12/30/hiddy-13-enables-dashboard-editing-and-reply-in-wordpress-27/" target="_blank">versione 1.3 </a>che vi permetterà di replicare ai commenti dei vostri lettori direttamente dalla dashboard di WordPress.</p><p>Non conoscete <strong>Hiddy</strong>? Male, anzi malissimo soprattutto se utilizzate <strong>Wordpres</strong>s. <strong>Hiddy</strong> infatti è un filtro antispam captch-like molto poco invasivo infatti una volta installato ed attivato non ci sarà nessun codice di sicurezza da ricopiare o operazioni manuali aggiuntive da fare per commentare ma potrete stare certi che quando sarà in funzione potrete dire addio allo spam senza alcuno sforzo aggiuntivo per i lettori che vorranno commmentare un qualsiasi articolo sul vostro sito/blog.</p><p>Personalmente da quando lo utilizzo assieme ad Askimet non ricordo neanche più l&#8217;ultima volta che ho dovuto cancellare un commento di spam.</p><p>Se siete dei geek incalliti e al posto di festeggiare l&#8217;arrivo del 2009 eravate a casa a controllare il feedreader in attesa di nuove notizie e quindi sapevate già tutto, sappiate che la segnalazione di questa notizia è solo una mera azione di pavoneggiamento in quanto tra un brindisi e l&#8217;altro mi ero accorto in questi giorni del problema di <strong>Hiddy</strong> con la versione 2.7 di <strong>WordPress</strong> e ci avevo messo una toppa.</p><p> <img
src='http://www.davidesalerno.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2007/08/usare-spam-karma-2-e-wp-cache-assieme-e-senza-problemi/" rel="bookmark" title="9 agosto 2007">Usare Spam Karma 2 e WP-Cache assieme e senza problemi</a></li><li><a
href="http://www.davidesalerno.net/2007/10/vp-cache-funziona-finalmente-grazie-a-wolly/" rel="bookmark" title="20 ottobre 2007">Wp-cache funziona. Finalmente. Grazie a Wolly</a></li><li><a
href="http://www.davidesalerno.net/2007/04/wordpress-213-e-2010-in-italiano/" rel="bookmark" title="5 aprile 2007">WordPress 2.1.3 e 2.0.10 in italiano</a></li><li><a
href="http://www.davidesalerno.net/2007/11/integrare-lifeblog-con-wordpress-per-postare-dal-tuo-nokia/" rel="bookmark" title="24 novembre 2007">Integrare Lifeblog con WordPress per postare dal tuo Nokia</a></li><li><a
href="http://www.davidesalerno.net/2007/05/rilasciato-wordpress-22/" rel="bookmark" title="16 maggio 2007">Rilasciato WordPress 2.2</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2009/01/hiddy-wordpress-27-aggiornamento/feed/</wfw:commentRss> <slash:comments>10</slash:comments> </item> <item><title>Ottenere Longitudine E Latidudine Di Un Indirizzo In PHP Con Le Google MAPS API</title><link>http://www.davidesalerno.net/2008/05/google-maps-api-longitudine-latitudine-php-indirizzo-geocoding/</link> <comments>http://www.davidesalerno.net/2008/05/google-maps-api-longitudine-latitudine-php-indirizzo-geocoding/#comments</comments> <pubDate>Fri, 30 May 2008 07:22:07 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[geocoding]]></category> <category><![CDATA[geolocalizzazione]]></category> <category><![CDATA[google]]></category> <category><![CDATA[google maps]]></category> <category><![CDATA[google maps api]]></category> <category><![CDATA[indirizzo]]></category> <category><![CDATA[latitudine]]></category> <category><![CDATA[longitudine]]></category> <category><![CDATA[php]]></category> <category><![CDATA[web]]></category> <category><![CDATA[web 2.0]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1245</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>A meno che non viviate sul cucuzzolo di una montagna e siate completamente all’asciutto di Web 2.0 &amp; Co, conoscerete benissimo <strong><a
title="Google Maps" href="http://maps.google.it" target="_blank">Google Maps</a></strong>, il servizio di mappe geografiche di che copra gran parte del Terra, che sicuramente utilizzerete quotidianamente per orientarvi nei vostri frenetici spostamenti. Come ogni servizio 2.0 che si rispetti anche <strong>Google Maps</strong> mette a disposizione una serie di <a
title="Google Maps" href="http://code.google.com/apis/maps/" target="_blank">API</a> per aiutare gli sviluppatori web ad integrare le sue funzionalità all’interno delle loro realizzazioni. Uno degli utilizzi più comuni delle <strong>Google Maps API</strong> credo sia il <strong>Geocoding</strong> di un indirizzo.</p><p
style="text-align: center;"><a
href="http://www.davidesalerno.net/wp-content/uploads/2006/08/google_maps_screenshots.gif" target="_blank"><img
src="http://www.davidesalerno.net/wp-content/uploads/2006/08/google_maps_screenshots.gif" alt="" width="350" height="415" /></a></p><h4>Che cos’è il Geocoding?</h4><p>Innanzitutto per <a
title="Definizione di Geocoding di Wikipedia" href="http://en.wikipedia.org/wiki/Geocoding" target="_blank">Geocoding</a> si intende quel processo che assegna ad un indirizzo le sue coordinate geografiche <strong>logitudine</strong> e <strong>latitudine</strong>: in sostanza è quel procedimento che va ad associare all’indirizzo “via Durini, 24 20122 Milano” le coordinate “longitudine:45.464919 latitudine: 9.198268″  Potete farlo <em>manualmente</em> andando a prendere un atlante, uno stradario, una piantina o un qualsiasi altro strumento che vi pertmetta di ottenere queste coordinate una volta localizzato l’indirizzo che vi interessa geolocalizzare, oppure potete farlo molto più comodamente utilizzando per l’appunto le <strong>Google Maps API</strong> che faranno tutto ciò per voi e vi restituiranno longitudine e latitudine dell’indirizzo in questione.</p><h4>In quali casi servono Longitudine e Latitudine?</h4><p>Se siete degli sviluppatori web o comunque vi piace trafficare nella rete sporcandovi le mani con codice di vario genere, saprete benessimo che un’ottima soluzione per interagire con le API offerte dai vari servizi di<strong> Google</strong> è quella di utilizzare le <strong><a
title="Google Ajax API Keys" href="http://code.google.com/apis/maps/documentation/#AJAX_Loader" target="_blank">Google AJAX API Loader</a></strong> che non sono altro che un framework già preconfezionato per interagire comodamente con la stragrande maggioranza delle applicazioni web 2.0 offerte dall’azienda di Mountanin View.  Se volete sfruttare le <strong>Google AJAX API Loader</strong> per interagire con le Google MAPS magari perchè volete visualizzare all’interno della vostra applicazione web 2.0 la mappa corrispondente a ciascun indirizzo geografico del tipo “via Durini, 24 20122 Milano”, avrete bisogno di avere la longitudine e la latitudine di ciascun indirizzo da mandare in pasto successivamente alle <strong>Google AJAX API Loader</strong>.  Quando gli indirizzi da geolocalizzare diventano tanti ecco che una procedura automatizzata per avere le corrispondenti longitudini e latitudine in modo automatizzato è molto comoda.</p><h4>ll codice</h4><p>Dopo aver capito che cosa stiamo facendo e perchè lo stiamo capendo è finalmente venuto il momento di sporcarsi le mani con il codice PHP  che tutto sommato è abbastanza semplice. Ovviamente prima di effettuare qualsiasi cosa, se non la possedete già, dovrete procurarvi una <strong><a
title="Google MAPS API Key" href="http://code.google.com/apis/maps/signup.html" target="_blank">Google MAPS API Key</a></strong>. Ora che abbiamo tutto il necessario, ecco il codice da salvare in un file .php e da eseguire per avere la geolocalizzazione di un indirizzo.</p><p>Per eseguire lo script in PHP dovrete aver installato curl sul vostro server e dovrete averlo abilitato per essere utilizzato da PHP. Ovviamente se si hanno tanti indirizzi da geocodificare bisognerà andarli a prendere dal database e successivamente bisognerà andare a memorizzare longitudine e latitudine associati a ciascun record ma ho omesso questa parte perchè banale e perchè le possibilità sono davvero molteplici (dal file di testo a quello XML al più comune database in SQL<br
/> <code><span
style="color: #000000;"><span
style="color: #0000bb;">&lt;?php<br
/> $key </span><span
style="color: #007700;">= </span><span
style="color: #dd0000;">"Inserisci qui la tua chiave API"</span><span
style="color: #007700;">;<br
/> </span><span
style="color: #ff8000;">//Set up our variables<br
/> </span><span
style="color: #0000bb;">$longitude </span><span
style="color: #007700;">= </span><span
style="color: #dd0000;">""</span><span
style="color: #007700;">;<br
/> </span><span
style="color: #0000bb;">$latitude </span><span
style="color: #007700;">= </span><span
style="color: #dd0000;">""</span><span
style="color: #007700;">;<br
/> </span><span
style="color: #0000bb;">$precision </span><span
style="color: #007700;">= </span><span
style="color: #dd0000;">""</span><span
style="color: #007700;">;<br
/> </span><span
style="color: #ff8000;">//Three parts to the querystring: q is address, output is the format (<br
/> </span><span
style="color: #0000bb;">$address_to_encode</span><span
style="color: #007700;">=</span><span
style="color: #dd0000;">"via Durini, 24 20122 Milano"<br
/> </span><span
style="color: #0000bb;">$address </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">urlencode</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$address_to_encode</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">$url </span><span
style="color: #007700;">= </span><span
style="color: #dd0000;">"http://maps.google.com/maps/geo?q="</span><span
style="color: #007700;">.</span><span
style="color: #0000bb;">$address</span><span
style="color: #007700;">.</span><span
style="color: #dd0000;">"&amp;output=csv&amp;key="</span><span
style="color: #007700;">.</span><span
style="color: #0000bb;">$key</span><span
style="color: #007700;">;<br
/> </span><span
style="color: #0000bb;">$ch </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">curl_init</span><span
style="color: #007700;">();<br
/> </span><span
style="color: #0000bb;">curl_setopt</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">CURLOPT_URL</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">$url</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">curl_setopt</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">CURLOPT_HEADER</span><span
style="color: #007700;">,</span><span
style="color: #0000bb;">0</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">curl_setopt</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">CURLOPT_USERAGENT</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">$_SERVER</span><span
style="color: #007700;">[</span><span
style="color: #dd0000;">'HTTP_USER_AGENT'</span><span
style="color: #007700;">]);<br
/> </span><span
style="color: #0000bb;">curl_setopt</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">CURLOPT_FOLLOWLOCATION</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">1</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">curl_setopt</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">CURLOPT_RETURNTRANSFER</span><span
style="color: #007700;">, </span><span
style="color: #0000bb;">1</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">$data </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">curl_exec</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">curl_close</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$ch</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #ff8000;">//echo "Data: ". $data."";<br
/> </span><span
style="color: #007700;">if (</span><span
style="color: #0000bb;">strstr</span><span
style="color: #007700;">(</span><span
style="color: #0000bb;">$data</span><span
style="color: #007700;">,</span><span
style="color: #dd0000;">'200'</span><span
style="color: #007700;">)){<br
/> </span><span
style="color: #0000bb;">$data </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">explode</span><span
style="color: #007700;">(</span><span
style="color: #dd0000;">","</span><span
style="color: #007700;">,</span><span
style="color: #0000bb;">$data</span><span
style="color: #007700;">);<br
/> </span><span
style="color: #0000bb;">$precision </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">$data</span><span
style="color: #007700;">[</span><span
style="color: #0000bb;">1</span><span
style="color: #007700;">];<br
/> </span><span
style="color: #0000bb;">$latitude </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">$data</span><span
style="color: #007700;">[</span><span
style="color: #0000bb;">2</span><span
style="color: #007700;">];<br
/> </span><span
style="color: #0000bb;">$longitude </span><span
style="color: #007700;">= </span><span
style="color: #0000bb;">$data</span><span
style="color: #007700;">[</span><span
style="color: #0000bb;">3</span><span
style="color: #007700;">];<br
/> echo </span><span
style="color: #dd0000;">"n: "</span><span
style="color: #007700;">.</span><span
style="color: #0000bb;">$count</span><span
style="color: #007700;">.</span><span
style="color: #dd0000;">" Latitude: "</span><span
style="color: #007700;">.</span><span
style="color: #0000bb;">$latitude</span><span
style="color: #007700;">.</span><span
style="color: #dd0000;">""</span><span
style="color: #007700;">;<br
/> echo </span><span
style="color: #dd0000;">" Longitude: "</span><span
style="color: #007700;">.</span><span
style="color: #0000bb;">$longitude</span><span
style="color: #007700;">.</span><span
style="color: #dd0000;">"\r\n"</span><span
style="color: #007700;">;<br
/> } else {<br
/> echo </span><span
style="color: #dd0000;">"Error in geocoding!"</span><span
style="color: #007700;">;<br
/> }<br
/> </span><span
style="color: #0000bb;">?&gt;</span></span></code><br
/> Ecco quanto: come al solito per chiarimenti, correzioni e quant&#8217;altro ci sono i commenti qua sotto che vi aspettano <img
src='http://www.davidesalerno.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /><p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2008/05/google-aggiunge-la-funzione-di-ricerca-specifica-per-utenti-mac/" rel="bookmark" title="4 maggio 2008">Google Aggiunge La Funzione Di Ricerca Specifica Per Utenti Mac</a></li><li><a
href="http://www.davidesalerno.net/2007/04/auto-pager-tutti-i-risultati-di-una-ricerca-con-google-in-una-sola-pagina/" rel="bookmark" title="16 aprile 2007">Auto Pager: tutti i risultati di una ricerca con Google in una sola pagina</a></li><li><a
href="http://www.davidesalerno.net/2007/07/google-rende-gratuiti-i-servizi-pro-di-feedburner/" rel="bookmark" title="4 luglio 2007">Google rende gratuiti i servizi pro di FeedBurner</a></li><li><a
href="http://www.davidesalerno.net/2007/06/google-adsense-si-arrotonda/" rel="bookmark" title="28 giugno 2007">Google AdSense si arrotonda</a></li><li><a
href="http://www.davidesalerno.net/2007/11/cosa-sono-e-come-si-utilizzano-i-permalink-della-nuova-gmail/" rel="bookmark" title="21 novembre 2007">Cosa sono e come si utilizzano i permalink della nuova Gmail</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2008/05/google-maps-api-longitudine-latitudine-php-indirizzo-geocoding/feed/</wfw:commentRss> <slash:comments>15</slash:comments> </item> <item><title>Come Velocizzare WordPress Su Dreamhost Con eAccelerator</title><link>http://www.davidesalerno.net/2008/05/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/</link> <comments>http://www.davidesalerno.net/2008/05/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/#comments</comments> <pubDate>Fri, 02 May 2008 18:34:21 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Guide]]></category> <category><![CDATA[Opinioni]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[cache]]></category> <category><![CDATA[Dreamhost]]></category> <category><![CDATA[eaccelerator]]></category> <category><![CDATA[installare]]></category> <category><![CDATA[php]]></category> <category><![CDATA[ssh]]></category> <category><![CDATA[velocizzare]]></category> <category><![CDATA[Wordpress]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1156</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p><strong><a
title="I post in cui parlo di Dreamhost" href="http://www.davidesalerno.net/tag/dreamhost" target="_blank">Dreamhost</a></strong> è un servizio di hosting che sulla carta offre veramente tanto rispetto a quanto costa. Se siete dei nuovi clienti e utilizzate qualche coupon per garantirvi un lauto sconto per il primo anno pagherete a cifre irrisorie un servizio di hosting che in Europa è veramente difficile da trovare. Dal lato pratico qualche controindicazione c&#8217;è e si chiama lentezza. I server infatti sono abbastanza sovraffollati, i server web e quelli che ospitano i database MySQL sono su macchine differenti e la server farm è negli USA quindi non proprio dietro l&#8217;angolo: tutto questo si traduce in una lentezza che soprattutto per chi visualizza il vostro sito dall&#8217;Europa è abbastanza tangibile e fastidiosa.</p><p>Per chi utilizza <strong><a
title="I post in cui parlo di WordPress" href="http://www.davidesalerno.net/tag/wordpress" target="_blank">WordPress</a></strong> poi i problemi non sono finiti qui: non è un mistero infatti che il più osannato dei CMS per blog abbia nelle prestazioni il suo tallone di Achille. Le query per accedere al database sono infatti un tantino elevate e dal punto di vista del codice PHP, essendo sviluppato da una community abbastanza eterogenea, non sempre utilizza soluzioni ottimali. Ecco perchè vi ho parlato più volte di plugin che effettuano un lavoro di <a
title="I post in cui parlo di Cache" href="http://www.davidesalerno.net/tag/cahce" target="_blank">cache</a> su WordPress (WP-Cache e WP-SuperCache) riducendo al minimo indispensabile le query salvando in formato HTML le pagine web del vostro blog per velocizzarne il caricamento.</p><p>Su <strong>Dreamhost</strong> però vi ricordo che avete a disposizione un accesso SSH e quindi potete <strong>velocizzare WordPress installando <a
title="eAccelerator" href="http://eaccelerator.net/" target="_blank">eAccelerator</a></strong>: alla fine non sarà come essere su un server dedicato o su un vps perchè le risorse sono sempre condivise, però dai benchmark che ci sono in giro ne trarrete sicuramente un immediato beneficio.</p><p><strong>eAccelerator</strong>, per chi non lo sapesse, è un&#8217;estensione gratuita ed open source per PHP che si occupa di effettuare un lavoro di accelerazione, ottimizzazione e di cache sui vostri script scritti per l&#8217;appunto in PHP.</p><p
style="text-align: center;"><a
href="http://www.davidesalerno.net/wp-content/uploads/2006/08/benchmark_eacc.png"><img
class="alignnone size-medium wp-image-1157" title="benchmark_eacc" src="http://www.davidesalerno.net/wp-content/uploads/2006/08/benchmark_eacc.png" alt="" width="400" height="241" /></a></p><h4>Collegatevi SSH</h4><p>Per prima cosa dovrete connettervi via SSH al server web dove è ospitato il vostro blog in <strong>WordPress</strong>. Se siete utenti <strong>Mac</strong> potete utilizzare tranquillamente il <strong>Terminale</strong> (Applicazioni-&gt;Utility-&gt;Terminale), se siete utenti <strong>Linux</strong> dopo aver installato <a
title="OpenSSH" href="http://www.openssh.com/" target="_blank">OpenSSH</a> potrete allo stesso modo utilizzare la shell, se utilizzate <strong>Windows</strong> dovrete procurarvi un <a
title="Lista client ssh" href="http://linuxmafia.com/ssh/win32.html" target="_blank">client SSH</a> tra quelli disponibili in circolazione. Se vi connettete da linea di comando in ogni caso dovrete digitare:</p><p><code>ssh username@yourdomain.com<br
/> </code><br
/> quindi invio (ovviamente al posto di <em>username</em> dovrete mettere il nome utente abilitato all&#8217;accesso ssh e al posto di <em>yourdomain.com</em> il nome del vostro dominio) ed inserire la password di accesso. E&#8217; tutto comunque dettagliatamente descritto nel <a
title="Wiki di Dreamhost: accesso SSH" href="http://wiki.dreamhost.com/index.php/SSH" target="_blank">wiki di Dreamhost</a> anche se è un&#8217;operazione semplicissima.</p><p><strong>Compilate PHP</strong></p><p>La seconda cosa da effettuare è compilarvi PHP. Aspetta, aspetta non scappare: la cosa è molto più semplice di quanto può sembrare e ci puoi riuscire anche tu che non hai mai compilato mai un programma in vita tua. Come al solito c&#8217;è una pagina dedicata a tutto ciò nel <a
title="Wiki di Dreamhost: compilazione PHP5" href="http://wiki.dreamhost.com/Installing_PHP5" target="_blank">wiki</a>, l procedura si può riassumere nei seguenti passaggi:</p><ol><li>Scaricatevi e trasferite nella home del vostro account <a
title="installscript" href="http://www.davidesalerno.net/wp-content/uploads/2006/02/installscript" target="_blank">questo script</a> di shell (è lo stesso presente nel wiki)</li><li>Modificate la riga 14<br
/> <code>export DOMAIN="your.domain.com"<br
/> </code>inserendo il nome del vostro dominio sul quale volete installare PHP ed eAccelerator</li><li>Date i permessi di esecuzione allo script con il comando, ovviamente sostituendo ad <em>installscript</em> il nome del vostro script se lo avete chiamato diversamente<code>chmod +x installscript<br
/> </code></li><li>Eseguite lo script con il comando sotto ed aspettate che termini l&#8217;esecuzione<code>./installscript<br
/> </code></li><li>Al termine vi verrà segnalato che è stato impossibile cancellare le directory <em>source</em> e <em>dist</em>, non vi preoccupate è normale. Cancellatele con il comando sotto ed aspettate che vengano eliminate<code>rm -rf dist/ source/<br
/> </code></li><li>Copiate il file php.ini nella cartella yourdomain.com/cgi-bin con il comando<br
/> <code>cp php5/etc/php5/yourdomain.com/php.ini yourdomain.com/cgi-bin/php.ini</code></li><li>Createvi un file chiamato <em>php5-wrapper.fcgi</em> con le informazioni che trovate sotto. Per comodità <a
title="php-wrapper.fcgi" href="http://www.davidesalerno.net/wp-content/uploads/2006/02/php5-wrapper.txt" target="_blank">qui</a> potete scaricarne uno già preimpostato: ovviamente sostituite <em>username</em> e <em>yourdomain.com</em> con i vostri dati<code>#!/bin/sh<br
/> export PHPRC=/home/username/yourdomain.com/cgi-bin/<br
/> export PHP_FCGI_CHILDREN=3<br
/> exec /home/username/yourdomain.com/cgi-bin/php.cgi</code></li></ol><h4>Installiamo eAccelerator</h4><p>Ora che abbiamo PHP compilato ed installato nel nostro account possiamo installarci eAccelerator in modo molto simile a quanto abbiamo fatto con PHP. Ecco i passaggi salienti, la procedura completa come al solito è presente nel <a
title="Wiki di Dreamhost: Eaccelerator" href="http://wiki.dreamhost.com/EAccelerator">wiki</a> di Dreamhost.</p><ol><li>Scaricatevi e trasferite nella cartella home del vostro account <a
title="eacinstall.sh " href="http://www.davidesalerno.net/wp-content/uploads/2006/02/eacinstall.sh " target="_blank">questo</a> script di shell</li><li>Date i permessi di esecuzione allo script con il comando sotto ovviamente se avete chiamato lo script in modo diverso da <em>eacinstall.sh</em> sostituite il nome del vostro script nel comando sotto<br
/> <code>chmod +x eacinstall.sh</code></li><li>Eseguite lo script con il comando sotto ed aspettate che termini l&#8217;esecuzione<code>./eacinstall.sh</code></li><li>Andate a modificare il file php.ini che se avete seguito le indicazioni sopra dovrebbe trovarsi nella directory<br
/> <code>/home/username/yourdomain.com/cgi-bin/php.ini</code></li><li> Trovate le righe<code>; Directory in which the loadable extensions (modules) reside.<br
/> extension_dir = "./"<br
/> </code></li><li>Sostituitele con<code>; Directory in which the loadable extensions (modules) reside.<br
/> extension_dir = "/home/username/php5/lib/php/extensions"<br
/> </code></li><li>Al termine del file andate invece ad inserire le seguenti righe<code>[eaccelerator]<br
/> extension="eaccelerator.so"<br
/> eaccelerator.allowed_admin_path="/home/davidesalerno/davidesalerno.net"<br
/> eaccelerator.shm_size="16"<br
/> eaccelerator.cache_dir="/home/davidesalerno/tmp/eaccelerator"<br
/> eaccelerator.enable="1"<br
/> eaccelerator.optimizer="1"<br
/> eaccelerator.check_mtime="1"<br
/> eaccelerator.debug="0"<br
/> eaccelerator.filter=""<br
/> eaccelerator.shm_max="0"<br
/> eaccelerator.shm_ttl="0"<br
/> eaccelerator.shm_prune_period="0"<br
/> eaccelerator.shm_only="0"<br
/> eaccelerator.compress="1"<br
/> eaccelerator.compress_level="9"</code></li></ol><p>Bene anche eAccelerator è installato, ora non ci resta che avviare il tutto.</p><h4>Avviamo la nostra versione di PHP con eAccelerator</h4><p>Ora che avete installato la vostra versione di PHP con eAccelerator come estensione non vi resterà che avviare il tutto. Per una questione di ottimizzazione delle prestazioni avvieremo PHP come processo fcgi  (fast-cgi) e non semplicemente come processo cgi: dovete però aver attivato nel <a
title="Dreamhost fast-cgi" href="https://panel.dreamhost.com/index.cgi?tree=domain.manage&amp;" target="_blank">vostro pannello di controllo di Dreamhost</a> l&#8217;apposita opzione che vi permette di avere PHP come processo fcgi per il dominio in questione (quello su cui abbiamo lavorato finora).</p><p>Fatto questo dovrete andare a modificare il file .htaccess che trovate nella posizione</p><p><code>yourdomain.com/.htaccess<br
/> </code><br
/> aggiungendo le seguenti righe</p><p><code>Options +ExecCGI<br
/> AddHandler fastcgi-script fcg fcgi fpl<br
/> AddHandler php5-fastcgi .php<br
/> Action php5-fastcgi /php5-wrapper.fcgi<br
/> </code><br
/> Fatto ciò tutto dovrebbe funzionare. Se riscontrate dei problemi fate riferimento come al solito al <a
title="Wiki di Dreamhost: PHP FastCGI" href="http://wiki.dreamhost.com/PHP_FastCGI" target="_blank">wiki</a> di Dreamhost. Una cosa molto comune che potrebbe causarvi dei malfunzionamenti è il fatto che non avete terminato tutti i processi fcgi prima di avviare la vostra versione di PHP com processo fcgi. Vi ricordo che per terminare un processo da shell si usa il comando <em>kill -9 PID</em> dove PID è l&#8217;ID del processo che volete uccidere che vi restituisce il comando ps aux.</p><p>Per esempio se avete come risposta al comando <em>ps aux<br
/> </em><br
/> <code>[dinar]$ ps aux<br
/> USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND<br
/> user    682  0.0  0.1 17180 6148 ?        Ss   15:27   0:00 /dh/cgi-system/php5.cgi<br
/> user  21117  0.1  0.3 23872 11924 ?       S    15:27   0:00 /dh/cgi-system/php5.cgi<br
/> user   7576  0.0  0.3 23872 11920 ?       S    15:27   0:00 /dh/cgi-system/php5.cgi<br
/> user  23783  0.5  0.0  2632 1500 pts/7    S    15:30   0:00 -bash<br
/> user  20840  0.0  0.0  2488  860 pts/7    R+   15:30   0:00 ps aux<br
/> </code><br
/> Per terminare il primo processo, quello con PID 682 dovete dare il comando</p><p><code>kill -9 682<br
/> </code><br
/> Bene credo di avervi annoiato abbastanza per oggi anche se spero che queste indicazioni servano per velocizzare la vostra installazione di WordPress su Dreamhost.<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2009/01/come-velocizzare-wordpress-su-dreamhost-con-apc/" rel="bookmark" title="20 gennaio 2009">Come Velocizzare WordPress Su Dreamhost Con APC</a></li><li><a
href="http://www.davidesalerno.net/2006/11/dreamhost-w3c-validator-e-phpsessid-la-soluzione/" rel="bookmark" title="9 novembre 2006">Dreamhost, W3C Validator e PHPSESSID</a></li><li><a
href="http://www.davidesalerno.net/2008/04/convertire-la-propria-installazione-standard-di-wordpress-a-subversion-svn/" rel="bookmark" title="18 aprile 2008">Convertire La Propria Installazione Standard Di WordPress A Subversion (SVN)</a></li><li><a
href="http://www.davidesalerno.net/2008/01/installare-leopard-dal-tuo-ipod-o-da-un-hd-esterno/" rel="bookmark" title="19 gennaio 2008">Installare Leopard dal tuo iPod o da un HD esterno</a></li><li><a
href="http://www.davidesalerno.net/2007/11/integrare-lifeblog-con-wordpress-per-postare-dal-tuo-nokia/" rel="bookmark" title="24 novembre 2007">Integrare Lifeblog con WordPress per postare dal tuo Nokia</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2008/05/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>5 Motivi Per Cui Django Stenta A Diffondersi</title><link>http://www.davidesalerno.net/2008/04/5-motivi-per-cui-django-stenta-a-diffondersi/</link> <comments>http://www.davidesalerno.net/2008/04/5-motivi-per-cui-django-stenta-a-diffondersi/#comments</comments> <pubDate>Mon, 28 Apr 2008 20:11:27 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Opinioni]]></category> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[applicazione]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[complicato]]></category> <category><![CDATA[django]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[hosting]]></category> <category><![CDATA[installazione]]></category> <category><![CDATA[mvc]]></category> <category><![CDATA[php]]></category> <category><![CDATA[python]]></category> <category><![CDATA[server dedicato]]></category> <category><![CDATA[sviluppo]]></category> <category><![CDATA[vps]]></category> <category><![CDATA[web]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=1153</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>Negli ultimi anni, tra i framework per lo sviluppo di applicazioni orientate al web, si è fatto un gran parlare di <strong><a
title="Django" href="http://www.djangoproject.com/" target="_blank">Django</a></strong> che sembra aver fatto breccia nel cuore e nella mente di molti sviluppatori per svariate ragioni. Premesso il fatto che se <strong>Python</strong> è stato scelto da <strong>Google</strong> come unico linguaggio se volete che le vostre applicazioni possano essere ospitate sui web server dell&#8217;azienda di Mountain View tramite <strong><a
title="Google AppEngine" href="http://code.google.com/appengine/" target="_blank">Google AppEngine</a></strong>, e che Django è l&#8217;unico framework per cui viene fornito un specie di supporto un motivo ci sarà, io sinceramente trovo ancora un pò scomodo e non vantaggioso come molti sostengono in giro, sviluppare applicazioni web con questo framework MVC.</p><p>Ecco sostanzialmente le ragioni per cui non trovo Django così fantastico come si dice in giro.</p><h4>Installazione tutt&#8217;altro che semplice</h4><p>Il primo grande ostacolo che si trova è proprio l&#8217;installazione che è tutt&#8217;altro che elementare sia in locale (su Windows e su Mac) che in remoto sul vostro web server. Se infatti siete degli amanti di <a
title="MAMP" href="http://www.mamp.info/" target="_blank">MAMP</a>, <a
title="WAMP" href="http://www.wampserver.com/" target="_blank">WAMP</a>, <a
title="XAMMP" href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMMP</a> e simili che fino ad ora vi hanno permesso di testare in locale i vostri script in PHP e MySQL, troverete non poche difficoltà nell&#8217;installazione non tanto di Django quanto del modulo di <a
title="MySQL per Python" href="http://sourceforge.net/projects/mysql-python" target="_blank">MySQL per Python</a> e sinceramente senza l&#8217;appoggio di un database vi potete divertire ben poco a sviluppare applicazioni che abbiano un senso.</p><p>Passando all&#8217;installazione lato server i problemi non sono minori, anzi. Se non avete la possibilità di accedere via ssh al vostro spazio web potete anche sognarvi di usare Django per le vostre applicazioni web. Se per esempio siete su Dreamhost e quindi avete questa possibilità, l&#8217;installazione è tutt&#8217;altro che semplice come potete leggere nel <a
title="Django" href="http://wiki.dreamhost.com/index.php/Django" target="_blank">wiki</a>. L&#8217;ideale sarebbe quindi avere un VPS (Virtual Private Server) se non addirittura un server dedicato, ma non tutti purtroppo se lo possono permettere.</p><h4>Documentazione tutta in Inglese</h4><p>Se siete degli sviluppatori o pseudo tali e non avete una buona conoscenza dell&#8217;inglese (almeno quello volgarmente detto <em>tecnico</em>) vi consiglio di darvi all&#8217;ippica perchè siete tagliati fuori. In ogni caso anche se siete poliglotti e l&#8217;inglese per voi non è un problema, scommetto che avere della documentazione scritta in italiano non vi dispiacerebbe vero? Ecco un&#8217;altra nota dolente: la documentazione ufficiale è tutta in inglese.</p><p>Il <a
title="Djangobook" href="http://www.djangobook.com/" target="_blank">Django book</a> è davvero un&#8217;ottima risorsa, però almeno all&#8217;inizio per prendere confidenza con il nuovo ambiente di sviluppo leggere qualcosa in italiano non farebbe affatto male. Purtroppo a parte qualche tutorial e qualche guida su come risolvere i problemi più comuni, in italiano non si trova praticamente niente.</p><p>Vi consiglio pertanto un bel corso di inglese prima di iniziare.</p><h4>Hosting difficile da trovare</h4><p>Come detto in precedenza per installare Django ci vuole per forza di cose un accesso SSH, quindi non potrete ospitare i vostri capolavori su un qualsiasi spazio web. Specialmente in Italia, se avete un normalissimo contratto di hosting, magari a basso prezzo, non potrete installare il framework MVC (che io sappia a parte <a
title="UnBit" href="http://www.unbit.it" target="_blank">UnBit</a> non ci sono altri provider che offrono normali servizi di hosting Django-ready). Quindi o vi toccherà emigrare all&#8217;estero presso Dreamhost o <a
title="Django friendly hosting" href="http://code.djangoproject.com/wiki/DjangoFriendlyWebHosts" target="_blank">altri celebri provider</a> che fanno dell&#8217;overselling il loro cavallo di battaglia oppure dovrete seriamente pensare di mettere mano al portafogli e prendervi un VPS o se proprio potete spendere un bel server dedicato.</p><h4>Performance eccezionali?</h4><p>Ok, ma per la vostra idea geniale ci vuole una realizzazione efficientissima altrimenti la vostra applicazione web 2.0 sarà lentissima quando milioni di persone la utilizzeranno contemporaneamente: ecco perchè vi serve Django!!!</p><p>A me la storia delle prestazioni fantasmagoriche di Django non convince troppo. Rispetto a PHP sarà pure più efficiente ed ottimizzato&#8230; ma come potete leggere nei punti sopra, quasi sempre le applicazioni sviluppate con Django sono ospitate o su VPS o su server dedicati che magari usano <a
title="Lighttpd" href="http://www.lighttpd.net/" target="_blank">Lighttpd</a> se non <a
title="Litespeed" href="http://www.litespeed.com/" target="_blank">LiteSpeed</a> impostazioni di cache a livello di MySQL che rendono le query verso il database, tutto questo sommato alla possibilità di cachare le pagine tramite Django le molto rapide ecc ecc&#8230;</p><p>Provate ad hostare le vostre applicazioni fatte in PHP (tanto per fare un esempio) su un VPS o un server dedicato come sopra e&#8230; se non programmate con i piedi le prestazioni non saranno molto differenti.</p><h4>CodeIgniter &amp; Co.</h4><p>Ok l&#8217;ultimo mito che è rimasto da sfatare è la semplicità con cui si programma in Django che non è paragonabile a nessun altro framework. Quando si guarda uno screencast e le cose le fa un altro è tutto semplice. Se poi le cose sono degli esempietti stupidi sono ancora più semplici.</p><p>Django è un framework MVC (Model-View-Controller) come ce ne sono a decine in giro per i linguaggi più svariati. Se non sapete da dove iniziare la vostra applicazione, il fatto che avete a disposizione Django non vi aiuterà molto. Rispetto a framework pesanti come <a
title="RoR" href="http://www.rubyonrails.org/">Ruby On Rails</a> o  <a
title="Symphony" href="http://www.symfony-project.org/" target="_blank">Symphony</a> ha sicuramente il suo perchè e sicuramente vi aiuterà a sviluppare applicazioni più snelle e più veloci. Sempre se riuscite ad installarlo, sempre se avete dove installarlo, sempre se riuscite a sviluppare in locale e poi mettere tutto online ecc ecc</p><p>Ora dico io: ci sono degli ottimi framework MVC come <a
title="CodeIgniter" href="http://codeigniter.com/" target="_blank">CodeIgniter</a> che vi offrono la stessa semplicità di sviluppo, più o meno le stesse basi da cui partire ma non dovrete diventare matti nel trovare una soluzione per installarlo in locale piuttosto che su un servizio di hosting che non prosciughi le vostre tasche.</p><p>Perchè andarvi a complicarvi la vita con Django?</p><p>Forse adesso non parlo con cognizione di causa perchè mi ha fatto diventare matto per installarlo in locale e poi in remoto e non sarò riuscito ancora ad apprezzarne i vantaggi&#8230; però a tutt&#8217;oggi definirlo il <a
title="Visual Basic per il Web" href="http://qix.it/2007/09/visual-basic-per-il-web/" target="_blank"><em>Visual Basic per il Web</em></a> mi sembra un paragone abbastanza pittoresco. D&#8217;altronde Django solo per installarlo necessita di 3 giorni di ferie: io Visual Basic lo ricordo di molto più semplice utilizzo o sbaglio?</p><p>Spero di avere <a
title="Fullo" href="http://www.fullo.net/blog/" target="_blank">qualche</a> sostenitore. Voi come la pensate?<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2007/10/3-x-3-x-3-i-miei-servizi-di-hosting/" rel="bookmark" title="30 ottobre 2007">3 x 3 x 3 &#8211; I Miei Servizi di Hosting</a></li><li><a
href="http://www.davidesalerno.net/2007/12/come-proteggere-le-tue-immagini-dagli-hotlink-e-risparmiare-banda/" rel="bookmark" title="3 dicembre 2007">Come proteggere le tue immagini dagli hotlink e risparmiare banda</a></li><li><a
href="http://www.davidesalerno.net/2008/05/come-velocizzare-wordpress-su-dreamhost-con-eaccelerator/" rel="bookmark" title="2 maggio 2008">Come Velocizzare WordPress Su Dreamhost Con eAccelerator</a></li><li><a
href="http://www.davidesalerno.net/2007/12/1-anno-di-non-rassegnata-stampa-con-diretta-di-24h/" rel="bookmark" title="2 dicembre 2007">1 anno di Non Rassegnata Stampa con diretta di 24h</a></li><li><a
href="http://www.davidesalerno.net/2008/05/google-maps-api-longitudine-latitudine-php-indirizzo-geocoding/" rel="bookmark" title="30 maggio 2008">Ottenere Longitudine E Latidudine Di Un Indirizzo In PHP Con Le Google MAPS API</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2008/04/5-motivi-per-cui-django-stenta-a-diffondersi/feed/</wfw:commentRss> <slash:comments>30</slash:comments> </item> <item><title>Convertire La Propria Installazione Standard Di WordPress A Subversion (SVN)</title><link>http://www.davidesalerno.net/2008/04/convertire-la-propria-installazione-standard-di-wordpress-a-subversion-svn/</link> <comments>http://www.davidesalerno.net/2008/04/convertire-la-propria-installazione-standard-di-wordpress-a-subversion-svn/#comments</comments> <pubDate>Fri, 18 Apr 2008 04:15:17 +0000</pubDate> <dc:creator>Davide Salerno</dc:creator> <category><![CDATA[Programmazione]]></category> <category><![CDATA[Tecnologia]]></category> <category><![CDATA[Varie]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[conversione]]></category> <category><![CDATA[directory]]></category> <category><![CDATA[installazione]]></category> <category><![CDATA[ssh]]></category> <category><![CDATA[subversion]]></category> <category><![CDATA[svn]]></category><guid
isPermaLink="false">http://www.davidesalerno.net/?p=710</guid> <description><![CDATA[ [...]]]></description> <content:encoded><![CDATA[<p>In questi giorni visto tutto l&#8217;<a
title="Napolux e gli exploit di WordPress 2.5" href="http://www.napolux.com/2008/04/16/due-exploit-per-wordpress-25/" target="_blank">allarmismo</a> che è stato fatto circa qualche pecca di sicurezza dell&#8217;ultima versione di <strong>WordPress</strong>, stufo di dover aggiornare ogni volta manualmente la mia installazione di <strong>WordPress</strong> andandomi a scaricare la nuova versione, decomprimendola, disattivando tutti i plugin, facendo backup e contro backup, cancellando i vecchi file e ricaricando i nuovi, ho deciso di seguire i consigli di <a
title="Daniele Salamina" href="http://www.danielesalamina.it/" target="_blank">Daniele</a> e <a
title="Perchè Subversion Rulla" href="http://insertcoin.kurai.eu/491/perche-subversion-rulla/">Federico</a> sulla comodità di Subversion e <strong>ho convertito la mia installazione di WordPress da standard ad aggiornabile via Subversion (svn)</strong> per l&#8217;appunto.</p><p
style="text-align: center;"><a
href="http://www.davidesalerno.net/wp-content/uploads/2006/08/shell_ssh_bash.jpg"><img
class="alignnone size-full wp-image-711" title="shell_ssh_bash" src="http://www.davidesalerno.net/wp-content/uploads/2006/08/shell_ssh_bash.jpg" alt="" width="500" height="361" /></a></p><p>Ecco quello che di saliente c&#8217;è da sapere su questa operazione.</p><h4>Che cosa serve?</h4><p>Oltre ad un pò di tempo, un filino di pazienza e come al solito tanta attenzione a non combinare pasticci strada facendo, l&#8217;unica cosa che realmente serve è un servizio di hosting che vi permetta un accesso via shell al vostro spazio web più comunemente detto via SSH. In Italia non è molto facile trovare degli hosting provider che offrano tutto ciò sempre che non siate particolarmente fortunati e possiate permettervi un VPS se non addirittura un server dedicato. All&#8217;estero ed in particolare negli USA è molto più facile avere questo tipo di accesso al proprio spazio web e giusto per fare qualche nome se siete su Dreamhost come il sottoscritto siete a cavallo perchè avete tutto il necessario per compiere l&#8217;ardua impresa.</p><h4>Prima di iniziare</h4><p>Un consiglio spassionato, che non vale solo per questa occasione ma ogni qualvolta andate ad aggiornare un qualsiasi CMS, è quello di farvi un backup completo di tutti i file, che potete effettuare via FTP oppure direttamente via SSH (con il comando: cp -rpf blog/ backup_blog/ dove blog/ è la directory dove risiede attualmente il vostro blog e backup_blog è la directory di backup) oltre che del database direttamente dalla dashboard di <strong>WordPress</strong> (Gestione-&gt;Backup) oppure da phpMyAdmin o altre tool che utilizzate per l&#8217;accesso al vostro database.</p><p>Un&#8217;altra cosa importantissima da fare prima di iniziare a fare qualsiasi cosa è disattivare tutti i plugin: ormai nella dashboard di WordPress nella sezione Plugin c&#8217;è il pulsantino magico &#8220;disattiva tutti i plugin&#8221; quindi è un&#8217;operazione che vi costa davvero poco e vi consiglio di farla. Se poi una volta aggiornato <strong>WordPress</strong> ci dovesse essere qualche plugin incompatibile con la nuova versione andandolo a riattivare l&#8217;operazione fallirà ed il plugin rimarrà disattivato evitandovi problemi che a volte posso essere anche non poco rognosi.</p><h4>Effettuiamo la conversione dell&#8217;installazione standard a Subversion</h4><p>Ora che ho la coscienza a posto perchè vi ho avvisato sui rischi che ci sono e su che cosa bisogna fare per avere le spalle coperte, possiamo vedere passo passo cosa bisogna fare via SSH per <strong>convertire la propria installazione da standard ad aggiornabile via Subversion</strong>.</p><ol><li>Create una nuova directory temporanea dentro la quale ci metterete i file della nuova versione di WordPress</li><li>Utilizziamo i comandi di <strong>Subversion</strong> per trasferire i nuovi file di <strong>WordPress</strong> nella directory appena creata</li><li>Copiamo tutti i nostri file e/o cartelle dalla directory della vecchia installazione del blog alla nuova appena creata</li><li>Rinominiamo la directory temporanea creata all&#8217;inizio con lo stesso nome della directory attuale del blog</li><li>Avviate lo script di aggiornamento di <strong>WordPress</strong> e testate che tutto funzioni</li></ol><p>Ecco il dettaglio di ciascun punto descritto sopra. Mi raccomando: il carattere &#8220;$&#8221; che troverete nelle linee sotto non va copiato assieme al resto dei comandi ma sta solo ad indicare che quello che segue è un comando di shell.</p><p>Create una nuova directory temporanea e metteteci dentro con Subversione i file della nuova versione di WordPress.</p><p><code> $ mkdir blognew<br
/> $ cd blognew<br
/> $ svn co http://svn.automattic.com/wordpress/tags/2.5 .</code></p><p>Ovviamente il comando svn co andrà accompagnato dall&#8217;indirizzo della release che volete installare. In questo esempio come potete vedere si va ad installare la 2.5 in ogni caso potete fare riferimento a questo indirizzo <a
class="external free" title="http://svn.automattic.com/wordpress/tags" href="http://svn.automattic.com/wordpress/tags">http://svn.automattic.com/wordpress/tags</a> per sapere qual è l&#8217;indirizzo svn della versione che volete installare.</p><p>Ora copiate il file .htaccess ed il file wp-config dalla vecchia directory alla nuova directory appena creata.</p><p><code> $ cd ../blog<br
/> $ cp -p wp-config.php .htaccess ../blognew</code></p><p>Adesso copiamo i vostri file e/o le vostre cartelle che non sono presenti normalmente in WordPress ma che voi avevate nelle directory della vecchia installazione. Per esempio la cartella <em>immagini</em> o il file <em>wp-pincopallino</em>.</p><p><code>$ cp -rp immmagini wp-pincopallino ../blognew</code></p><p>Ora copiamo tutti i plugin, i temi, le immagini, i file multimediali e tutto ciò che in generale è contenuto dentro /wp-contet/ dalla vecchia directory di installazione alla nuova.</p><p><code>$ cp -rpf wp-content/* ../blognew/wp-content</code></p><p>Ora rinominiamo la nuova directory temporanea con lo stesso nome della directory dove è attualmente installato <strong>WordPress</strong> in modo da andare ad effettuare l&#8217;aggiornamento e la conversione.</p><p><code> $ cd ..<br
/> $ mv blog blog-old<br
/> $ mv blognew blog</code></p><p>Ora che tutto è a posto non vi resta che andare ad eseguire lo script di update che si trova nella cartella wp-admin/upgrade.php per permettere a WordPress di effettuare l&#8217;aggiornamento del database se necessario. Dovrebbe essere tutto a posto, in ogni caso se riscontrate dei problemi potete sempre tornare indietro all&#8217;antico rinominando la vecchia directory di installazione in modo da renderla nuovamente attiva con i comandi:</p><p><code> $ mv blog blognew<br
/> $ mv blog-old blog</code></p><p>Ora ogni volta che vorrete aggiornare la vostra versione di WordPress vi basterà posizionarvi nella directory dove è installato e lanciare l&#8217;aggiornamento via Subversion. Il tutto si può riassumere nei comandi:</p><p><code> $ cd blog<br
/> $ svn up </code></p><p>Facile come bere un bicchiere d&#8217;acqua vero?</p><p>Spero di essere stato sufficientemente chiaro. In ogni caso prima che qualcuno mi faccia qualche cazziatone ci tengo a precisare che non è tutta farina del mio sacco ma ho preso molte informazioni dal <a
title="Wordpress Codex Subersione" href="http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion" target="_blank">Codex</a> anche perchè per questo genere di operazioni è da considerarsi la fonte ufficiale di ogni ispirazione. Per chiarimenti, correzioni ed altro come al solito ci sentiamo nei commenti qui sotto.<p><strong>Forse Collegati:</strong><ul
class="similar-posts"><li><a
href="http://www.davidesalerno.net/2007/04/scplugin-i-comandi-per-subversion-nel-finder-di-mac-os-x/" rel="bookmark" title="17 aprile 2007">SCPlugin: i comandi per Subversion nel Finder di Mac OS X</a></li><li><a
href="http://www.davidesalerno.net/2007/04/wordpress-213-e-2010-in-italiano/" rel="bookmark" title="5 aprile 2007">WordPress 2.1.3 e 2.0.10 in italiano</a></li><li><a
href="http://www.davidesalerno.net/2007/07/wp-db-backup-e-gmail-problemi-di-mime/" rel="bookmark" title="12 luglio 2007">Wp-db-backup e Gmail: problemi di MIME</a></li><li><a
href="http://www.davidesalerno.net/2007/05/rilasciato-wordpress-22/" rel="bookmark" title="16 maggio 2007">Rilasciato WordPress 2.2</a></li><li><a
href="http://www.davidesalerno.net/2007/10/rendi-il-tuo-blog-in-wordpress-iphoneipod-touch-friendly/" rel="bookmark" title="15 ottobre 2007">Rendi il tuo blog in WordPress iPhone/iPod Touch friendly</a></li></ul><p></p> ]]></content:encoded> <wfw:commentRss>http://www.davidesalerno.net/2008/04/convertire-la-propria-installazione-standard-di-wordpress-a-subversion-svn/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 44/161 queries in 1.593 seconds using apc
Object Caching 1628/1863 objects using apc

Served from: www.davidesalerno.net @ 2012-02-09 17:13:08 -->
