Untitled#1

Vendredi 19 Février 2010 à 22h10 - par evuez - dans Autres
Tags : site, projet, vacances, article,

Bon, je pensais que j'aurais plus de choses à raconter pendant les vacances ... En fait, pas tant que ça ...
Je n'ai as beaucoup varié mes occupations depuis mon dernier post : CSS, HTML, PHP, SQL, et guitare. Un peu d'Arduino aussi, mais vraiment très très vite fait. J'ai eu envie de refaire un design pour "l'important changement", quelque chose de plus sobre ... Mais finalement, j'arrive à quelque chose de beaucoup trop sobre. Donc à voir, je vais peut-être garder ce que j'avais avant, même si niveau W3C, le dernier design était nikel. Ça serait la première fois que j'aurais un site valide ... Bref, j'y réfléchirais.
J'avais parlé dans mon précédent post de ma décision de mon retour ou non dans le projet du Site du Savoir. J'ai décidé, je ne resterais pas. Non pas que je n'en ai pas envie, mais je ne veux pas rester alors que je sais que je ne serais presque pas disponible pour contribuer au projet. Bien sûr, ça ne m'empêchera pas d'aider pour certaines parties, mais je ne tiens pas à faire partie de l'équipe si c'est pour au final ne coder que quelques bouts de pages çà et là.

Sinon pour ce qui est de Pure Data, je n'ai toujours pas tester, je vais m'y mettre la semaine prochaine, parce que ce week-end c'est lecture : je viens de m'acheter le livre PHP 5 , Cours et exercices, donc je vais feuilleter ça

Je pense avoir fini ... Ah non : je suis entrain de recoder le système de cache du blog, faire quelque chose de plus propre et plus performant, pour le moment, il ne s'appliquait qu'à l'accueil.
Dès que j'aurais fini de le coder, je posterais le code, en essayant de le commenter au maximum.

Bon, je ne sais pas quand je posterais de nouveau, peut-être ce week-end ... Je vais sûrement aller voir Avatar (non, je n'y suis toujours pas allé ...), si je suis motivé je ferais un petit article dessus ... J'ai bien dit SI je suis motivé, enfin de toutes manières j'en parlerais certainement sur le prochain article

(ah oui : pour le titre de l'article, je n'étais pas inspiré, je modifierais ça si une idée me passe par la tête )

Commenter l'article

Enfin les vacances

Vendredi 12 Février 2010 à 21h22 - par evuez - dans Autres
Tags : projet, vacances, Pure Data,

Ça y est enfin, depuis le temps que j'en rêve de ces vacances ... Non pas que j'ai prévu des tonnes de choses trop cool, mais j'avais vraiment besoin de me poser un peu, les dernières semaines ont été horriblement chiantes. Entre le nouveau PC de mes parents que j'ai du réinstaller une bonne dizaine de fois, pour au final leur réinstaller leur ancien, les cours, la guitare, la programmation, et ma vie sociale (si si je vous jure, j'en ai une !), j'ai vraiment passer les 3 dernières semaines sur les nerfs. Mais c'est les vacances, et je compte bien en profiter au maximum

Pour commencer, je vais me remettre un peu à PHP (ça me manque vraiment ...) et à Arduino. Ensuite, après avoir ré-installé Ubuntu, je vais toucher un peu à Pure Data (depuis le temps que j'aurais dû le faire ), voir si je réussis à en faire quelque chose. Je vais aussi décider de mon retour ou non dans le projet du Site Du Savoir. Après, pour le reste des vacances, ce sera musique, skate, sorties, et ... repos

Je posterais un peu plus régulièrement ici aussi, pour vous racontez mes super découvertes que j'aurais faites

Pour tous ceux qui sont en vacances, bonne vacances, pour les autres, bonne chance

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

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

Test Ubuntu 9.10

Samedi 14 Novembre 2009 à 12h39 - par evuez - dans Autres
Tags :

Je viens juste de recevoir la version 9.10 d'Ubuntu (j'avais commandé le CD), petit test rapide en live CD avant de l'installer, aucun problème, il fonctionne à merveille avec une rapidité déconcertante.

Après avoir résolu quelques problèmes, j'ai enfin réussi à le lancer. Je n'ai pas eu le temps de tester grand chose encore, je me suis surtout amusé avec les effets (3D, transparence, ...).
Côté logiciel, Pidgin à été remplacé par Empathy (personnellement je ne vois pas tellement la différence entre les 2 mais bon...), et on peut désormais installer des logiciels à partir de la "logithèque Ubuntu" (qui pourrait apparemment remplacer le gestionnaire de paquets Synaptic).
Le système de fichiers par défaut est l'ext4, augmentant la vitesse d'exécution par rapport à l'ext3.

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)

Partenaires & Pub