Guitare, guitare, et encore guitare ...

Jeudi 31 Décembre 2009 à 17h36 - par evuez - dans Best of Internet
Tags : site, code, musique, tablature,

Non, il n'y aura pas (enfin pas pour l'instant du moins) de code d'IA cette semaine (j'ai été absent pendant 4 jours, déconnecté du monde virtuel ...). Mais pour me rattraper, je vais vous présenter deux sites à connaître pour les guitaristes, débutants ou non.

J'ai découvert ces sites sur le Site du Zéro il y a maintenant quelques mois, mais je n'avais jamais pris le temps d'en faire les présentations.

Commençons avec OneTab.
Personnellement, j'ai traîné longtemps sur des sites tels que partoch', abc-tabs, 911tabs, ultimate-guitare, ... pour trouver mes tablatures. Mais devoir télécharger ou lire une dizaine de tablatures avant de trouver la bonne, c'est franchement énervant. Et c'est là qu'intervient OneTab. En effet, OneTab regroupe la meilleur tablature proposée pour chaque morceau, donc plus besoin de se demander quel tablature de About a Girl on va télécharger en premier, puisqu'il n'y en a qu'une. En plus, les tablatures sont visibles directement sur le site et téléchargeables au format Guitar Pro. (argh on dirait une pub pour un forfait téléphonique )
Bon je m'arrête là pour OneTab, si vous voulez en savoir plus, allez faire un tour sur le topic de présentation du site ici : http://www.siteduzero.com/forum-83-425296-p1-site-web-onetab---trouvez-en-un-clic-la-meilleure-tab.html

Maintenant, passons à Guitare et Improvisation.
Ce site a pour but de vous apprendre non seulement à jouer de la guitare, mais aussi à improviser. Il est vrai que bon nombre de site de ce genre existent déjà sur le net, mais comme le dit si bien martin GIOANI (le fondateur de Guitare et Improvisation), la plupart de ces sites sont engloutis par des publicités, ont un design horrible, font des explications à rallonge, ou encore ont "Un manque de recul sur la musique en général".
Je n'ai pas grand chose à dire de plus, si ce n'est que je vous conseille fortement d'aller y faire un tour (le topic de présentation sur le Site du Zéro est à cette adresse : http://www.siteduzero.com/forum-83-433042-p1-site-web-guitare-et-improvisation.html)

Commenter l'article

Une fonction très demandé

Mercredi 23 Décembre 2009 à 23h21 - par evuez - dans Autres
Tags : site, blog, code, projets, script,

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
  1.  
  2. <?php
  3. function mkmap($dir){
  4. $map = '';
  5. $folder = opendir($dir); //on ouvre le répertoire spécifié
  6.  
  7. while($file = readdir($folder)) { //lecture du répertoire
  8. if($file != "." && $file != "..") { //si le fichier n'est pas un dossier ...
  9. $pathfile = $dir.'/'.$file;
  10. $map .= $pathfile."\r\n"; //récupération des noms de fichiers dans la variable $map
  11. if(filetype($pathfile) == 'dir'){
  12. $map .= mkmap($pathfile); // ...
  13. }
  14. }
  15. }
  16. closedir ($folder);
  17. return $map;
  18. }
  19. ?>
  20.  
  21. <?php
  22. $dir = '.'; // "." pour spécifier le répertoire courant, sinon, le nom du dossier à scanner
  23. $map = mkmap($dir);
  24. $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
  25.  
  26. $fp = fopen('sitemap.txt', 'w+'); //ouverture de sitemap.txt
  27. fwrite($fp, $map); //écriture des url dans le fichier sitemap.txt
  28. fclose($fp); // fermeture du fichier
  29. ?>
  30.  

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

Commenter l'article

Une petite sécurité

Mardi 22 Décembre 2009 à 11h19 - par evuez - dans AfterHaze
Tags : site, code,

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

Commenter l'article

"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

Commenter l'article

Algorithme de Collatz (Fullag et evuez)

Samedi 19 Décembre 2009 à 02h05 - par evuez - dans Autres
Tags : code, algorithme, Collatz, script,

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
  1.  
  2. <?php
  3. $nombreDepart = rand(0, 100000); //un nombre au hasard
  4. while(1){ // pour boucler l'algorithme
  5. if($nombreDepart%2 == 0){ // si le nombre est pair
  6. $nombreDepart = $nombreDepart/2;
  7. }
  8. else{ //sinon, si il est impair
  9. $nombreDepart = $nombreDepart*3+1;
  10. }
  11. echo $nombreDepart.'<br>'; // affichage du résultat
  12. }
  13. ?>
  14.  

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
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7. printf("***Algorithme de Collatz***\n\n\n\n");
  8.  
  9. int nombreObtenu, i; /// <-- variable qui pose problème
  10.  
  11. for(i = 1; i > 0; i++)
  12. {
  13. nombreObtenu = i;
  14.  
  15. printf("\nLe nombre qui fonctionnera avec l'algorithme est %d \n", nombreObtenu);
  16.  
  17. do
  18. {
  19. if(nombreObtenu % 2 == 0)
  20. {
  21. nombreObtenu = nombreObtenu / 2;
  22. printf("%d\n", nombreObtenu);
  23. }
  24.  
  25. else
  26. {
  27. nombreObtenu = nombreObtenu * 3 + 1;
  28. printf("%d\n", nombreObtenu);
  29. }
  30. } while(nombreObtenu != 1);
  31. }
  32.  
  33. }
  34.  

Pour ceux qui veulent tester, l'exécutable de l'algorithme est téléchargeable ici : http://www.badongo.com/file/19146134

Commenter l'article

A propos



Ce blog a été créer dans le but d'appronfondir mes connaisances dans le domaine du PHP, et un blog étant un blog, j'essairai d'ajouter régulièrement des infos sur mes nouveaux projets, sur l'actualité musicale, ...

Archives



2009 Septembre (7)
2009 Octobre (12)
2009 Novembre (9)
2009 Décembre (7)
2010 Janvier (6)
2010 Février (2)
2010 Mars (1)

Partenaires & Pub