Une fonction très demandé
Mercredi 23 Décembre 2009 à 23h21 - par evuez - dans Autres
De plus en plus, sur des forums de webmastering, on voit des questions du type "J'ai un site de 50 pages, et j'aimerais créer un sitemap de mon site pour l'envoyer au gestionnaire Google Sitemaps, seulement j'aimerais pouvoir créer le sitemap automatiquement plutôt que manuellement, commet puis-je faire ?"
Donc pour répondre à cette question que tant de gens se posent, et qui ont la flemme de chercher, voilà une petite fonction php qui vous génère un fichier texte contenant les urls de votre site, fichier texte qu'il vous suffit ensuite d'envoyer à notre ami google
Code : mkmap.php
<?php
function mkmap($dir){
$map = '';
$folder = opendir($dir); //on ouvre le répertoire spécifié
while($file = readdir($folder)) { //lecture du répertoire if($file != "." && $file != "..") { //si le fichier n'est pas un dossier ...
$pathfile = $dir.'/'.$file;
$map .= $pathfile."\r\n"; //récupération des noms de fichiers dans la variable $map
$map .= mkmap($pathfile); // ...
}
}
}
return $map;
}
?>
<?php
$dir = '.'; // "." pour spécifier le répertoire courant, sinon, le nom du dossier à scanner
$map = mkmap($dir);
$map = str_replace($dir.'/', 'http://".$_SERVER['HTTP_HOST
'].dirname($_SERVER['REQUEST_URI
'])', $map); // récupère l'url à partir de laquelle a été lancé le script
$fp = fopen('sitemap.txt', 'w+'); //ouverture de sitemap.txt fwrite($fp, $map); //écriture des url dans le fichier sitemap.txt fclose($fp); // fermeture du fichier ?>
(et oui, ça m'arrive de commenter mon code ...

)
Voilà, avec ça vous aurez un sitemap en moins de 2 secondes, il suffit de changer le contenu de la variable $dir, d'envoyer le script sur le serveur, et de le lancer.
J'ai laissé un peu tomber mes "gros" projets (c'est-à-dire le blog et tout ce qui tourne autour) en ce moment, je reprendrais tout ça la semaine prochaine, pour l'instant j'ai envie de me reposer un peu (je vous promets que c'est fatiguant le codage... - et les attaques de flooders encore plus

).
Donc cette semaine, je me lance dans le codage d'une
IA en PHP, qui saura jouer au morpion, enfin si je la finis ... Je sais, du coup ça va pas être reposant plus que ça, mais au moins ça m'éviteras de me plonger dans des codes de quelques milliers de lignes.

(Si je finis l'
IA, je posterais le code ... bon, selon l'avancement, si elle n'est pas fini, je posterais peut-être ce que j'aurais fait

)
PS.: Vous avez certainement remarqué la magnifique neige tombant sur le site, ça fait rêver n'est-ce pas ?
Une petite sécurité
Mardi 22 Décembre 2009 à 11h19 - par evuez - dans AfterHaze
Hier soir, alors qu'il était environ 1 heure 40 (bon ok, c'était pas hier, c'était ce matin du coup
), et que je me baladais tranquillement dans ma base de donnée pour vérifier quelques petits problèmes, je remarque que sur un post, il y a plus de 1000 commentaires ... Non, je n'ai pas d'adorateur qui laissent des milliers de commentaires sur mon blog, j'ai juste "oublié" de faire un système anti-bot ... "Oublié" parce que je l'ai fait consciemment, pensant que je ne serais pas ciblé, et comme moi-même je déteste devoir rentrer un code de sécurité pour pouvoir envoyer un commentaire sur un blog, j'ai décidé de ne pas en faire.
Sauf que j'ai été ciblé, obligé de supprimer des milliers de commentaires, alors que le bot continuait à en envoyer.
À cause de ce flood (les commentaires étaient constitués de lien renvoyant vers un site commercial que je ne citerais pas, je les ai contacté hier ce matin, je verrais si le bot leur appartient ou non), j'ai mis en place un système anti-bot, une image contient 6 chiffres, et vous devez les recopiez dans un formulaire pour pouvoir envoyer un commentaire.
Donc désolé du petit désagrément, mais je ne tient pas à passer mes nuits à supprimer des commentaires
"Révélations" ...
Dimanche 20 Décembre 2009 à 19h05 - par evuez - dans AfterHaze
Tags :
Bon, comme je suis de bonne humeur, j'ai décidé de vous révéler ce que sera "l'important changement" ... Enfin vous le révéler à moitié, c'est-à-dire, en vous montrant le schéma de "l'important changement" :
Cliquez pour agrandir
(schéma incomplet, mais il y a le principal)
Pour ceux qui ne voient pas du tout ce que va être le changement, je vous laisses attendre patiemment qu'il arrive, je ne donnerais pas d'autres informations pour l'instant
Algorithme de Collatz (Fullag et evuez)
Samedi 19 Décembre 2009 à 02h05 - par evuez - dans Autres
Bon déjà le principe de cet algorithme de Collatz :
1-On prend un nombre au hasard
- le nombre est pair : on le divise par 2
- le nombre est impair : on le mutltiplie par 3 et on ajoute 1
2-On répète cette opération avec le résultat obtenu.
Jusqu'à
2 à la puissance 51 (on n'a pas vérifié au-dessus),
on finit toujours par obtenir 1 dans la suite obtenue avec l'algorithme de Collatz avec
n'importe quel nombre au départ.
Pour donner un exemple concret, avec par exemple le nombre 15 :
15 = nombre impair
-> 15*3+1 = 40
-> 40 = nombre pair
-> 40/2 = 20
-> 20 = nombre pair
-> 20/2 = 10
-> 10 = nombre pair
-> 10/2 = 5
-> 5 = nombre impair
-> 5*3+1 = 16
-> 16 = nombre pair
-> 16/2 = 8
-> 8 = nombre pair
-> 8/2=4
-> 4 = nombre pair
-> 4/2 = 2
-> 2 = nombre pair
-> 2/2 =
1
En php, on pourrait faire un script de ce type :
Code : Algorithme de Collatz
<?php
$nombreDepart = rand(0, 100000); //un nombre au hasard while(1){ // pour boucler l'algorithme
if($nombreDepart%2 == 0){ // si le nombre est pair
$nombreDepart = $nombreDepart/2;
}
else{ //sinon, si il est impair
$nombreDepart = $nombreDepart*3+1;
}
echo $nombreDepart.'<br>'; // affichage du résultat }
?>
Bon le problème, c'est qu'à un moment, le script (écrit en C par Fullag), a fini par tourné sur des nombres négatifs, ce qui est logiquement
un possible impossible (il était tard), puisqu'on part d'un nombre positif, et qu'un nombre positif, qu'il soit divisé ou multiplié par un autre chiffre positif, donnera toujours un nombre positif.
Voyez par vous-même:
En effet on remarque que, quand l'algorithme est arrivé au moment ou il doit traiter le nombre 139479, les valeurs passent du positif au negatif (de +827 370 449 à -1 812 855 948).
A partir de ce moment la des "négatifs" sont traités, et on en finit plus:
la suite de nombres {-68, -34, -17, -50, -25, -74, -37, -110, -55, -164, -82, -41, -122, -61, -182, -91, -272, -136} ne fait que se répéter.
On a donc réfléchit pendant un bon moment là-dessus, et on a finalement trouvé comment l'ordinateur faisait pour passer du négatif au positif, ce qui est normalement mathématiquement impossible :
Fullag & evuez :
vmax = taille maximale du tampon
827 370 449 = dernière valeur positive
→ 827 370 449*3 = 2 482 111 347
→ 2 482 111 347+1 = 2 482 111 348 = y
y-vmax = y-2 147 483 647 = 334 627 700 //soit tout ce qui passe en négatif
- donc en valeur absolue:
-334 627 700
- le pc trouve :
-1 812 855 948 (première valeur positive)
- et :
-1 812 855 948 + (-334 627 700) = -vmax
-334 627 700 /* c'est tout ce qui est laissé de côté, tout ce que le pc ne peut pas prendre, donc il prend 1 812 855 948 et le passe en négatif pour pouvoir continuer de calculer */
Mais alors, si c'est impossible, pourquoi fait-il cela?
En fait, si vous regardez bien le code ci-dessous, le problème venait de la mémoire de la variable défini. Cette denière est en fait de type int, donc ne peut contenir que des nombres compris entre -2 147 483 647 et 2 147 483 647.
Ainsi, dès qu'on dépassait la limite dans les positifs, il mettait tout le surplus en négatif, en utilisant la technique décrite ci-dessus, afin de pouvoir continuer à boucler l'algorithme :
Code : Algorithme de Collatz - base par Fullag
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("***Algorithme de Collatz***\n\n\n\n");
int nombreObtenu, i; /// <-- variable qui pose problème
for(i = 1; i > 0; i++)
{
nombreObtenu = i;
printf("\nLe nombre qui fonctionnera avec l'algorithme est %d \n", nombreObtenu
);
do
{
if(nombreObtenu % 2 == 0)
{
nombreObtenu = nombreObtenu / 2;
}
else
{
nombreObtenu = nombreObtenu * 3 + 1;
}
} while(nombreObtenu != 1);
}
}
Pour ceux qui veulent tester, l'exécutable de l'algorithme est téléchargeable ici :
http://www.badongo.com/file/19146134
Les Red Hot sans Frusciante ...
Jeudi 17 Décembre 2009 à 20h46 - par evuez - dans Art & Co
Tags :
C'est désormais officiel, Frusciante ne jouera pas avec les Red Hot Chili Peppers pour leur prochain album, il l'a annoncé hier soir sur son blog (remis en ligne pour l'occasion apparemment) :
John Frusciante :
When I quit the band, over a year ago, we were on an indefinite hiatus. There was no drama or anger involved, and the other guys were very understanding. They are supportive of my doing whatever makes me happy and that goes both ways.
To put it simply, my musical interests have led me in a different direction. Upon rejoining, and throughout my time in the band, I was very excited about exploring the musical possibilities inherent in a rock band, and doing so with those people in particular. A couple of years ago, I began to feel that same excitement again, but this time it was about making a different kind of music, alone, and being my own engineer.
I really love the band and what we did. I understand and value that my work with them means a lot to many people, but I have to follow my interests. For me, art has never been something done out of a sense of duty. It is something I do because it is really fun, exciting, and interesting. Over the last 12 years, I have changed, as a person and artist, to such a degree that to do further work along the lines I did with the band would be to go against my own nature. There was no choice involved in this decision. I simply have to be what I am, and have to do what I must do.
Sending love and gratitude to you all.
:-)
Traduction :
Quand j'ai quitté le groupe il y a environ un an, nous étions en pause indéfinie. Il n'y a pas eu de drame ou de colère et les autres mecs ont été très compréhensifs. Ils m'encouragent beaucoup dans ma démarche pour peu que ça me rend heureux et cela va dans les deux sens.
Pour faire simple, mes intérêts musicaux m'ont conduit dans une autre direction. Lorsque je suis revenu, et durant toute la période où j'étais dans le groupe, j'étais très enthousiaste à l'idée d'explorer les possibilités que peuvent offrir un groupe de rock et surtout de le faire avec ces personnes en particulier. Il y a environ deux ans j'ai commencé à ressentir à nouveau cet enthousiasme mais cette fois pour faire un tout autre genre de musique, seul et en étant mon propre producteur.
J'aime vraiment ce groupe et ce que nous avons fait. Je comprends très bien que mon travail avec eux signifie énormément pour beaucoup de gens mais je dois suivre mes propres intérêts. Pour moi, l'art n'a jamais été quelque chose à faire avec le sens du devoir. C'est quelque chose que je fais car c'est un grand plaisir, mais aussi car c'est passionant et intéressant. Au cours de ces douze dernières années, j'ai changé en tant que personne et en tant qu'artiste, et ce à un tel niveau que d'aller plus loin et de la même manière que dans le passé avec le groupe, serait d'aller contre ma nature. Il n'y a eu aucun choix à faire. Je dois simplement être ce que je suis et faire ce que j'ai à faire.
Je vous envoie à tous mon amour et ma gratitude.
(merci à
rhcpfrance pour la traduction

)
Bon je ne vais pas en dire plus sur le sujet, de toutes façons il n'y a pas grand chose d'autre à dire, si ce n'est que j'espère pouvoir écouter très prochainement un nouvel album de Frusciante, histoire de pouvoir me remettre de son départ du groupe