PHP
::Benchmark touch vs file_put_contents
[Trackback]
Date : 2008-05-28@14:54:59
Rang : 0
Dans la série question existentielle :
touch vs file_put_contents
le code de test :
<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>
Les résultats :
file_put_contents 0.41347002983093
touch 0.071331977844238
Soit 6 fois plus rapide, l'application directe de ce test est que l'on évite l'écriture en cache d'un objet si celui ci n'a pas changer et on le revalide par un touch.
Pour vérifier que le cache n'a pas changer il faut bien sur lire le cache même quand il n'est plus valide.
Ce qui donne le code de bench suivant :
<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_get_contents('test.txt');
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>
Les résultats :
file_put_contents 0.51197385787964
touch + file_get_contents 0.3950469493866
Le gain est minime cette fois mais c'est toujours ça de pris :D
Javascript
::date format en javascript
[Trackback]
Date : 2008-05-14@14:47:02
Rang : 0
Cette fonction javascript format une date javascript à la manière de la fonction php.
Les formats supportés sont limité à d m Y h i s de la fonction date de php.
function dateFormat(format,date)
{
if(date == undefined)
{
date = new Date();
}
if(typeof date == 'number')
{
time = new Date();
time.setTime(date);
date = time;
}
else if(typeof date == 'string' )
{
date = new Date(date);
}
var fullYear = date.getYear();
if (fullYear < 1000)
{
fullYear = fullYear + 1900;
}
var hour = date.getHours();
var day = date.getDate();
var month = date.getMonth()+1;
var minute = date.getMinutes();
var seconde = date.getSeconds();
var milliSeconde = date.getMilliseconds();
var reg = new RegExp('(d|m|Y|H|i|s)','g');
var replacement = new Array();
replacement['d'] = day < 10 ? '0'+ day : day;
replacement['m'] = month < 10 ? '0'+ month : month;
replacement['Y'] = fullYear;
replacement['Y'] = fullYear;
replacement['H'] = hour < 10 ? '0'+ hour : hour;
replacement['i'] = minute < 10 ? '0'+ minute : minute;
replacement['s'] = seconde < 10 ? '0'+ seconde : seconde;
return format.replace(reg,function ($0){return ($0 in replacement) ? replacement[$0] : $0.slice(1, $0.length - 1);});
}
Javascript
::Un début de unserialize en PHP
[Trackback]
Date : 2008-05-14@14:40:33
Rang : 0
Le script ci dessous permet de désérialiser uniquement les tableaux de chaine.
C'est à dire les tableau du genre de celui ci :
<?php
$tableau = array("clé 1"=> "valeur 1","clé 2"=> "valeur 2")
?>
function unserialize(inData)
{
var outData = false;
var stringMatches = inData.match(/s:[0-9]+:".*?";s:[0-9]+:".*?";/g);
if(stringMatches != null)
{
outData = new Array()
for(var i = 0; i < stringMatches.length; i++)
{
var match = stringMatches[i].match(/s:[0-9]+:"(.*?)";s:[0-9]+:"(.*?)";/);
if(match != null)
{
outData[match[1]] = match[2];
}
}
}
return outData;
}
La fonction retourne false en cas d'échec.
Javascript
::Un début de unserialize en PHP
[Trackback]
Date : 2008-05-14@14:40:17
Rang : 0
Le script ci dessous permet de désérialiser uniquement les tableaux de chaine.
C'est à dire les tableau du genre de celui ci :
<?php
$tableau = array("clé 1"=> "valeur 1","clé 2"=> "valeur 2")
?>
function unserialize(inData)
{
var outData = false;
var stringMatches = inData.match(/s:[0-9]+:".*?";s:[0-9]+:".*?";/g);
if(stringMatches != null)
{
outData = new Array()
for(var i = 0; i < stringMatches.length; i++)
{
var match = stringMatches[i].match(/s:[0-9]+:"(.*?)";s:[0-9]+:"(.*?)";/);
if(match != null)
{
outData[match[1]] = match[2];
}
}
}
return outData;
}
La fonction retourne false en cas d'échec.
RSS
::Seoblackout
[Maximiser] [Trackback]
Date : 2008-04-21@20:01:23
Rang : 0
- Dictionnaire des synonymes, des mots à la pelle
- Récupérer des liens en provenance d’IP différentes
- Classement Google des sites par PageRank (PR) et backlinks Yahoo
- Conférence vidéo, l’art du référencement web
- Script php : calcul positionnement Google et Yahoo
- Le retour du whois sur Google
- Générer du contenu pour sites web, les techniques des copieurs
- Google propose d’afficher les résultats de recherche en anglais pour certaines requêtes
- Spam referrers liens Edu et Gov
- Seocontest2008
Linux
::Configuration de ndiswrapper pour utilisation du WPA avec les cartes mini pci cisco sur mon thinkpad X31
[Trackback]
Date : 2008-04-19@14:24:43
Rang : 0
J'ai enfin réussi à faire marcher le wpa sur mon portable X31 sous Ubuntu Gusty.
La marche à suivre se trouve en anglais ici
Je traduis pour les non anglophones
Telecharger le driver cisco ici et désarchiver le dans votre home par exemple.
Installer ndiswrapper
sudo apt-get install ndiswrapper-utils-1.9
Blacklister le driver airo
echo 'blacklist airo' | sudo tee -a /etc/modprobe.d/blacklist
Décharger le driver airo du noyau
sudo rmmod airo
Charger le driver windows dans ndiswrapper
sudo ndiswrapper -i pathto/netA504.inf
Sauvegarder la conf ndiswrapper
sudo ndiswrapper -m
sudo ndiswrapper -ma
sudo ndiswrapper -mi
Charger ndiswrapper dans le noyau
sudo modprobe ndiswrapper
RSS
::OpenFiles
[Maximiser] [Trackback]
Date : 2008-04-14@10:54:11
Rang : 0
- wordPress 2.5
- La Suède va-t-elle légaliser le P2P ?
- Ouverture du site de l'Autorité de Régulation des Mesures Techniques
- Desperate Housewives coup d'envoi de la saison 4
- Les fausses déclarations de l'IFPI
- Dexter coup d'envoi de la saison 2
- Heroes - sous-titres indisponibles pour la saison 2
- Heroes coup d'envoi de la saison 2
- Déclaration de l'IFPI suite à l'arrêt des DonkeyServer
- Les codes sources de MediaDefender sur internet.
Linux
::Récupéré un fichier effacé grace à Foremost
[Trackback]
Date : 2008-04-11@19:31:15
Rang : 0
Foremost est un outil qui permet de récupérer les fichiers effacés sous linux même par la commande rm.
Un tutorial simple et efficace sur comment s'en servir est disponible chez korben (merci pour la découverte de ce soft qui peut toujours servir) :
