<?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>Makina-Corpus.Org</title>
	<atom:link href="http://www.makina-corpus.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.makina-corpus.org</link>
	<description>La communauté des développeurs de Makina Corpus</description>
	<pubDate>Tue, 18 Nov 2008 14:11:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Varnish 2 - Quelques changements dans la syntaxe VCL</title>
		<link>http://www.asilax.fr/technoblog/blog/2008/varnish-2-syntaxe-vcl</link>
		<comments>http://www.asilax.fr/technoblog/blog/2008/varnish-2-syntaxe-vcl#comments</comments>
		<pubDate>Tue, 18 Nov 2008 14:11:07 +0000</pubDate>
		<dc:creator>sylvain</dc:creator>
		
		<category><![CDATA[Varnish]]></category>

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

		<category><![CDATA[makina-corpus]]></category>

		<guid isPermaLink="false">tag:www.asilax.fr://fdb5b7f89b0411cee79c69a64461d1d4</guid>
		<description><![CDATA[Varnish est un excellent reverse-proxy permettant de décharger les serveurs d'application web avec une gestion du cache très avancée. Varnish est très performant et il est de plus en plus utilisé. Si vous utilisez Varnish 1, voici ce qu'il faut connaître pour adapter votre fichier VCL pour Varnish 2.]]></description>
			<content:encoded><![CDATA[Varnish est un excellent reverse-proxy permettant de décharger les serveurs d'application web avec une gestion du cache très avancée. Varnish est très performant et il est de plus en plus utilisé. Si vous utilisez Varnish 1, voici ce qu'il faut connaître pour adapter votre fichier VCL pour Varnish 2.]]></content:encoded>
			<wfw:commentRss>http://www.asilax.fr/technoblog/blog/2008/varnish-2-syntaxe-vcl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Plone élu meilleur CMS 2008 !</title>
		<link>http://www.asilax.fr/technoblog/blog/2008/plone-elu-meilleur-cms-2008</link>
		<comments>http://www.asilax.fr/technoblog/blog/2008/plone-elu-meilleur-cms-2008#comments</comments>
		<pubDate>Sun, 16 Nov 2008 22:29:36 +0000</pubDate>
		<dc:creator>sylvain</dc:creator>
		
		<category><![CDATA[OpenSource]]></category>

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

		<category><![CDATA[makina-corpus]]></category>

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

		<guid isPermaLink="false">tag:www.asilax.fr://3ae3ebaf64f400c071ee73c7ae961454</guid>
		<description><![CDATA[Plone est élu meilleur CMS dans la catégorie "non PHP/MySQL", devant dotCMS et DotNetNuke. Félicitation !]]></description>
			<content:encoded><![CDATA[Plone est élu meilleur CMS dans la catégorie "non PHP/MySQL", devant dotCMS et DotNetNuke. Félicitation !]]></content:encoded>
			<wfw:commentRss>http://www.asilax.fr/technoblog/blog/2008/plone-elu-meilleur-cms-2008/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu Party à toulouse le 15 novembre</title>
		<link>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre</link>
		<comments>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre#comments</comments>
		<pubDate>Wed, 05 Nov 2008 16:59:03 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

		<guid isPermaLink="false">tag:www.reponses.net://7d56703f01bc8747b8fbe1fef1710e39</guid>
		<description><![CDATA[Celà commence à se savoir, mais je préfère faire une vraie annonce : une Ubuntu Party aura lieu à toulouse le 15 novembre 2008.


Oui bon en fait elle aura exactement lieu à Odyssud à Blagnac, mais vous aurez compris l'esprit :) C'est la parfaite occasion pour venir assister à des petites...]]></description>
			<content:encoded><![CDATA[ <p>Celà commence à se savoir, mais je préfère faire une vraie annonce&nbsp;: une Ubuntu Party aura lieu à toulouse le 15 novembre 2008.</p>


<p>Oui bon en fait elle aura exactement lieu à Odyssud à Blagnac, mais vous aurez compris l'esprit :) C'est la parfaite occasion pour venir assister à des petites présentations, faire une installation de ubuntu (penser à prendre son PC pour ça) entourée de personnes qui connaissent, ou tout simplement poser des questions et passer un moment agréable. Et puis ce sera l'occasion de venir rencontrer certains membres de la communauté ubuntu  française, car cet évènement est organisé en partenariat entre <a href="http://www.toulibre.org">toulibre</a> et <a href="http://www.ubuntu-fr.org">ubuntu-fr</a></p>


<p><img src="http://www.toulibre.org/pub/2008-11-15-ubuntu-party/ubuntuparty-250px.png" alt="" /></p>


<p>Plus de <a href="http://www.toulibre.org/UbuntuParty">détails ici</a> sur le site de <a href="http://www.toulibre.org">toulibre</a>. Et pour vous y rendre rien de tel que le<a href="http://www.bisonvert.net"> co-voiturage</a>, par exemple <a href="http://www.bisonvert.net">l'excellent bison vert</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ubuntu Party à Toulouse le 15 novembre</title>
		<link>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre</link>
		<comments>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre#comments</comments>
		<pubDate>Wed, 05 Nov 2008 16:59:03 +0000</pubDate>
		<dc:creator>Christophe</dc:creator>
		
		<category><![CDATA[General]]></category>

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

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

		<guid isPermaLink="false">tag:www.reponses.net://d0f00dcfb2b532ea10251dcae2c310ae</guid>
		<description><![CDATA[Celà commence à se savoir, mais bon autant faire une vraie annonce : une Ubuntu Party aura lieu à toulouse le 15 novembre 2008.


Oui bon en fait elle aura lieu à Odyssud à Blagnac, exactement, mais vous aurez compris l'esprit :) C'est la parfaite occasion pour venir assister à des conférences,...]]></description>
			<content:encoded><![CDATA[Celà commence à se savoir, mais bon autant faire une vraie annonce : une Ubuntu Party aura lieu à toulouse le 15 novembre 2008.

Oui bon en fait elle aura lieu à Odyssud à Blagnac, exactement, mais vous aurez compris l'esprit :) C'est la parfaite occasion pour venir assister à des conférences, faire une installation de ubuntu (penser à prendre son PC pour ça), ou tout simplement poser des questions et passer un moment agréable. Et puis ce sera l'occasion de venir rencontrer certains membres de la communauté ubuntu  française, car cet évènement est organisé en partenariat entre <a href="http://www.toulibre.org">toulibre</a> et <a href="http://www.ubuntu-fr.org">ubuntu-fr</a>

<img src="http://www.toulibre.org/pub/2008-11-15-ubuntu-party/ubuntuparty-250px.png" alt="" />

Plus de <a href="http://www.toulibre.org/UbuntuParty">détails ici</a> sur le site de <a href="http://www.toulibre.org">toulibre</a>. Et pour vous y rendre rien de tel que le<a href="http://www.bisonvert.net"> co-voiturage</a>, par exemple <a href="http://www.bisonvert.net">l'excellent bison vert</a>]]></content:encoded>
			<wfw:commentRss>http://www.reponses.net/blog/2008/11/05/534-ubuntu-party-a-toulouse-le-15-novrembre/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Howto install OpenOffice 3 on Ubuntu 8.10 Intrepid</title>
		<link>http://drupal.processus.org/fr/article/howto-install-openoffice-3-ubuntu-810-intreprid</link>
		<comments>http://drupal.processus.org/fr/article/howto-install-openoffice-3-ubuntu-810-intreprid#comments</comments>
		<pubDate>Tue, 04 Nov 2008 21:04:55 +0000</pubDate>
		<dc:creator>pounard</dc:creator>
		
		<category><![CDATA[Blog makina]]></category>

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

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

		<guid isPermaLink="false">47 at http://drupal.processus.org</guid>
		<description><![CDATA[<p>
Since Ubuntu does not provide supported packages for OpenOffice 3.0, here is a simple method to install OOo3.<br/>
</p>
<p><a href="http://drupal.processus.org/fr/article/howto-install-openoffice-3-ubuntu-810-intreprid">en lire plus</a></p>]]></description>
			<content:encoded><![CDATA[Since Ubuntu does not provide supported packages for OpenOffice 3.0, here is a simple method to install OOo3.

<a href="http://drupal.processus.org/fr/article/howto-install-openoffice-3-ubuntu-810-intrepid">en lire plus</a>]]></content:encoded>
			<wfw:commentRss>http://drupal.processus.org/fr/article/howto-install-openoffice-3-ubuntu-810-intreprid/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Prototype Javascript Framework, le Javascript facile</title>
		<link>http://www.asilax.fr/technoblog/blog/2008/prototype-javascript-framework-le-javascript-facile</link>
		<comments>http://www.asilax.fr/technoblog/blog/2008/prototype-javascript-framework-le-javascript-facile#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:01:28 +0000</pubDate>
		<dc:creator>sylvain</dc:creator>
		
		<category><![CDATA[Ajax]]></category>

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

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

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

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

		<category><![CDATA[makina-corpus]]></category>

		<guid isPermaLink="false">tag:www.asilax.fr://bf44dda1db8a23df7283c0ad0d629e09</guid>
		<description><![CDATA[Prototype.js: faciliter l'utilisation d'Ajax et la manipulation du DOM dans vos applications web. Cet article présente cette bibliothèque et des liens vers de nombreuses ressources externes.]]></description>
			<content:encoded><![CDATA[Prototype.js: faciliter l'utilisation d'Ajax et la manipulation du DOM dans vos applications web. Cet article présente cette bibliothèque et des liens vers de nombreuses ressources externes.]]></content:encoded>
			<wfw:commentRss>http://www.asilax.fr/technoblog/blog/2008/prototype-javascript-framework-le-javascript-facile/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installer Plone 3 derrière Varnish avec Buildout</title>
		<link>http://www.asilax.fr/technoblog/blog/2008/installer-plone-3-derriere-varnish-avec-buildout</link>
		<comments>http://www.asilax.fr/technoblog/blog/2008/installer-plone-3-derriere-varnish-avec-buildout#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:00:50 +0000</pubDate>
		<dc:creator>sylvain</dc:creator>
		
		<category><![CDATA[Buildout]]></category>

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

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

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

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

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

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

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

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

		<category><![CDATA[makina-corpus]]></category>

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

		<guid isPermaLink="false">tag:www.asilax.fr://2d8fc4cb6f56abce5da827ea92a2da37</guid>
		<description><![CDATA[Ce tutorial présente la marche à suivre pour déployer le CMS Plone 3 avec Buildout (Apache -> Varnish -> Zope -> Plone), le tout dans un environnement virtuel Python (VirtualEnv). ]]></description>
			<content:encoded><![CDATA[Ce tutorial présente la marche à suivre pour déployer le CMS Plone 3 avec Buildout (Apache -> Varnish -> Zope -> Plone), le tout dans un environnement virtuel Python (VirtualEnv). ]]></content:encoded>
			<wfw:commentRss>http://www.asilax.fr/technoblog/blog/2008/installer-plone-3-derriere-varnish-avec-buildout/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenERP: rapide présentation</title>
		<link>http://www.asilax.fr/technoblog/blog/2008/openerp-petite-presentation</link>
		<comments>http://www.asilax.fr/technoblog/blog/2008/openerp-petite-presentation#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:00:15 +0000</pubDate>
		<dc:creator>sylvain</dc:creator>
		
		<category><![CDATA[Logiciel]]></category>

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

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

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

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

		<category><![CDATA[makina-corpus]]></category>

		<guid isPermaLink="false">tag:www.asilax.fr://6c82bdea5f55c53b65a522b69fc9afe0</guid>
		<description><![CDATA[OpenERP est un ERP distribué gratuitement sous une licence libre (GPL). Développé pour répondre aux besoins complexes et évolutifs d'entreprises en pleine croissance, il est à la fois flexible et puissant. Avec plus de 200 modules, son champ fonctionnel très large couvre la plupart des besoins de l'entreprise.]]></description>
			<content:encoded><![CDATA[OpenERP est un ERP distribué gratuitement sous une licence libre (GPL). Développé pour répondre aux besoins complexes et évolutifs d'entreprises en pleine croissance, il est à la fois flexible et puissant. Avec plus de 200 modules, son champ fonctionnel très large couvre la plupart des besoins de l'entreprise.]]></content:encoded>
			<wfw:commentRss>http://www.asilax.fr/technoblog/blog/2008/openerp-petite-presentation/feed/</wfw:commentRss>
		</item>
		<item>
		<title>6 nice things not know enough about PostgreSQL</title>
		<link>http://www.makina-corpus.org/2008/10/30/5-nice-things-not-know-enough-about-postgresql/</link>
		<comments>http://www.makina-corpus.org/2008/10/30/5-nice-things-not-know-enough-about-postgresql/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 21:07:20 +0000</pubDate>
		<dc:creator>regilero</dc:creator>
		
		<category><![CDATA[Performance]]></category>

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

		<category><![CDATA[Système]]></category>

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

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

		<guid isPermaLink="false">http://www.makina-corpus.org/?p=435</guid>
		<description><![CDATA[With the new PostgreSQL server versions in place (8.2 and 8.3) and in a more general way with the 8.x series some nice fonctionnalities have benn added. Let&#8217;s have a short look at som interesting ones:
1) WITH FILLFACTOR=50 in CREATE TABLE instructions (since 8.2):
FILLFACTOR is 100% by default and is a good default setting for [...]]]></description>
			<content:encoded><![CDATA[<p>With the new PostgreSQL server versions in place (8.2 and 8.3) and in a more general way with the 8.x series some nice fonctionnalities have benn added. Let&#8217;s have a short look at som interesting ones:</p>
<p><strong>1) WITH FILLFACTOR=50 in CREATE TABLE instructions (since 8.2):</strong><br />
FILLFACTOR is 100% by default and is a good default setting for tables where the basic usage is INSERTS (and select). But when you know that you&#8217;ll make a lot of UPDATEs on your rows you should decrease this factor. This way some space on the table will be reserved near your inserted rows. This space will then be used as a work zone when you&#8217;ll make an UPDATE on the row. And the magic effect is that this work zone won&#8217;t be at the end of the table but near your row, in the same page in memory. see <a href="http://www.postgresql.org/docs/8.3/interactive/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS">postgreSQL documentation page</a> for details.</p>
<p><strong>2) RETURNING on INSERT INTO to get your INSERTED Id (since 8.2):</strong><br />
The classical way to get you &#8216;last insert Id&#8217; in PostgreSQl as always been using <strong>currval(SEQUENCE)</strong><br />
This is right and secure as PRIMARY KEYS ar usually defined as SEQUENCEs with DEFAULT nextval(SEQUENCE). And currvall render the last value set by nextval in the current session (others concurrent sessions cannot interfere with it). But that&#8217;s not something easy to understand for newbies and very bad example with max(id) can always be found googling around. Now you can add a RETURNING MyId code on your INSERT query and the result of your insert won&#8217;t be the row OID anymore but your Id (or anything else if you want). Consult <a href="http://www.postgresql.org/docs/8.3/interactive/sql-insert.html">postgreSQL documentation page</a> for details.</p>
<p><strong>3) TOAST FIELDS:</strong><br />
TOAST means &#8216;<strong>The Oversized-Attribute Storage Technique</strong>&#8216;. You can set up to 1Gb in one field of your row. This column won&#8217;t be saved in the same physical file as the others. Another file will be created to store such big fields. <a href="http://www.postgresql.org/docs/8.3/interactive/storage-toast.html">postgreSQL documentation page</a> is still the best reference.<br />
If you wonder about the size of your tables and the physical files on your filesystem you should not. Your tables are always split in files of 2Gb. And Toast values are stored on their own files.</p>
<p><strong>4) TABLE INHERITANCE:</strong><br />
You can define a table B as child of table A. Request on table A will then render rows from A and B tables.<br />
With ONLY keyword you can limit requests on A with A rows. A could have several tables (B, C, D, etc). Indexes are done tables by table, and are by this way shorter. This is quite powerfull but you&#8217;ll have some problems with contraints. UNIQUE constraints for example are done for each table. You cannot ensure A+B+C+D rows will not share the same value for this &#8216;UNIQUE&#8217; constraint. Setting Referential intergrity from one of this table to a Z table is easy (but should be done for each table). But setting the reverse relation from Z to A+B+C+D isn&#8217;t possible. You should really look <a href="http://www.postgresql.org/docs/8.3/interactive/ddl-inherit.html">postgreSQL documentation page</a>, as always.</p>
<p><strong>5) TABLE PARTITIONNING:</strong><br />
One of the most powerfull thing you can do with INHERITANCE is table PARTITIONNING. Using TABLESPACEs you can define several different physical storage locations for your databases. TABLESPACES can easily be used for a database, a table, or even for an index (or the WAL sync log). This is fine. You can use several storage devices with different characteristics, each adapted to your differents needs (capacity, speed, sync/async, etc). But this combined with INHERITANCE becomes even more powerfull:<br />
Define table A as an empty table.<br />
Define table B and C as child tables of A, and use different tablespaces for B and C. You then have a virtual A table with his conent spread on diferent storage devices (or not, you could use the TABLESPACE on the same storage but you&#8217;ll lose most of the power of the &#8216;thing&#8217;). Your benefits? smaller indexes, on different devices, which can run in parallel, some problems with constraints as with point 4), but this is not a problem for all tables, and for a huge table this TABLESPACE splitting could be a coll thing to study. Have a look at <a href="http://www.postgresql.org/docs/8.3/interactive/ddl-partitioning.html">postgreSQL documentation page</a>. One last point, you&#8217;ll have to defined how the rows are splitted with the different tables (ranges, or domains, or anything else), you&#8217;ll maybe have to check RULES as well, even with simple INHERITANCE , beacuse INSERT for example should be done on the child table, and INSERT on the main TABLE should be redirected elsewhere.</p>
<p><strong>6) NOTIFY/LISTEN:</strong><br />
PostgreSQL has a builtin fonctionnality for Observer/observable Design Pattern. You can NOTIFY something, as an SQL command and at the end of your transaction (or directly if you&#8217;re not in a transaction) others SQL sessions which have registered this notification with LISTEN will get your notification (<a href="http://www.postgresql.org/docs/8.1/interactive/libpq-notify.html">the doc</a>). Usefull with server processes (while true processes), a cli process in PHp for example with <a href="http://www.php.net/manual/en/function.pg-get-notify.php">builtin pg lib</a> but not with PDO actually. Here is as well a <a href="http://jdbc.postgresql.org/documentation/83/listennotify.html">Java</a> example and examples in <a href="http://pypgsql.cvs.sourceforge.net/viewvc/pypgsql/pypgsql/examples/">python, the demo2a/b files</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.makina-corpus.org/2008/10/30/5-nice-things-not-know-enough-about-postgresql/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Array search performance</title>
		<link>http://blog.alfbox.net/index.php/2008/10/30/array-search-performance/</link>
		<comments>http://blog.alfbox.net/index.php/2008/10/30/array-search-performance/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 16:22:16 +0000</pubDate>
		<dc:creator>alf</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

		<guid isPermaLink="false">http://blog.alfbox.net/index.php/2008/10/30/array-search-performance/</guid>
		<description><![CDATA[You probably have often searched for a value in an array using the in_array() function. Reading php&#124;architect&#8217;s Guide to PHP Security by Ilia Alshanetsky, I&#8217;ve noticed that searching on values can be slower than searching on keys. I&#8217;ve wanted to compare performance between the three methods to check a value in a white list and [...]]]></description>
			<content:encoded><![CDATA[<p>You probably have often searched for a value in an array using the in_array() function. Reading <strong>php|architect&#8217;s Guide to PHP Security</strong> by Ilia Alshanetsky, I&#8217;ve noticed that searching on values can be slower than searching on keys. I&#8217;ve wanted to compare performance between the three methods to check a value in a white list and it&#8217;s amazing how slower is in_array(), look at the result :</p>
<pre>fga@brian:~/tmp$ php5 test_array.php
With in_array :
111
time : 0.349022865295 sec
With isset on keys :
111
time : 0.000214099884033 sec
With array_key_exists :
111
time : 0.00021505355835 sec</pre>
<p>Searching on keys is 1000 to 10000 times faster regarding the bench on an array containing 700 000 elements.</p>
<p>Here is the code of the test :</p>
<pre>&lt;?php
// array to store white list as values
$t = array();
// array to store white list as keys
$u = array();

// elements count
$max = 700000;

$first = $last = $middle = '';
for($i=$max-1;$i&gt;=0;$i--){
        // values are random strings
        $id = uniqid(rand());
        $t[] = $id;
        $u[$id] = '';
        // we store first, last and middle values to
        // to search for them
        switch($i) {
                case $max-1:
                        $first = $id;
                break;
                case 0:
                        $last = $id;
                break;
                case $max/2:
                        $middle = $id;
                break;
        }
}

echo "With in_array :\n";
$start_time = microtime(true);
echo in_array($first,$t);
echo in_array($last,$t);
echo in_array($middle,$t);
echo "\n";
echo "time : " . (microtime(true)-$start_time) . " sec";
echo "\n";

echo "With isset on keys :\n";
$start_time = microtime(true);
echo isset($u[$first]);
echo isset($u[$last]);
echo isset($u[$middle]);
echo "\n";
echo "time : " . (microtime(true)-$start_time) . " sec";
echo "\n";

echo "With array_key_exists :\n";
$start_time = microtime(true);
echo array_key_exists($first,$u);
echo array_key_exists($last,$u);
echo array_key_exists($middle,$u);
echo "\n";
echo "time : " . (microtime(true)-$start_time) . " sec";
echo "\n";</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.alfbox.net/index.php/2008/10/30/array-search-performance/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
