<?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"
	>

<channel>
	<title>Basmati Tree</title>
	<atom:link href="http://www.basmatitree.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.basmatitree.net</link>
	<description>nerdish recipes for a better tomorrow</description>
	<pubDate>Fri, 04 Jul 2008 07:56:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>PHP &#038; UTF-8: qualche indicazione utile</title>
		<link>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/</link>
		<comments>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/#comments</comments>
		<pubDate>Tue, 20 May 2008 21:08:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[cheatsheet]]></category>

		<category><![CDATA[tutorial]]></category>

		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=13</guid>
		<description><![CDATA[Una delle grandi carenze di PHP è il supporto della codifica UTF8. Questo significa che gran parte delle funzioni (in particolare quelle che agiscono su stringhe) potrebbero dare risultati inaspettati quando gli si passano come parametri stringhe multi-byte. Quindi bisogna prestare attenzione ad alcuni particolari nella realizzazione di un sito multilingua in PHP e MySQL.
In [...]]]></description>
			<content:encoded><![CDATA[<p>Una delle grandi carenze di PHP è il supporto della codifica UTF8. Questo significa che gran parte delle funzioni (in particolare quelle che agiscono su stringhe) potrebbero dare risultati inaspettati quando gli si passano come parametri stringhe multi-byte. Quindi bisogna prestare attenzione ad alcuni particolari nella realizzazione di un sito multilingua in PHP e MySQL.</p>
<p>In attesa della versione 6 di PHP che dovrebbe supportare nativamente la codifica UTF8, ecco qualche indicazione utile a tal proposito.</p>
<h3>I file e il bug del BOM</h3>
<p>Salva tutti i file che compongono l&#8217;applicazione (sia template che script PHP) in utf-8. Ho sentito parlare di un <a title="PHP BOM bug" href="http://bugs.php.net/bug.php?id=22108"  target="_blank">bug</a> connesso alla presenza o meno del BOM (<a title="Byte Order Mark su Wikipedia" href="http://it.wikipedia.org/wiki/Byte_Order_Mark"  target="_blank">Byte Order Mark</a>) all&#8217;inizio del file. Su Windows usando Ultra-Edit o Eclipse non ho mai sperimentato il problema, quindi se pensi che la tua applicazione dia il famoso errore &#8220;headers already sent&#8221; per questo motivo, passa ad uno di questi editor.</p>
<p>Puoi continuare a salvare i css e i javascript in formato ASCII, anche per risparmiare qualche byte, a meno che non pensi di includere delle stringhe multi-byte nel javascript.</p>
<h3>I dati</h3>
<p>Ricorda di creare i database, le tabelle e i campi in MySQL con <em>character set</em> utf8 e <em>collation </em>utf_8_general_ci. Questo può essere fatto molto facilmente se si usano strumenti come PhpMyAdmin, perchè per ognuna di queste operazioni viene data la possibilità di specificare la <em>collation</em>.</p>
<h3>La connessione</h3>
<p>Accertati che la connessione tra PHP e MySQL avvenga nel giusto formato. Pertanto, appena effettuata la connessione, esegui sempre le due query seguenti:</p>
<pre>SET NAMES 'utf8' COLLATE 'utf8_general_ci'
SET CHARACTER SET utf8<em>
</em></pre>
<h3>Gli headers HTTP</h3>
<p>Prima di qualsiasi output nello script, assicurati che anche la connessione HTTP avvenga in utf-8, eseguendo il seguente comando:</p>
<pre>header('Content-type: text/html; charset=utf-8');</pre>
<p>E&#8217; consigliabile, poi, ripetere l&#8217;informazione anche all&#8217;interno della pagina HTML stessa, includendo nell&#8217;<em>head </em>la riga:</p>
<pre>&lt;meta http-equiv="Content-type" value="text/html; charset=UTF-8" /&gt;</pre>
<p>Questo ovviamente nel caso più comune, ossia se l&#8217;output dello script è HTML o XHTML. Se stai producendo XML i due comandi sarebbero rispettivamente:</p>
<pre>header('Content-type: text/xml; charset=utf-8');</pre>
<p>e, all&#8217;inizio dell&#8217;XML:</p>
<pre>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</pre>
<h3>Le funzioni &#8220;pericolose&#8221; di PHP</h3>
<p>Finita la fase preparatoria, puoi passare alla realizzazione dello script vero e proprio, momento in cui avrai a che fare con le numerose funzioni di PHP che potrebbero crearti grossi problemi se usate in un ambiente utf8 come quello appena creato. Puoi trovare un <a title="Handling UTF-8 with PHP" href="http://www.phpwact.org/php/i18n/utf-8"  target="_blank">elenco minuzioso di tutte le possibili &#8220;trappole&#8221;</a> nell&#8217;ottima documentazione di <a title="PHP WACT" href="http://www.phpwact.org/"  target="_blank">WACT</a>.</p>
<p>A questo punto dovrai scegliere una delle seguenti strategie per aggirare il problema:</p>
<ol>
<li>usare l&#8217;estensione mbstring impostando l&#8217;overloading delle funzioni &#8220;standard&#8221;</li>
<li>usare l&#8217;estensione mbstring sostituendo manualmente le funzioni &#8220;standard&#8221;</li>
<li>usare una libreria dedicata come <a title="PHP UTF-8 library" href="http://sourceforge.net/projects/phputf8"  target="_blank">PHP UTF-8</a></li>
<li>usare PHP UTF-8 <strong>e</strong> mbstring</li>
</ol>
<p>Le alternative che ho elencato sono in ordine inverso di preferibilità.</p>
<p>La prima soluzione è infatti &#8220;quick and dirty&#8221; e può tornare molto utile se si intende adattare script già esistenti ad un ambiente utf-8. In pratica si tratta di installare l&#8217;estensione <a title="Multi Byte String PHP Extension" href="http://www.php.net/mbstring"  target="_blank">mbstring </a>di PHP e poi dirgli di sostituire automaticamente molte delle funzioni &#8220;pericolose&#8221; con la loro alternativa multibyte. Per fare ciò basta inserire nel php.ini la seguente riga:</p>
<pre>mbstring.func_overload = 7;</pre>
<p>La soluzione può sembrare la migliore, ma potresti trovarti nei guai nel momento in cui vuoi lavorare, ad esempio, su un file binario o su un CSV salvato come ASCII.</p>
<p>Perciò potresti passare alla seconda soluzione, ossia sostituire manualmente i vari <em>strlen</em>, <em>strtoupper </em>eccetera in <em>mb_strlen</em>, <em>mb_strtoupper</em>&#8230;</p>
<p>Ma forse la soluzione migliore è quella di usare la libreria PHP UTF-8, che usa alternativamente le funzioni mbstring qualora fossero presenti sul server o una versione alternativa per i server shared o in tutte quelle occasioni in cui non puoi installare estensioni.</p>
<h3>Le entities</h3>
<p>A questo punto hai affrontato quasi tutte le insidie (leggendo l&#8217;<a title="Handling UTF-8 with PHP" href="http://www.phpwact.org/php/i18n/utf-8"  target="_blank">elenco di cui sopra</a> ne scopro sempre di più!) dell&#8217;utf-8 in PHP e puoi goderti un piccolo lato positivo: puoi utilizzare i caratteri accentati nell&#8217;HTML senza bisogno delle relative entities. Quindi perchè non sostituire la vecchia funzione htmlentities con la nuovo utf8_entities?</p>
<pre>function utf8_entities($str) {</pre>
<pre>	return htmlentities($str, ENT_QUOTES, 'UTF-8');</pre>
<pre>}</pre>
<h3>Ringraziamenti</h3>
<p>Molte delle informazioni contenute in questo tutorial sono prese dall&#8217;ottimo articolo <a title="PHP UTF-8 cheatsheet" href="http://www.nicknettleton.com/zine/php/php-utf-8-cheatsheet"  target="_blank">PHP UTF-8 cheatsheet</a> di Nick Nettleton e dalla già citata documentazione di PHP WACT. Grazie ad entrambi per i preziosi consigli.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/20/php-utf8-qualche-indicazione-utile/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Thanks to&#8230;</title>
		<link>http://www.basmatitree.net/2008/05/15/thanks-to/</link>
		<comments>http://www.basmatitree.net/2008/05/15/thanks-to/#comments</comments>
		<pubDate>Thu, 15 May 2008 17:59:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=12</guid>
		<description><![CDATA[I wish to thank the following website for featuring and linking basmatitree.net: (in no particular order)

inspiredology.com
Unmatched Style
BestWebGallery
LinkCreme
CSS Remix
Shottie Work
Web Newly
CSS Loggia
Ala Brasil
Most Inspired
The Daily Slurp
Wp Wordpress
We Love WP
Fuel your creativity
Inspiration Up
CSS Star
CSS Design Yorkshire
Urbantrash CSS Gallery
CSSBag
CSS Built
screenfluent
sharebrain
PureBlogging
FrancescoMugnai.com
AlecRios.com
BigOwners.com
WebDesignerWall
McBride Woodbridge Marketing Blog
DMoghi
JuliusDesign
SixRevisions
Vandelay Design
MakeFive

]]></description>
			<content:encoded><![CDATA[<p>I wish to thank the following website for featuring and linking <a title="basmatitree.net" href="http://www.basmatitree.net" >basmatitree.net</a>: (in no particular order)</p>
<ul>
<li><a title="inspiredology.com" href="http://inspiredology.com/web-design/fighting-against-web-20-part-4-great-grunge-designs/"  target="_blank">inspiredology.com</a></li>
<li><a title="Unmatched Style" href="http://www.unmatchedstyle.com/gallery/basmatitreenet.php"  target="_blank">Unmatched Style</a></li>
<li><a title="BestWebGallery" href="http://bestwebgallery.com/2008/04/29/basmati-tree/"  target="_blank">BestWebGallery</a></li>
<li><a title="LinkCreme" href="http://www.linkcreme.com/2008/04/28/basmatitree/"  target="_blank">LinkCreme</a></li>
<li><a title="CSS Remix" href="http://cssremix.com/sites/detail/basmati-tree/"  target="_blank">CSS Remix</a></li>
<li><a title="Shottie Work" href="http://www.shottiework.com/?p=305"  target="_blank">Shottie Work</a></li>
<li><a title="Web Newly" href="http://www.webnewly.com/?p=1090"  target="_blank">Web Newly</a></li>
<li><a title="CSS Loggia" href="http://www.cssloggia.com/2008/04/19/basmati-tree/"  target="_blank">CSS Loggia</a></li>
<li><a title="Ala Brasil" href="http://www.alabrasil.com/2008/04/16/basmati-tree/"  target="_blank">Ala Brasil</a></li>
<li><a title="Most Inspired" href="http://www.mostinspired.com/sites/view/e7c2c6fe439299778299c67a69990905"  target="_blank">Most Inspired</a></li>
<li><a title="The Daily Slurp" href="http://www.dailyslurp.com/default.aspx?dts=4/22/2008"  target="_blank">The Daily Slurp</a></li>
<li><a title="Wp Wordpress" href="http://www.wp-wordpress.com/themes-and-tricks/basmati-tree"  target="_blank">Wp Wordpress</a></li>
<li><a title="We Love WP" href="http://welovewp.com/gallery/personal-gallery/basmati-tree/"  target="_blank">We Love WP</a></li>
<li><a title="Fuel your creativity" href="http://www.fuelyourcreativity.com/2008/04/14/30-inspiring-web-designs/"  target="_blank">Fuel your creativity</a></li>
<li><a title="Inspiration Up" href="http://inspirationup.com/2008/05/20/basmati-tree/"  target="_blank">Inspiration Up</a></li>
<li><a title="CSS Star" href="http://www.cssstar.com/2008/05/20/basmati-tree/"  target="_blank">CSS Star</a></li>
<li><a title="CSS Design Yorkshire" href="http://css-design-yorkshire.com/index.html"  target="_blank">CSS Design Yorkshire</a></li>
<li><a title="Urbantrash CSS Gallery" href="http://www.urbantrash.net/cssgallery/2008/05/23/basmati-tree/"  target="_blank">Urbantrash CSS Gallery</a></li>
<li><a title="CSSBag" href="http://www.cssbag.com/showcase/basmatitree.net"  target="_blank">CSSBag</a></li>
<li><a title="CSS Built" href="http://cssbuilt.com/index.php/2008/05/24/basmatitreenet/"  target="_blank">CSS Built</a></li>
<li><a title="screenfluent" href="http://http://screenfluent.com/view/www.basmatitree.net"  target="_blank">screenfluent</a></li>
<li><a title="sharebrain" href="http://sharebrain.info/showcase/basmatitreenet/"  target="_blank">sharebrain</a></li>
<li><a title="PureBlogging" href="http://www.pureblogging.com/2008/05/26/blog-designs-that-stand-out/"  target="_blank">PureBlogging</a></li>
<li><a title="FrancescoMugnai.com" href="http://blogof.francescomugnai.com/2008/05/25-finger-lickin-good-wordpress-layouts/"  target="_blank">FrancescoMugnai.com</a></li>
<li><a title="AlecRios.com" href="http://alecrios.com/more-creative-blog-designs"  target="_blank">AlecRios.com</a></li>
<li><a title="BigOwners.com" href="http://bigowners.com/2008/05/10/basmatitree/"  target="_blank">BigOwners.com</a></li>
<li><a title="WebDesignerWall" href="http://www.webdesignerwall.com/trends/2008-design-trends/"  target="_blank">WebDesignerWall</a></li>
<li><a title="Mc Bride Woodbridge Marketing Blog" href="http://blog.mcbridewoodbridge.com/2008/06/14/the-changing-look-of-websites/"  target="_blank">McBride Woodbridge Marketing Blog</a></li>
<li><a title="DMoghi" href="http://dmoghi.blogspot.com/2008/06/design-trends-in-2008.html"  target="_blank">DMoghi</a></li>
<li><a title="JuliusDesign" href="http://www.juliusdesign.net/vintage-design-inspiration/"  target="_blank">JuliusDesign</a></li>
<li><a title="SixRevisions" href="http://sixrevisions.com/web_design/wordpress_designs/"  target="_blank">SixRevisions</a></li>
<li><a title="Vandelay Design" href="http://vandelaydesign.com/blog/galleries/artistic-websites-two/"  target="_blank">Vandelay Design</a></li>
<li><a title="MakeFive" href="http://www.makefive.com/categories/news-business/design/the-best-css-designed-websites-of-2008/nominees"  target="_blank">MakeFive</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/15/thanks-to/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Il mio primo tema per WordPress</title>
		<link>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/</link>
		<comments>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/#comments</comments>
		<pubDate>Fri, 02 May 2008 09:37:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Temi Wordpress]]></category>

		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=9</guid>
		<description><![CDATA[Dopo qualche settimana di lavoro, finalmente rilascio il mio primo tema per WordPress&#8230;
La caratteristica principale è il modo in cui vengono visualizzati i post in homepage: il primo occupa una colonna, mentre quelli successivi sono disposti su tre colonne.
Le sidebars sono 4 e sono disposte in fondo alla pagina.
Il tema supporta i widget, 2 livelli [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo qualche settimana di lavoro, finalmente rilascio il mio primo tema per WordPress&#8230;</p>
<p>La caratteristica principale è il modo in cui vengono visualizzati i post in homepage: il primo occupa una colonna, mentre quelli successivi sono disposti su tre colonne.</p>
<p>Le sidebars sono 4 e sono disposte in fondo alla pagina.</p>
<p>Il tema supporta i widget, 2 livelli di &#8220;drop-down&#8221; menù e fa uso estensivo di tooltips per visualizzare un maggior numero di informazioni in poco spazio.</p>
<p><a title="BT01 - Red Ceramic Wordpress Theme" href="http://www.basmatitree.net/uploads/BT01/BT01.zip" >Scarica BT01 - Red Ceramic</a></p>
<p><a href="http://www.basmatitree.net/wp-content/uploads/2008/05/bt01_01.jpg"  rel="lightbox"><img class="alignnone size-thumbnail wp-image-11" title="Screenshot di BT01" src="http://www.basmatitree.net/wp-content/uploads/2008/05/bt01_01-150x150.jpg" alt="Screenshot di BT01" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/05/02/il-mio-primo-tema-per-wordpress/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FlashMessage jQuery plugin</title>
		<link>http://www.basmatitree.net/2008/03/16/flashmessage-jquery-plugin/</link>
		<comments>http://www.basmatitree.net/2008/03/16/flashmessage-jquery-plugin/#comments</comments>
		<pubDate>Sun, 16 Mar 2008 14:11:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=5</guid>
		<description><![CDATA[Questo è il mio primo plugin per jQuery, anche questo ovviamente in beta! Serve sostanzialmente a far apparire in overlay sulla pagina uno (o più) messaggi e a farli sparire dopo qualche istante. Il tutto chiaramente ispirato a Humanized Messages for jQuery.
Vedi la demo oppure scarica il codice.
La parte meno convincente è ovviamente il posizionamento [...]]]></description>
			<content:encoded><![CDATA[<p>Questo è il mio primo plugin per jQuery, anche questo ovviamente in beta! Serve sostanzialmente a far apparire in overlay sulla pagina uno (o più) messaggi e a farli sparire dopo qualche istante. Il tutto chiaramente ispirato a <a href="http://binarybonsai.com/archives/2007/10/15/humanized-messages-for-jquery/" >Humanized Messages for jQuery</a>.</p>
<p>Vedi la <a href="http://www.basmatitree.net/uploads/jQueryFlashMessage"  target="_blank">demo</a> oppure <a href="http://www.basmatitree.net/uploads/jQueryFlashMessage/flashMessage.jquery.js"  target="_blank">scarica il codice</a>.</p>
<p>La parte meno convincente è ovviamente il posizionamento del blocco che contiene il messaggio. Per ora è centrato orizzontalmente e al 20% dal top verticalmente.</p>
<p>Nella prossima versione cercherò di posizionare il messaggio in maniera più opportuna, innanzi tutto tenendo conto dell&#8217;eventuale scroll verticale della pagina.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/03/16/flashmessage-jquery-plugin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>&#8220;Cesare&#8221; PHP Framework</title>
		<link>http://www.basmatitree.net/2008/03/13/cesare-php-framework/</link>
		<comments>http://www.basmatitree.net/2008/03/13/cesare-php-framework/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 21:20:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[cesare]]></category>

		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.basmatitree.net/?p=3</guid>
		<description><![CDATA[Cesare è un framework per la creazione di siti in PHP.
Il codice è stato scritto da me e da Marco Suadoni nell&#8217;arco di più di un anno, quando eravamo colleghi presso kmstudio.
Cesare si basa sui concetti di semplicità e di modularità che a mio parere sono alla base di qualsiasi software valido.
Da qualche tempo abbiamo [...]]]></description>
			<content:encoded><![CDATA[<p>Cesare è un framework per la creazione di siti in PHP.<br />
Il codice è stato scritto da me e da Marco Suadoni nell&#8217;arco di più di un anno, quando eravamo colleghi presso <a href="http://www.kmstudio.it"  target="_blank">kmstudio</a>.<br />
Cesare si basa sui concetti di semplicità e di modularità che a mio parere sono alla base di qualsiasi software valido.<br />
Da qualche tempo abbiamo rilasciato il framework su licenza GPL. È scaricabile all&#8217;indirizzo <a href="http://code.google.com/p/cesare/"  target="_blank">http://code.google.com/p/cesare/</a>.<br />
Sebbene ancora in beta, e sicuramente ancora pieno di bugs, il framework è stato utilizzato con successo per la costruzione di un numero imprecisato di siti&#8230; direi più di una 40ina!<br />
Scaricate il codice, miglioratelo, criticatelo&#8230; non fate morire Cesare!</p>
<p>Su questo blog presto pubblicherò degli esempi e dei tutorial su come usarlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.basmatitree.net/2008/03/13/cesare-php-framework/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.466 seconds -->
