<?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>CookedApple &#187; programming</title>
	<atom:link href="http://cookedapple.net/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://cookedapple.net</link>
	<description>All our thoughts. Broadcasted.</description>
	<lastBuildDate>Tue, 24 Aug 2010 10:03:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Facebook API: un fallimento di grande successo</title>
		<link>http://cookedapple.net/2010/08/24/facebook-api-un-fallimento-di-grande-successo/</link>
		<comments>http://cookedapple.net/2010/08/24/facebook-api-un-fallimento-di-grande-successo/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 09:43:59 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[facebook]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=329</guid>
		<description><![CDATA[Le nuove API (Application Programming Interface) annunciate durante la conferenza F8, che dovevano semplificare tanto la vita agli sviluppatori, sono arrivate già da un pò e anzichè semplificarla hanno incasintato ancora di più la vita al programmatore. Già perchè sebbene alcune idee siano molto buone (interfaccia REST, protocollo oAuth 2.0) la documentazione e gli esempi [...]]]></description>
			<content:encoded><![CDATA[<p>Le nuove API (Application Programming Interface) annunciate durante la conferenza F8, che dovevano semplificare tanto la vita agli sviluppatori, sono arrivate già da un pò e anzichè semplificarla hanno incasintato ancora di più la vita al programmatore. Già perchè sebbene alcune idee siano molto buone (interfaccia REST, protocollo oAuth 2.0) la documentazione e gli esempi sono completamente errati e sbagliati, privi di coerenza e nella fattispecie inutilizzabili. E&#8217; una vergogna che il sito con più iscrizioni al mondo si presenti così male dal punto di vista professionale. L&#8217;unico modo per imparare le nuove API è quello di cercare in giro per internet su blog o articoli vari e procedere a TASTONI!</p>
<p><strong>Probabilmente le nuove funzionalità sono state rilasciate in fretta e furia, senza controllare che ciò che rende una libreria o una API utilizzabile: la documentiazione. </strong></p>
<p>Facebook gioca con la pazienza e con la vita dei programmatori (si perchè ovviamente si deve perdere tempo per cercare di capire come funzionano queste API che definirle uscite dal sedere di una vacca è un gran complimento).</p>
<p>Cosa andrebbe fatto:</p>
<ol>
<li> Stilare una VERA guida che indichi cosa si può fare oggi e cosa è sconsigliato</li>
<li>Completare la documentazione</li>
<li>Scrivere esempi funzionanti</li>
<li>Infine riorganizzare la documentazione (com&#8217;erano le vecchie api andava benissimo!)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/08/24/facebook-api-un-fallimento-di-grande-successo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installare CUnit sotto SnowLeopard</title>
		<link>http://cookedapple.net/2010/07/22/installare-cunit-sotto-snowleopard/</link>
		<comments>http://cookedapple.net/2010/07/22/installare-cunit-sotto-snowleopard/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 15:24:56 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[cunit]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=312</guid>
		<description><![CDATA[Il Test Driven Development è una tecnica di design del software che permette di scrivere del buon codice con un ampio tasso di coverage di test automatizzati. Esistono diverse librerie per fare questo, generalmente almeno una per linguaggio, basate tutte sul design di SUnit (originariamente xUnit), il framework di test scritto da Kent Beck (ideatore [...]]]></description>
			<content:encoded><![CDATA[<p>Il Test Driven Development è una tecnica di design del software che permette di scrivere del buon codice con un ampio tasso di coverage di test automatizzati. Esistono diverse librerie per fare questo, generalmente almeno una per linguaggio, basate tutte sul design di SUnit (originariamente xUnit), il framework di test scritto da Kent Beck (ideatore di Extreme Programming).</p>
<p>Non fa eccezione il linguaggio C che possiede diverse librerie di testing, tra cui Check e CUnit. Queste due sono caratterizzate dall&#8217;essere implementate in puro C e non in C++ come ad esempio googletest.</p>
<p>Installare CUnit sotto Mac è molto semplice anche se mi ha dato qualche problema dovuto alle numerose piattaforme su MacOs X ha girato nel corso degli anni (nato su PPC, PPC64, portato su i386 e ora x86_64, senza contare universal che racchiude le due famiglie).</p>
<p>Per prima cosa possiamo installare la libreria da <a href="http://www.macports.org/install.php">MacPort</a>:</p>
<ol>
<li>sudo port install cunit<br />
MacPort  scaricherà, compilerà e installerà CUnit e libncurses</li>
<li>Modificare il path di MacOS X<br />
Purtroppo l&#8217;installazione di port non mi ha aggiunto i path alle librerie e agli include installati tramite MacPort, quindi è necessario modificare il file /etc/paths e aggiungere le seguenti righe:</p>
<pre>/opt/local/
/opt/local/lib
/opt/local/include/</pre>
</li>
<li>Riavviare il Mac per rendere attive le modifiche al path</li>
<li>A questo punto possiamo provare a compilare il <a href="http://cunit.sourceforge.net/example.html">codice di esempio</a> presente sul sito di CUnit con l&#8217;accortezza di specificare l&#8217;architettura e l&#8217;inclusione delle librerie CUnit e Ncurses:
<pre>gcc <strong>-lcunit -lncurses</strong> -Wall example.c -o example <strong>-arch x86_64</strong></pre>
</li>
<li> Il codice di test ora risulta essere compilato e funzionante possiamo lanciarlo con
<pre>./example</pre>
</li>
</ol>
<p>Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/07/22/installare-cunit-sotto-snowleopard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accesso ad un modello in cascata in CakePhp</title>
		<link>http://cookedapple.net/2010/06/09/accesso-ad-un-modello-in-cascata-in-cakephp/</link>
		<comments>http://cookedapple.net/2010/06/09/accesso-ad-un-modello-in-cascata-in-cakephp/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 10:04:43 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[cakephp]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=299</guid>
		<description><![CDATA[CakePhp si è ispirato molto a Ruby On Rails e se ne vedono alcuni tratti nella scrittura del codice del framework, purtroppo a Cake manca l&#8217;eleganza e la compattezza di Ruby. Facendo un esempio è esattamente quello che succede con i prodotti Apple, cos&#8217;ha un pc di diverso da un Mac? Nulla fanno le stesse [...]]]></description>
			<content:encoded><![CDATA[<p>CakePhp si è ispirato molto a Ruby On Rails e se ne vedono alcuni tratti nella scrittura del codice del framework, purtroppo a Cake manca l&#8217;eleganza e la compattezza di Ruby.</p>
<p>Facendo un esempio è esattamente quello che succede con i prodotti Apple, cos&#8217;ha un pc di diverso da un Mac?<br />
Nulla fanno le stesse cose, ma un Mac è decisamente più elegante, un iPhone è più cool e usabile di un Nokia e via dicendo.</p>
<p>Ad esempio immaginiamo questi tre modelli:<br />
Modello1(campi vari, modello2_id) &#8212;&#8211;belongsTo&#8212;-&gt; Modello2(campi vari, modello3_id) &#8212;&#8212;belongsTo&#8212;&#8211;&gt;Modello3(campi_vari)</p>
<p>nel primo modello dovrei dichiarare la seguente relazione:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$belongsTo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'Model2'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'Model3'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
			<span style="color: #0000ff;">'foreignKey'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span>
			<span style="color: #0000ff;">'conditions'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Model2.model3_id = Model3.id'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>che in effetti è molto più lungo del corrispettivo ruby:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">     belongsTo <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#ff3333; font-weight:bold;">:Model2</span></pre></div></div>

<p>difatto la relazione con il Model3 sarebbe gestita dalla relazione specificata nel Model2, cosa non funzionante con CakePhp</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/06/09/accesso-ad-un-modello-in-cascata-in-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DRY up your code e Anti-If&#8230; please!</title>
		<link>http://cookedapple.net/2010/05/29/dry-up-your-code-e-anti-if-please/</link>
		<comments>http://cookedapple.net/2010/05/29/dry-up-your-code-e-anti-if-please/#comments</comments>
		<pubDate>Sat, 29 May 2010 09:14:36 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[anti-if]]></category>
		<category><![CDATA[dry]]></category>
		<category><![CDATA[good practices]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=283</guid>
		<description><![CDATA[Ieri un&#8217;amica mi ha chiesto di spostare il suo sito da un provider ad un altro. Ecco alcuni spunti di riflessione che ho trovato spulciando il codice sorgente: DRY up your code (Don&#8217;t Repeat Yourself) Nel codice erano presenti 4 punti dove modificare i parametri di accesso al database, non era molto più semplice mettere [...]]]></description>
			<content:encoded><![CDATA[<p>Ieri un&#8217;amica mi ha chiesto di spostare il suo sito da un provider ad un altro.</p>
<p>Ecco alcuni spunti di riflessione che ho trovato spulciando il codice sorgente:</p>
<ol>
<li>DRY up your code (Don&#8217;t Repeat Yourself)<br />
Nel codice erano presenti 4 punti dove modificare i parametri di accesso al database, non era molto più semplice mettere tutto in un file di configurazione separato?</li>
<li>Ancora:  DRY up your code (Don&#8217;t Repeat Yourself) e Anti-If (e qui siamo ai livelli di CodingHorror)<br />
Il codice che impostava la home page nel caso non ci fossero richieste specifiche era una interminabile catena di if.</li>
</ol>
<p>Ecco qui un bel esempio da non seguire:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$pid</span><span style="color: #339933;">=</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'0'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'1'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'11'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'2'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'3'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'4'</span> <span style="color: #339933;">||</span>
   <span style="color: #000088;">$pid</span> <span style="color: #339933;">==</span>  <span style="color: #0000ff;">'5'</span> <span style="color: #339933;">||</span>
  <span style="color: #339933;">.....</span>
<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'0'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">Bene, proviamo a rifattorizzare un pò questo codice e renderlo in po più flessibile:</span></p>
<ol>
<li>Creiamo un array di &#8216;pagine&#8217;

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$authirizedPages</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'0'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'11'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'2'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'3'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'4'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'5'</span><span style="color: #339933;">,.......</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'0'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$authirizedPage</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>A questo punto il codice è già molto più flessibile rispetto a prima, basta modificare l&#8217;array di pagine autorizzate.</li>
<li>Il passo successivo è rendere indipendente il codice dalla base dati

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$authirizedPages</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SELECT id FROM pages'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'0'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$authirizedPage</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

</li>
<li>
Ora possiamo anche eliminare una variabile:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'0'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">in_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #990000;">mysql_fetch_array</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SELECT id FROM pages'</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$pid</span> <span style="color: #339933;">=</span><span style="color: #000088;">$HTTP_GET_VARS</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pid'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>A questo punto potremmo anche fermarci, il codice è molto più compatto e flessibile rispetto a prima e l&#8217;aggiunta di una pagina comporta semplicemente l&#8217;aggiunta di un record sul database e nessuna modifica al codice. Questa è e deve essere una buona norma! Codice indipendente e non ripetuto!</li>
</ol>
<p>Qualunque suggerimento ovviamente è ben accetto, solo in questo modo è possibile migliorarsi.</p>
<p>Ciao<br />
P</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/05/29/dry-up-your-code-e-anti-if-please/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePhp, MacOs Snow Leopard, Apache e malditesta</title>
		<link>http://cookedapple.net/2010/05/29/cakephp-macos-snow-leopard-apache-e-malditesta/</link>
		<comments>http://cookedapple.net/2010/05/29/cakephp-macos-snow-leopard-apache-e-malditesta/#comments</comments>
		<pubDate>Sat, 29 May 2010 08:42:59 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[403 forbidden]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache.conf]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[RewriteRule]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=276</guid>
		<description><![CDATA[CakePhp, un mac e Snow Leopard mi hanno causato dei bei malditesta oggi. Il problema principale è che la catena di RewriteRule negli .htaccess non funzionava correttamente per via del fatto che mettevo la root di cakephp sotto la cartella Sites del mio utente, e nonostante abbia modificato /etc/apache2/httpd.conf e il file /etc/apache2/users/&#60;my_user&#62;.conf aggiungendo &#8216;AllowOverride All&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>CakePhp, un mac e Snow Leopard mi hanno causato dei bei malditesta oggi.</p>
<p>Il problema principale è che la catena di RewriteRule negli .htaccess non funzionava correttamente per via del fatto che mettevo la root di cakephp sotto la cartella Sites del mio utente, e nonostante abbia modificato /etc/apache2/httpd.conf e il file /etc/apache2/users/&lt;my_user&gt;.conf aggiungendo &#8216;AllowOverride All&#8217; i file statici nella cartella webroot (come le immagini e i css) non mi venivano serviti.</p>
<p>La mia soluzione con virtual host<br />
1) ho modificato  /etc/apache2/users/&lt;my_user&gt;.conf aggiungendo un virtual host con document root uguale alla root di Cake e impostando &#8216;AllowOverride All&#8217; sulla document root in questo modo:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">Directory</span> <span style="color: #7f007f;">&quot;/Users/&lt;my_user&gt;/Sites/&quot;</span>&gt;
    <span style="color: #00007f;">Options</span> <span style="color: #0000ff;">Indexes</span> MultiViews <span style="color: #0000ff;">FollowSymLinks</span>
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
&lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *&gt;
    <span style="color: #00007f;">DocumentRoot</span> /Users/&lt;my_user&gt;/Sites/MyNewSite
    <span style="color: #00007f;">ServerName</span> mynewsite.dev
    <span style="color: #00007f;">ServerAlias</span> www.mynewsite.dev
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Directory</span> <span style="color: #7f007f;">&quot;/Users/piero/&lt;my_user&gt;/MyNewSite&quot;</span>&gt;
    <span style="color: #00007f;">Options</span> <span style="color: #0000ff;">Indexes</span> MultiViews <span style="color: #0000ff;">FollowSymLinks</span>
    <span style="color: #00007f;">AllowOverride</span> <span style="color: #00007f;">All</span>
    <span style="color: #00007f;">Order</span> <span style="color: #00007f;">allow</span>,<span style="color: #00007f;">deny</span>
    <span style="color: #00007f;">Allow</span> <span style="color: #00007f;">from</span> <span style="color: #00007f;">all</span>
&lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;</pre></div></div>

<p>2) Ho inserito una entry manuale nel file /etc/hosts</p>
<pre>
127.0.0.1	mynewsite.dev
</pre>
<p>Ora funziona tutto correttamente compresi i vari RuleRewrite dei tre .htaccess di cakephp</p>
<p>Ciao<br />
P.</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/05/29/cakephp-macos-snow-leopard-apache-e-malditesta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: Facebook Connect and Role Scope issue</title>
		<link>http://cookedapple.net/2010/04/06/wp-facebookconnect-and-role-scope-issue/</link>
		<comments>http://cookedapple.net/2010/04/06/wp-facebookconnect-and-role-scope-issue/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 18:40:31 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[Role Scoper]]></category>
		<category><![CDATA[wp-facebookconnect]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=268</guid>
		<description><![CDATA[Recently I&#8217;ve developed a very funny website with wordpress and a lots of plugins. With my surprise, after a coupe of week of correct working, some users told me that, after the login with facebook connect, all the site contents, such as menus and posts, aren&#8217;t accessible. That&#8217;s is caused by an incompatibility issue between [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve developed a very funny website with wordpress and a lots of plugins.<br />
With my surprise, after a coupe of week of correct working, some users told me that, after the login with facebook connect, all the site contents, such as menus and posts, aren&#8217;t accessible.</p>
<p>That&#8217;s is caused by an incompatibility issue between Role Scoper and wp-facebookconnect plugins.<br />
I think that after login Role Scoper don&#8217;t recognize the user level of the registred Facebook Users, and so revoke all the permission to them.</p>
<p>My solution consists to decrease the Wp Facebook Connect hooks execution priority to zero:</p>
<ul>
<li>Open wp-contents/plugins/wp-facebookconnect/fbconnect.php</li>
<li>Find the line 93

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'init'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fbc_init_auth'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>this line add an action to wordpress init hook</li>
<li>Decrese the priority of the action adding the priority option after the action name

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'init'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'fbc_init_auth'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</li>
<li>Save and now everything is working fine <img src='http://cookedapple.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/04/06/wp-facebookconnect-and-role-scope-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Back to the future</title>
		<link>http://cookedapple.net/2010/03/19/back-to-the-future/</link>
		<comments>http://cookedapple.net/2010/03/19/back-to-the-future/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:22:11 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[blog]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=259</guid>
		<description><![CDATA[Eccomi qui dopo più di un anno di assenza dal mio blog, che vergogna! Ho in programma di scrivere diversi post nei prossimi giorni che riguardano i miei interessi lavorativi correnti: Sviluppo iPhone Sviluppo di plugin e temi per WordPress Geolocalizzazione con Ruby e GeoKit Stay tuned!]]></description>
			<content:encoded><![CDATA[<p>Eccomi qui dopo più di un anno di assenza dal mio blog, che vergogna!<br />
Ho in programma di scrivere diversi post nei prossimi giorni che riguardano  i miei interessi lavorativi correnti:</p>
<ol>
<li>Sviluppo iPhone</li>
<li>Sviluppo di plugin e temi per WordPress</li>
<li>Geolocalizzazione con Ruby e GeoKit</li>
</ol>
<p>Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2010/03/19/back-to-the-future/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alcune librerie interessanti in Ruby</title>
		<link>http://cookedapple.net/2008/12/11/alcune-librerie-interessanti-in-ruby/</link>
		<comments>http://cookedapple.net/2008/12/11/alcune-librerie-interessanti-in-ruby/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 10:20:04 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[library]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=238</guid>
		<description><![CDATA[Ultimamente ho trovato molto utili o interessanti queste librerie: Ruby Graph Library Implementa una struttura dati a grafo, sulla quale e&#8217; possibile applicare tutti gli algoritmi piu&#8217; comuni sui grafi. Ogni istanza nodo possiede i metodi per aggiungere archi e collegare altri nodi, per gestire vertici, e ciclare sul grafo (anche l&#8217;iteratore non e&#8217; ottimizzato) [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente ho trovato molto utili o interessanti queste librerie:</p>
<p><a href="http://rgl.rubyforge.org" target="_blank">Ruby Graph Library</a><br />
Implementa una struttura dati a <a href="http://it.wikipedia.org/wiki/Grafo" target="_blank">grafo</a>, sulla quale e&#8217; possibile applicare tutti gli algoritmi piu&#8217; comuni sui grafi. Ogni istanza nodo possiede i metodi per aggiungere archi e collegare altri nodi, per gestire vertici, e ciclare sul grafo (anche l&#8217;iteratore non e&#8217; ottimizzato)</p>
<p><a href="http://skynet.rubyforge.org/" target="_blank">Skynet</a><br />
Skynet implementa <a href="http://labs.google.com/papers/mapreduce-osdi04.pdf" target="_blank">MapReduce</a> di Google. MapReduce e&#8217; un modello di programmazione e di elaborazione di dataset enormi. Ecco come Google vi da istantaneamente i risultati della vostra ricerca su un database che rappresenta gran parte di internet. Grazie a questa libreria e&#8217; possibile eseguire processi paralleli su piu macchine. Non solo, estendendo ActiveRecord permette facilmente di utilizzare MapReduce nella vostra applicazione Rails.</p>
<p><a href="http://ruby-prof.rubyforge.org/" target="_blank">RubyProf</a><br />
RubyProf e&#8217; un profilatore delle applicazioni scritte in Ruby, evidenzia i colli di bottiglia e permette di analizzare, attraverso i grafici prodotti, le prestazioni di un determinato segmento di codice.</p>
<p>Bye<br />
Piero</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2008/12/11/alcune-librerie-interessanti-in-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Italian Agile Day 2008!</title>
		<link>http://cookedapple.net/2008/09/29/italian-agile-day-2008/</link>
		<comments>http://cookedapple.net/2008/09/29/italian-agile-day-2008/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 19:58:20 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[agile day]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=233</guid>
		<description><![CDATA[Venerdi&#8217; 21 Novembre 2008 si terrà a Bologna il quinto Italian Agile Day. Si tratta di una conferenza gratuita di un giorno dedicata alle metodologie Agili per lo sviluppo e la gestione dei progetti software rivolta agli sviluppatori, project leaders, IT managers, tester, architetti e coach che hanno esperienze da condividere o che iniziano solo [...]]]></description>
			<content:encoded><![CDATA[<p>Venerdi&#8217; 21 Novembre 2008 si terrà a Bologna il quinto <a href="http://www.agileday.it/" target="_blank">Italian Agile Day</a>. Si tratta di una <strong>conferenza gratuita</strong> di un giorno dedicata alle metodologie Agili per lo sviluppo e la gestione dei progetti software rivolta agli sviluppatori, project leaders, IT managers, tester, architetti e coach che hanno esperienze da condividere o che iniziano solo ora ad interessarsi a queste tematiche. La giornata ha come obiettivo la conoscenza pratica, le esperienze sul campo e un attivo coinvolgimento di tutti i partecipanti. L&#8217;accesso è libero previa registrazione, i posti sono limitati. L&#8217;evento, per la terza volta consecutiva, si auto-finanzierà.</p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2008/09/29/italian-agile-day-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mi ricorda qualcosa che mi è veramente accaduto&#8230;</title>
		<link>http://cookedapple.net/2008/08/12/mi-ricorda-qualcosa-che-mi-e-veramente-accaduto/</link>
		<comments>http://cookedapple.net/2008/08/12/mi-ricorda-qualcosa-che-mi-e-veramente-accaduto/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 14:47:45 +0000</pubDate>
		<dc:creator>Piero Bozzolo</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://cookedapple.net/?p=231</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://www.userfriendly.org/cartoons/archives/08aug/uf011812.gif" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://cookedapple.net/2008/08/12/mi-ricorda-qualcosa-che-mi-e-veramente-accaduto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
