./27 : à moins que tu l'invites à un open, je doute qu'on se rencontre un jour, donc ça va ./28 : c'est pas une raison, ç'aurait été tout aussi possible avec un format binaire et des softs faits pour ça. « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
./25: tu apprécieras le wbxml alors Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Pourquoi tu crois que je fais pas de développement Web ? « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
Zerosquare (./25) :ça c'est pas trop le genre de la maison par contre (pour te donner une idée, sur la porte de bureaux en face du mien est écrit « w3c » ^^) Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
Ah « Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau |
Sally (./32) : L'utilité du '3' ? Kochise |
"MSVC, le soft qui arrive à générer des problèmes à partir de solutions" © |
bon, j'ai un peu test redis j'ai fait un truc bourrin qui gère un menu ac sous niveau infini, récursif c'était un peu la merde de trouver un client potable sous php, j'ai finalement trouvé le fork d'un module écrit en C <?php
set_time_limit(0);
global $redis;
$redis = new Redis();
if( !$redis->connect('127.0.0.1') ) die('cannot fuck the database ...');
//$redis->flushAll();
$deltime = 0;
$addtime = 0;
$echotime = 0;
$savetime = 0;
$fastechotime = 0;
function add2List($key,$data)
{ global $redis;
$keylist = $key.':list';
$keynbentry = $key.':nbentry';
$idnewentry = $redis->incr($keynbentry);
$keynewentry = $key.':'.$idnewentry;
// get current list "number of elements"
//$nb = $redis->zCard($keylist);
//if(($nb+1) != $idnewentry) die('fuck : nb='.$nb.' id:'.$idnewentry);
// append list, score will be "listsize + 1"
$redis->zAdd($keylist, $idnewentry, $idnewentry);
// fill new entry with data given
$redis->set($keynewentry.':data',$data);
return $keynewentry;
}
function delList_r($key)
{ global $redis;
$keylist = $key.':list';
$list = $redis->zRange($keylist, 0, -1, true);
$redis->delete($key.':nbentry', $key.':data', $key.':html');
foreach($list as $name => $value) delList_r($key.':'.$value);
$redis->delete($keylist);
}
function getList_r($key,$first=1)
{ global $redis;
$html = $redis->get($key.':html'); if($html !== false) return $html;
$out = '';
if(!$first) $out .= '<li>';
$out .= $redis->get($key.':data');
$out . $ret[1];
$list = $redis->zRange($key.':list', 0, -1, true);
if(!empty($list))
{ $out .= '<ul>';
foreach($list as $name => $value) $out .= getList_r($key.':'.$value,0);
$out .= '</ul>';
}
if(!$first) $out .= '</li>';
return $out;
}
function saveListHtml($key)
{ global $redis;
$redis->set($key.':html', getList_r($key));
}
$menu = 'alpha:list:menu:menu_haut';
$nbiteration = 1000;
$iteration = $nbiteration;
$totalstart = microtime(true);
while($iteration--)
{ $tstart = microtime(true);
// suppression du menu précédent, par recursion
delList_r($menu);
$deltime += microtime(true) - $tstart;
$tstart = microtime(true);
// ajout d'entrées au menu
$entry = add2List($menu,'bonjour');
$entry2 = add2List($menu,'hello');
$entrylvl2 = add2List($entry,'subbonjour');
add2List($entry,'subbonjour2');
add2List($entry,'subbonjour3');
add2List($entry,'subbonjour4');
$subentry5 = add2List($entry,'subbonjour5');
add2List($subentry5,'hello world !');
add2List($entrylvl2,'subsubbonjour');
add2List($entrylvl2,'subsubbonjour1');
add2List($entry2,'subhello');
add2List($entry2,'subhello2');
$addtime += microtime(true) - $tstart;
$tstart = microtime(true);
getList_r($menu); // affichage du menu, par recursion
$echotime += microtime(true) - $tstart;
$tstart = microtime(true);
saveListHtml($menu); // sauve la sortie html du menu pour eviter la recursion
$savetime += microtime(true) - $tstart;
$tstart = microtime(true);
getList_r($menu); // affichage du menu, doit utiliser la sauvegarde
$fastechotime += microtime(true) - $tstart;
}
$totaltime = microtime(true) - $totalstart;
print getList_r($menu);
print '<b>completed '.$nbiteration.' in '.$totaltime.' seconds</b><br><br>average times :';
print '<br>delete old menu in '.(($deltime/$nbiteration)*1000).'ms';
print '<br>add to menu in '.(($addtime/$nbiteration)*1000).'ms';
print '<br>get menu in '.(($echotime/$nbiteration)*1000).'ms';
print '<br>save menu html in '.(($savetime/$nbiteration)*1000).'ms';
print '<br>fast get menu in '.(($fastechotime/$nbiteration)*1000).'ms';
?>voila le résultât du bench, je précise que j'ai un celeron 1.2GHz double cœur avec compiz qui tourne et plein d'autre conneries, de plus la base fait automatiquement un dump sur le disque des que 10000 clef ons été mise à jours/crées en moins de 60 secondes (donc ca dumpe pendant le bench) bon, je débute juste avec, la doc étais en rade quant j'ai écrit ce code (une nouvelle release du serveur étais en cour qui ma d'ailleurs fait gagner une seconde sur les 1000 itération et la le mec il le pécho par le bras et il lui dit ' |
pour le client je marquerais 'rape' ca le fait mieux non, sérieusement, je livre qq chose de clean à chaque fois, sans gros mots ni 0xB16B00B5 :- D car les gros mots je les réserve au graphiste edit mais bon je l'aime bien quant même et la le mec il le pécho par le bras et il lui dit ' |
j'ai besoin de mettre des paramètres avec ? et & dans l'url d'un javascript inclus sur un de mes sites, mais ca ne passe pas au validateur :/ <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=fr®ion=FR"></script> Error: & did not start a character reference. (& probably should have been escaped as &.) At line 14, column 247 js?sensor=false&langu Error: & did not start a character reference. (& probably should have been escaped as &.) At line 14, column 259 lse&language=fr®ioune idée ? et la le mec il le pécho par le bras et il lui dit ' |
bin au hasard & à la place de & ? Aviations Militaires <Vertyos> un poil plus mais elle suce bien quand même la mienne ^^ <Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appetissant |
exact ca marche merci je n'aurais jamais pensé qu'il fallait encoder l'url, à mon sens ca aurais pas fait de nouveaux arg mais complété l'arg sensor et la le mec il le pécho par le bras et il lui dit ' |