Détente car là je n'invente rien, je ne code rien, je voulais juste vous parler. Nouveauté Dailymotion.com invente le "videowall". C'est un rectangle contenant des vidéos mignatures, que l'on peut voir facilement, switch ect. J'ai créé ce wall à partir de mes vidéos favories chez dailymotion.
samedi 29 décembre 2007
Blagues ?
J'étais d'humeur aujourd'hui. J'ai développé en une après-midi un site web en PHP, MySQL, AJAX. Ce site est une copie de bashfr, mais ne se limitant pas aux seuls quotes IRC, mais prend également les blagues diverses, les proverbes et les citations célèbres. Je me suis pas appliqué sur le graphisme, comme toujours, mais la simplicité et les fonctionnalités sont au rendez-vous, tout comme la sécurité. J'ai utilisé pour la première fois captcha (très facile d'utilisation), et j'ai créé un système complet de login (login, création de compte, envoie d'e-mail, activation de compte). Les blagues envoyées peuvent être modérées avec un lien prévu, ce qui donne 4 choix à l'utilisateur : demander une suppression (insulte, diffamatoire...), proposer un reclassement (changement de catégorie), proposer une correction orthographique ou indiquer un doublon. Je déteste les doublons.
Puis dernière chose, le classement : une blague possède un classement, calculé par le nombre de vote positif et le nombre de vote total. Ceci se fait en AJAX et une même personne ne peut voter qu'une seule fois par blague.
http://www.beaudier.fr/lol
Puis dernière chose, le classement : une blague possède un classement, calculé par le nombre de vote positif et le nombre de vote total. Ceci se fait en AJAX et une même personne ne peut voter qu'une seule fois par blague.
http://www.beaudier.fr/lol
Gagner quelques minutes sur les heures que je perds

.png)
C'était le but de ce "gros" script codé en mIRC qui m'allégeait le travail de ce jeu pénible et prenant. Il avait un buffer de 2 Mo, et écoutait systématiquement le presse-papier. Dès que l'on copiait le contenu d'une page d'Ogame, le script bufférisait le contenu. Une fois que l'on a copié tout ce que l'on voulait, le script analysait le buffer ligne à ligne. C'était des rapports d'espionage. Le but était d'éliminer les rapports inutiles (la planète visée ne contient pas assez de ressources pour l'attaquer ou est trop bien gardée), et n'afficher que les rapports suceptible de m'intéresser. Une fois la liste effectuée, il me demandait pour chacun d'eux ce que je voulais envoyer (la consomation de carburant, la durée du trajet par rapport à la distance et une estimation des pertes en utilisant speedsim m'était indiquée). A la fin, j'avais ma liste des planètes a attaquer (avec la flotte que j'ai choisi d'y envoyer). Les planètes trop bien gardée était stocké pour les "EDLMer" plus tard. Celles sans défense étaient gardée pour les raider à la sonde. Ce script n'est pas illégal étant donné qu'il ne se connecte pas au serveur. Voici quelques screenshots.
Egalement, j'ai été l'une des cibles prioritaires de nos ennemis qui voulaient me missiler mes planètes. Pour anticiper leur approche dans les systèmes environnants le mien (ou le rachat de missile de joueurs neutre), j'ai réalisé un autre script, se servant toujours du presse-papier des rapports d'espionnage, pour réaliser une cartographie des missiles, silo à missile et des ennemis, neutre ou alliés. Celà m'a permis de raider les installations ennemis avant de leur permettre d'avoir assez de missiles.
J'ai également réalisé ce petit calculateur de vitesse en C++ (de la même manière que speedsim) sauf qu'il calculait également la durée planète-lune, ce que ne faisait pas speedsim.
Sous Excel (avec l'aide de mIRC) j'ai réalisé des cartographies de phalanges ennemies...
Utile dans le début, j'ai réalisé un petit script mIRC qui calculait la prodution de mes usines, et calculait a quelle heure (en incluant les changements de vitesse de production, le manque énergétique, le pourcentage de production et les arrivages de transports de ressources alliés) les ressources demandées seront disponible, et beeper le cas échéant.
mIRC (qui aspire le presse-papier, détectant le classement statistiques) génère une liste des 1500 premiers joueurs de l'univers. En se souvenant de la dernière liste, il établie alors un différentielle entre les deux listes, voyant la progression des uns et des autres. Ce script utile permet d'une pars :- détecter ceux qui progressent vite (gros coup, HoF ?)
- détecter ceux qui progressent vite en cheatant (apport régulier de ressources)
- détecter ceux qui ont beaucoup baissé (s'est fait recyclé)
- détecter les inactifs qui ne progressent pas
Puis la page HTML ainsi générée était envoyée sur mon serveur par FTP.
J'ai par la suite réalisé un script PHP cette fois ci qui lisait le fichier "presse-papier" que mIRC envoyait par FTP. Et PHP triait dynamiquement selon un formulaire html, les informations (permettant d'avoir la différence entre 2 listes aux choix), ect..
Comme vous pouvez le constater, Ogame a été une grande source d'idée de développement :)
Move your body




Etait un petit concours organisé par l'IUT département SRC de Troyes en mars 2005. J'étais alors qu'en terminal, mais poussé par des amis, j'ai participé au concours, même si celui-ci ne correspondait pas du tout à mes connaissances et mes capacités de développement. Il nous a été demandé en 24h de dessiner un logo pour une compagnie de voyage, de réaliser une animation (flash par exemple) et un site complet. Je ne connaissais pas PHP à l'époque, très peu Flash et aucunement Photoshop. Mon équipe (composé de mon meilleur ami et ma meilleure amie qui n'étaient pas informaticien loin de là) m'on aidé comme ils ont pu... C'était plutot dans la bonne humeur, et nous sommes repartis avec tshirt, autocollant Antec, nappe IDE fluoresante et même des néon tuning USB^^. Nous sommes arrivés 7e sur 8 il est vrai; mais il faut reconnaître que se mesurer face a des SRC seconde année n'a pas été facile. Il parait même que mon site a été l'un des meilleurs !
Bêta testeur de DCX


En 2004, ClickHere, le créateur du site francophone www.scriptsdb.org, l'un des leader pour le Scripting mIRC m'avait confié la tâche de bêta-tester sa propre DLL : DCX (pour Dialog Conrtol eXtend). Cette DLL devait reprendre ce que faisait MDX à l'époque d'une manière "plus propre", d'être éventuellement open source s'il venait a abandonner le projet.
J'ai alors testé toutes les fonctionnalités, les unes sur les autres, et créé une petite boîte de dialogue de test, comme ci-contre.
Créer une banière rapidement

Ce petit programme en mIRC permet de créer très rapidement des bannières très personnalisable avec un rendu moyen (sans anti-aliasing). Tout se fait en deux étape : choix du fond (couleur unie, dégradée, image...) et choix du texte (police, taille, couleur, alignement, orientation, espacement...). J'étais jeune quand j'ai fais ceci^^ Je fouille mes antiquités voilà ce que je retrouve !
Arbre des poignées

Avant même que je ne découvre l'existance de Spy++ (peut-être même avant qu'il n'existe ?), j'ai codé en mIRC, en utilisant une DLL qui listait toutes les poignées, un visualisateur de poignées en une arboressance. Voyez plutot. Celà est utile pour retrouver l'hwnd d'un composant perdu, de Windows, que l'on aimerai déplacer (docker) ou ... cacher :P
jeudi 27 décembre 2007
Nom de code : Pythagore

Pythagore est le seul logiciel en C++ que j'ai abouti pour Ogame. Ce nom de code vient d'Asmeralde, qui était un fin calculateur pour chopper les flottes au retour. Pythagore devait permettre à l'alliance de calculer soit même l'horaire d'envoie de sa flotte pour chopper l'autre. C'est assez simple. Il suffit de regarder l'heure actuelle du serveur, de savoir combien de temps l'ennemi a mis pour faire un aller, et savoir combien de temps nous on met pour faire cet aller. La seule ruse pour contrer consisterai à ne pas envoyer la flotte à pleine vitesse, mais seulement à 90%, ce qui fausserai l'estimation de la duré de l'aller et donc l'heure de départ de notre flotte d'interception.
MSN sous Qt

Voilà mon premier client MSN en C++ qui a donné quelque chose. Certe il est inutilisable, mais il arrive tout de même à se connecter en utiliser le protocole MSNP11, a en passer le challenge. Il est prévu pour pouvoir se connecter en utilisant le protocol au choix de MSNP8 à 12. Pour le moment, comme je ne maitrise pas très bien les composants graphique Qt, j'ai juste développé les évènements sans les matérialiser. Voici ce que ça donne :
mercredi 26 décembre 2007
Ogame - Mass sonde
J'ai joué pendant 1 an et demi (donc 1 an et demi de ma vie perdu) dans ce jeu, Ogame. Je suis arrivé jusqu'a être classé 6ème de l'univers, avant de presque tout perdre par un tricheur. Après ce jour, j'ai décidé de tricher moi aussi et j'ai développé plusieurs petits programmes, la plupart en mIRC. Ceci que je vous présente est illégal, il permet d'envoyer des sondes partout (de sonder l'univers), enfin "galaxie par galaxie" seulement, en utilisant un proxy, un compte et envoyer tous les résultats sur un OGSpy. Le screen montre une version bêta :P
MSN

Je suis assez frian de MSN je l'avoue. A tel point que j'ai créé plusieurs client MSN. Deux en mIRC (le second n'a jamais été avancé), dont voici le premier ci-contre. Et deux autres en C++. Le premier sous Borland Builder avec la VCL, qui permet de créer facilement des boîte de dialogue et de faire communiquer l'ensemble (un peut comme .Net maintenant), mais ce projet n'a jamais décollé. Je l'ai recommencé sous QDevelop avec la librairie pseudo-gratuite de Qt. Cette fois j'ai légèrement avancé le développement : J'arrive a me connecter au serveur MSN correctement, et a recevoir les informations. Tout ceci en utilisant le procole MSNP11, dont je passe le challenge. Le problème a été dans un premier temps d'avoir une socket sécurisée (pour récupérer le ticket de connexion en HTTPS), ce que ne permettait pas gratuitement Qt à l'époque.
Grease Monkey

C'est un petit addon pour firefox qui permet d'injecter du code javascript dans la page courrante, et qui sera évidemment exécuté. Selon votre code, vous pouvez tout changer dans la page : récupérer les informations, les traiter et changer le rendu de la page. Je me suis servie de cet addon pour calculer des informations qui sont payante normalement, et pourtant nous avons assez d'information pour les calculer nous même ! Mon script les calculs ce qui me rend à égalité avec ceux qui paie... pour ces jeux débile :P
Dans cet exemple, le script (des scripts similaires existaient à l'époque, fait par d'autres personnes) vérifie si les ressources sont insuffisante pour lancer la construction, le cas échéant calcul dans combien de temps (donc quand...), d'après la production actuelle, les ressources seront suffisante.
ADA power !
J'aime ranger mes fichiers

Mais je n'aime pas toujours le faire à la main. Il m'est arrivé plusieurs fois de crééer des programmes qui rangent eux-même les fichiers, à ma guise. Celà me faire gagner pas mal de temps, même si j'en prend pas mal pour le coder ! Mais c'est vrai que je suis assez maniaque du rangement de fichier, on peut dire que mon petit million de fichier est rangé, et dédoublonné. L'exemple que je montre ici sont les fichiers musicaux. J'aime qui correspondent à
Dinoparc


Lorsque j'étais au lycée, on m'a fait découvrir un petit jeu en PHP où l'on contrôle des dinosaures et on en attaque des autres (ça rappel un jeu de gameboy japonais ?). On y jouait en équipe avec ma classe. Je m'étais amusé a coder des trucs pour que notre équipe marche du feu de dieu. D'abord, nos statistiques privées (pour motiver ?), et aussi les positions ennemis de façon "automatisée". Le tout fait en mIRC biensûr! Je ne connaissais pas le PHP à l'époque. J'ai également créé ce module qui permettait de gérer (sans utiliser l'interface PHP) nos dinosaure et de switcher de compte facilement.
Du virus au secret
Dans mes débuts de l'informatique, j'étais très attiré par la virusologie (ça existe ?) enfin tout ce qui attrait à la sécurité, aux virus et aux attaques d'une manière générale. Ca fait maintenant 2 ans que j'utilise mes PC, constemment allumés et connectés au haut débit, sans aucun firewall ou antivirus. J'utilise seulement Net limiter Pro qui joue le rôle de firewall / stats et limiteur de débit (utile avec un upload de 128 k...). Maintenant je m'intéresse plus sérieusement à la cryptographie. J'essai de comprendre les cryptages, me créer les miens, passer des challenges, les tester tout ça. Je suis assez fan de l'AES et de son dérivé Rinjdeal :) Mais celà requiert des connaissances mathématiques que je n'ai pas encore (et que je n'aurai jamais ?) pour les comprendres ou les implémenter. Mais je les utilise quand même !
Player en mIRC celui là!

J'ai commencé a coder en mIRC, en 2001. Maintenant je ne l'utilise que très rarement, juste pour faire des petits trucs rapidos. Mais il m'a été très utile a l'époque où je ne maitrisais que ce langage simple. Encore aujourd'hui je l'utilise, pour mon lecteur de musique, très proche de celui fait pour la fac (a part qu'il a 2 ans de plus ?). Ce lecteur a été fait pour moi et répond totalement a mes attentes, c'est à dire peu encombrant, donnant de grande playlist, capable de trouver la piste que je recherche, et même exporter ce qu'il écoute dans "ce que j'écoute" de MSN (et même compatible avec Now Playing, script MSN Plus!). Il se compose de deux liste : la liste de gauche est une liste de recherche. Une recherche (qui se lance après 250 ms après la dernière frappe) affiche le résultat de la recherche dans cette liste. La recherche est en expression régulière ce qui permet de trouver très précisément ce que je recherche, et ceci est effectué rapidement : environ 800 ms pour 40 000 piste référencées (dans un fichier texte, pas en mémoire), sous un P4.
La liste de droite correspond à une playlist (un simple fichier texte) et les pistes lues automatiquement son tirée du fichier courrant. On peut ajouter la piste sélectionnée dans la liste de gauche pour l'ajouter au fichier (liste de droite).
Player en MFC C++ !
Optimisation ! maître mot

Tous les matins, je perds un temps fou, entre les news de PC Inpact, la météo du jour, le cours de mes actions EDF, le cours du baril à New York, ce qu'il y a ce soir sur TF1, mon horoscope, l'actualité internationnale ou les news d'une blogosphère francophone. J'ai décidé que ce que je fais, mon ordinateur va le faire à ma place pour gagner du temps.
J'ai créé un "portail" pour moi-même, qui rassemble toutes ces informations, pour que je gagne un temps fou, le matin. D'un simple coup d'oeil, je vois la météo, la bourse et les news. Je pense avoir gagné environ 10 minutes tous les matins, ce qui n'est pas rien. De plus, ça m'évite "d'oublier" certains site. Maintenant, je visite à toute heure !
Questionnaire à la con
Je me suis amusé il y a quelques temps a réaliser un petit questionnaire en PHP/MySQL de 100 questions. Ce questionnaire possède un "id", qui est unique. Une fois le questionnaire rempli il ne peut plus être accéder. Et inutile d'entrer des "id" aléatoire.
A la fin, le script vous donne un pourcentage (qui est ni plus ni moins qu'une formule mathématique bidon selon le nombre de case coché). La vérité est que je possède, pour chacun des ID, les réponses qu'elles ont cochés. Et comme j'ai donné l'URL avec un id précis, le questionnaire n'est pas anonyme du tout ! Ce questionnaire était pour savoir ce que les autres pensent de moi, et j'ai été assez surpris ! ...
je suis trop bavard
je dit trop de la merde
je suis trop muet au téléphone
je suis trop vulgaire
je ne dit pas assez merci
je ne dit pas assez s'il vous plait
je ne dit pas assez bonjour
je ne dit pas assez aurevoir
je suis trop timide
je contredis trop
j'ai pas assez de répartie
je ne fais pas assez preuve de tacte
je ne suis pas assez diplomate
je parle trop d'informatique
je soul trop avec mes mails ou sms
j'ai un humour de merde
je prend tout au premier dégré
je me connecte pas assez
je casse de trop
je suis trop distant
je suis trop chiant
je me mêle trop de ce qui me regarde pas
je suis trop paranoïaque
je suis trop méchant avec ma mère
je suis trop méchant avec mon frère
je me montre trop quand je baille
je manque de retenue quand je pète
je manque de retenue quand je rote
je suis trop raciste
je ne suis pas assez croyant
je suis pas assez entreprenant
je suis pas assez modeste
je suis pas assez courrageux
je suis pas assez social
j'aime de la music de merde
j'aime des films de merde
j'aime bouffer de la merde
j'ai des goûts de merde
j'ai pas assez de culture
je suis trop prévisible
je suis pas assez honnête
je suis trop pessimiste
je suis trop dépressif
je suis pas assez impliqué dans la politique
je cède trop facilement
j'assume pas assez mes actions
je ne sais pas me défendre
je suis trop hypocrite
je ne suis pas assez patient
je ne fait pas assez mes devoirs
je ne sais pas lire
je ne sais pas écrire
je ne sais pas parler
je ne sais pas compter
je suis pas assez intelligent
je fais des études de merde
t'aime pas ma gueule
t'aime pas ma coupe de cheveux
t'aime pas mon parfum
t'aime pas ma mère
t'aime pas mon frère
je suis trop petit
je suis pas assez sportif
j'ai trop de boutons
je suis trop gros
je suis pas assez poilu
je suis trop myope
je pu de la gueule
je pu de partout
je pu de trop quand je chie
je ronfle trop
je mange trop
t'aime pas mon lit
je ne m'investie pas assez dans l'humanitaire
je prend pas assez soin de mes affaires
je prend pas assez soin des affaires des autres
je suis trop radin
je donne pas assez de mon temps
je suis trop axé sur l'économie et l'environnement
j'ai trop pas de tune
j'ai un studio de merde
je suis trop fénéant
je regarde pas assez la télé
j'écoute la musique trop fort
je suis trop jaloux
j'assure pas au lit [...]
je sais pas embrasser [...]
j'aime une trop petite bite [...]
j'ai de trop grosses couilles [...]
je suis trop émotif
je suis pas assez romantique
je suis trop macho
je suis trop coincé
t'aime pas mon frère et ma mère
je suis trop vieux jeu
j'habite trop loin
je conduit mal
t'aime pas ma voiture
t'aime pas mon PC
je n'ai pas assez de loisirs
A la fin, le script vous donne un pourcentage (qui est ni plus ni moins qu'une formule mathématique bidon selon le nombre de case coché). La vérité est que je possède, pour chacun des ID, les réponses qu'elles ont cochés. Et comme j'ai donné l'URL avec un id précis, le questionnaire n'est pas anonyme du tout ! Ce questionnaire était pour savoir ce que les autres pensent de moi, et j'ai été assez surpris ! ...
je suis trop bavard
je dit trop de la merde
je suis trop muet au téléphone
je suis trop vulgaire
je ne dit pas assez merci
je ne dit pas assez s'il vous plait
je ne dit pas assez bonjour
je ne dit pas assez aurevoir
je suis trop timide
je contredis trop
j'ai pas assez de répartie
je ne fais pas assez preuve de tacte
je ne suis pas assez diplomate
je parle trop d'informatique
je soul trop avec mes mails ou sms
j'ai un humour de merde
je prend tout au premier dégré
je me connecte pas assez
je casse de trop
je suis trop distant
je suis trop chiant
je me mêle trop de ce qui me regarde pas
je suis trop paranoïaque
je suis trop méchant avec ma mère
je suis trop méchant avec mon frère
je me montre trop quand je baille
je manque de retenue quand je pète
je manque de retenue quand je rote
je suis trop raciste
je ne suis pas assez croyant
je suis pas assez entreprenant
je suis pas assez modeste
je suis pas assez courrageux
je suis pas assez social
j'aime de la music de merde
j'aime des films de merde
j'aime bouffer de la merde
j'ai des goûts de merde
j'ai pas assez de culture
je suis trop prévisible
je suis pas assez honnête
je suis trop pessimiste
je suis trop dépressif
je suis pas assez impliqué dans la politique
je cède trop facilement
j'assume pas assez mes actions
je ne sais pas me défendre
je suis trop hypocrite
je ne suis pas assez patient
je ne fait pas assez mes devoirs
je ne sais pas lire
je ne sais pas écrire
je ne sais pas parler
je ne sais pas compter
je suis pas assez intelligent
je fais des études de merde
t'aime pas ma gueule
t'aime pas ma coupe de cheveux
t'aime pas mon parfum
t'aime pas ma mère
t'aime pas mon frère
je suis trop petit
je suis pas assez sportif
j'ai trop de boutons
je suis trop gros
je suis pas assez poilu
je suis trop myope
je pu de la gueule
je pu de partout
je pu de trop quand je chie
je ronfle trop
je mange trop
t'aime pas mon lit
je ne m'investie pas assez dans l'humanitaire
je prend pas assez soin de mes affaires
je prend pas assez soin des affaires des autres
je suis trop radin
je donne pas assez de mon temps
je suis trop axé sur l'économie et l'environnement
j'ai trop pas de tune
j'ai un studio de merde
je suis trop fénéant
je regarde pas assez la télé
j'écoute la musique trop fort
je suis trop jaloux
j'assure pas au lit [...]
je sais pas embrasser [...]
j'aime une trop petite bite [...]
j'ai de trop grosses couilles [...]
je suis trop émotif
je suis pas assez romantique
je suis trop macho
je suis trop coincé
t'aime pas mon frère et ma mère
je suis trop vieux jeu
j'habite trop loin
je conduit mal
t'aime pas ma voiture
t'aime pas mon PC
je n'ai pas assez de loisirs
Ma mort ? j'y pense déjà
Je ne sais pas trop pourquoi, mais j'ai déjà pensé comment se dérouleront les choses après ma mort. Je suis peut-être bien loin de la vérité. Mais j'ai comme un "patrimoine" virtuel, enfin je rêve surement encore. Et pour y accéder, je suis en train de réaliser un portail numérique, en PHP, qui sera hébergé sur mon site www.beaudier.fr.
Première chose, un mot de passe sera demandé, et seule une personne peut le trouver, la personne qui, à l'heure où je vous parle compte le plus pour moi. Ce mot de passe n'est ni plus ni moins que le sien. Par la suite, la personne accèdera à un tableau de bord. Sa mission, pour accéder a mon patrimoine sera simple. Cliquer sur 5 boutons et attendre. Le bouton envoie un email a une personne que je connais particulièrement bien, et lui demandera de répondre a quelques questions, seulement si je suis réellement mort. Ces questions, seule la personne concernée peut y répondre, et elle n'aura pas le droit à l'erreur. Dès qu'au moins 3 des 5 personnes ont répondu au questionnaire, alors la personne pourra accéder a mes secrets.
Première chose, un mot de passe sera demandé, et seule une personne peut le trouver, la personne qui, à l'heure où je vous parle compte le plus pour moi. Ce mot de passe n'est ni plus ni moins que le sien. Par la suite, la personne accèdera à un tableau de bord. Sa mission, pour accéder a mon patrimoine sera simple. Cliquer sur 5 boutons et attendre. Le bouton envoie un email a une personne que je connais particulièrement bien, et lui demandera de répondre a quelques questions, seulement si je suis réellement mort. Ces questions, seule la personne concernée peut y répondre, et elle n'aura pas le droit à l'erreur. Dès qu'au moins 3 des 5 personnes ont répondu au questionnaire, alors la personne pourra accéder a mes secrets.
Espionner les mouvement d'un contact MSN

Etant grand conservateur, je garde toujours mes archives de conversation, mais aussi les évènements. A partir de ce fichier au format XML enregistré par MSN Plus!, je peux couvrir, selon mon temps de connexion une grande période. Ainsi, je peux déterminer en moyenne, les temps de connexion de mes contacts, leurs habitudes.
Quelques petites améliorations restent encore à apporter tel-que :
- si le contact se déconnecte avant que j'ai trouvé sa connexion : alors le contact était connecté avant moi
- et d'autres ? utiliser alors si possible les autres évènements (changement de status, de pseudo, d'avatar, de sous-pseudo...)
Transformée de fourrier lente 2D
Bon les maths c'est pas mon truc. J'ai vaguement compris ce qu'était la transformée de fourrier, et il fallait l'implémenter dans le langage de notre choix. J'ai commencé en PHP, le langage le plus commode :
J'ai d'abord découpé l'image d'entrée en un tableau d'entier a deux dimentions (entier équivalent à unsigned char). Ceci était pour optimiser la vitesse de lecture des pixels.
J'ai ensuite 4 boucles imbriqués qui, pour chacun des pixels (i, j), alors faire la somme d'un calcul complexe pour chacun des pixels de l'image (i,j).
Puis la recomposition de l'image en écrivant pixel par pixel les valeurs du tableau.
Problème, l'implémentation des complexes, notamment exp(-2*i*val) était ennuyeuse. J'ai sèché. Le problème a été résolu en C#, après avoir revu des formules sur les complexes : j'aurai du écouter en terminale !
J'ai d'abord découpé l'image d'entrée en un tableau d'entier a deux dimentions (entier équivalent à unsigned char). Ceci était pour optimiser la vitesse de lecture des pixels.
J'ai ensuite 4 boucles imbriqués qui, pour chacun des pixels (i, j), alors faire la somme d'un calcul complexe pour chacun des pixels de l'image (i,j).
Puis la recomposition de l'image en écrivant pixel par pixel les valeurs du tableau.
Problème, l'implémentation des complexes, notamment exp(-2*i*val) était ennuyeuse. J'ai sèché. Le problème a été résolu en C#, après avoir revu des formules sur les complexes : j'aurai du écouter en terminale !
CSG to Voxel
Bien que ce n'est pas un langage que l'on utiliserait habituellement pour faire ceci, je dois dire que l'implémentation des expressions régulières en PHP est si simple, que le PHP devient dans ce cas un langage très utile.
J'ai créé un convertiseur de fichier CSG (*.pov, de PovRay) vers un autre fichier CSG mais qui ne créé lui que des voxels (pixels volumétriques).
Dans un premier temps, je traite le fichier d'entré pour éliminer les parasites (les structures de contrôle, les commentaires, les lignes vides), puis je met les accolades au bon endroit.
Ensuite je parcours ce fichier ainsi nettoyé pour traiter les formes a dessiner en 3 temps. Premier temps, est la détection de la forme : { . A partir de ceci, toutes les lignes suivantes, sauf si cette ligne vaut précisément }, alors fait parti de la définition de la forme. Selon la forme courante, j'attends différents paramètres (coordonnées, diamètre, rotation, translation) que je stock dans un tableau temporaire, lequel est lu lors de la détection de l'accolade fermante (accolade qui doit être de la même profondeur que lors de l'ouverture avec la définition de la forme) et j'écris sur le fichier de sortie mes Voxels.
J'ai créé un convertiseur de fichier CSG (*.pov, de PovRay) vers un autre fichier CSG mais qui ne créé lui que des voxels (pixels volumétriques).
Dans un premier temps, je traite le fichier d'entré pour éliminer les parasites (les structures de contrôle, les commentaires, les lignes vides), puis je met les accolades au bon endroit.
Ensuite je parcours ce fichier ainsi nettoyé pour traiter les formes a dessiner en 3 temps. Premier temps, est la détection de la forme :
Poster un article sur skyblog en PHP:
C'est ma dernière réalisation, un simple script PHP:
if($_SERVER['REQUEST_METHOD'] !== "POST") die("E600");
if(!isset($_POST['titre']) || !$_POST['titre'] || !isset($_POST['text']) || !$_POST['text']) die("E601");
$login = "need_login_form_login=login&need_login_form_password=pass";
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "POST /blog/?connect=1 HTTP/1.1
Host: www.skyrock.com
Content-Type: application/x-www-form-urlencoded
Content-Length: ".strlen($login)."
Connection: close
$login";
$str = "";
fwrite($file, $header);
while($resp = fread($file, 100)) {
$str .= $resp;
}
$tab = explode("\r\n", $str);
ereg("PHPSESSID=([0-9a-f]+);", $tab[3], $reg);
$PHP = $reg[1];
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "GET /m/blog/article_new.php HTTP/1.1
Host: www.skyrock.com
Cookie: PHPSESSID=$PHP; number_of_failed_login=deleted; locale=fr_FX;;
Connection: close
";
$sendme = 0;
fwrite($file, $header);
while($resp = fread($file, 10000)) {
if(ereg("\"sendMe\" value=\"([0-9a-f]+)\"", $resp, $reg))
$sendme = $reg[1];
}
$titre = $_POST['titre'];
$text = $_POST['text'];
$str = "title=".urlencode(utf8_decode($titre))."&text=".urlencode(utf8_decode($text))."&online=1&media=none&align=0&sendMe=$sendme&save=Continuer";
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "POST /m/blog/article_new.php HTTP/1.1
Host: www.skyrock.com
Cookie: PHPSESSID=$PHP; locale=fr_FX; connected=1;
Content-Type: application/x-www-form-urlencoded
Content-Length: ".strlen($str)."
Connection: close
$str";
fwrite($file, $header);
echo "OK";
?>
if($_SERVER['REQUEST_METHOD'] !== "POST") die("E600");
if(!isset($_POST['titre']) || !$_POST['titre'] || !isset($_POST['text']) || !$_POST['text']) die("E601");
$login = "need_login_form_login=login&need_login_form_password=pass";
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "POST /blog/?connect=1 HTTP/1.1
Host: www.skyrock.com
Content-Type: application/x-www-form-urlencoded
Content-Length: ".strlen($login)."
Connection: close
$login";
$str = "";
fwrite($file, $header);
while($resp = fread($file, 100)) {
$str .= $resp;
}
$tab = explode("\r\n", $str);
ereg("PHPSESSID=([0-9a-f]+);", $tab[3], $reg);
$PHP = $reg[1];
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "GET /m/blog/article_new.php HTTP/1.1
Host: www.skyrock.com
Cookie: PHPSESSID=$PHP; number_of_failed_login=deleted; locale=fr_FX;;
Connection: close
";
$sendme = 0;
fwrite($file, $header);
while($resp = fread($file, 10000)) {
if(ereg("\"sendMe\" value=\"([0-9a-f]+)\"", $resp, $reg))
$sendme = $reg[1];
}
$titre = $_POST['titre'];
$text = $_POST['text'];
$str = "title=".urlencode(utf8_decode($titre))."&text=".urlencode(utf8_decode($text))."&online=1&media=none&align=0&sendMe=$sendme&save=Continuer";
$file = fsockopen("www.skyrock.com",80);
if(!$file) die("Impossible de se connecter");
$header = "POST /m/blog/article_new.php HTTP/1.1
Host: www.skyrock.com
Cookie: PHPSESSID=$PHP; locale=fr_FX; connected=1;
Content-Type: application/x-www-form-urlencoded
Content-Length: ".strlen($str)."
Connection: close
$str";
fwrite($file, $header);
echo "OK";
?>
Inscription à :
Articles (Atom)
