
| Page 1 2 3 4 ... 6 7 8 9 Suivante | |
| Auteur | Message |
|---|---|
| 1 visiteur sur ce sujet (1 Anonyme) | |
| Page 1 2 3 4 ... 6 7 8 9 Suivante | |
DHKold
|
# Posté le 16/05/2006 à 21:10:10 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
Bonjour à tous. Voici le nouveau défi, présenté sous forme d'une mise en situation.
-------------- Citation : Une journée bien remplie Driiiiiing, il est 7h04, votre réveille sonne. Vous vous levez après avoir violement massacré tous les boutons de ce fichu réveil. Un peu endormi, que dis-je, complètement des le gaz après la petite soirée entre amis d'hier, vous titubez vers la salle de bain. Vous faites coulez la douche pour vous reveiller (ou serait-ce pour ôter cette horrible odeur d'après-fête?), et lentement, vous émergez de ce lointain souvenir de guindaille pour revenir à la triste réalité.
Après cette petite remise en forme, vous vous rendez dans votre cuisine pour y déguster un bon bol de Kellugg's. En chemin, vous vous demandez encore une fois ou vous avez pu ranger cette saloperie de clé de voiture... Heureusement, vous avez un double quelquepart dans le salon. Enfin, vous êtes fin prêt pour partir travailler. Vous bossez chez MaxisoftSystem, une grosse multinationale qui a envahi le monde de l'informatique depuis quelques années. Vous n'y avez qu'un poste de programmeur, dans la conception et la gestion des différents portails de l'entreprise. Vous bossez actuellement sur un projet pationnant de "Correction de bug" (youhou?). Votre plus grand rêve est d'obtenir le post de directeur de projets web, place occupée actuellement par "le vieux Joe", un ancêtre de 63 ans qui pense encore que le binaire est une marque de lessive. Personne ne sait exactement comment il a obtenu le job, mais une chose est sûr, il va bientôt claquer prendre sa retraite, laissant une place importante derrière lui. Cette place, vous comptez bien la récupérer, celà vous permettrait d'obtenir un salaire faramineux,ainsi qu'une voiture de société et une copine flambant-neuve
Comme chaque jour de la semaine, vous vous asseillez à votre bureau. Vous entamez la correction d'un bug (Mr Untel s'est plein du décalage anormal de 2px de la liste déroulante sur une des 2815 pages de son site). Soudain, la porte s'ouvre, et un vieux en costume gris suivi du patron de la boite entrent en discuttant. Très vite vous êtes mis au courrant: L'inscription aux sites gérés Maxisoft pose problème pour les malvoyants, qui ne peuvent identifier les chiffres de l'image de contrôle. Cette image, qui empêche les robots de valider le formulaire, ne peut être vue par certains visiteurs handicapés. Mr Mimosa, un riche homme d'affaire et actionnaire de Maxisoft à 35%, souffre d'un handicap visuel l'empêchant de s'inscrire aux sites. Son conseiller, qui se trouve être le vieux au costar gris, est venu pour plaider la cause de son client avant d'engager des procédures pénales contre la société. Bien entendu, le big-boss souhaite éviter les problèmes. Mr Mimosa veut pouvoir s'inscrire aux site de la société qu'il possède à 35%. Votre directeur de projet étant en congé maladie (en plus d'être incompétent, il est gâteux!), c'est à vous que le directeur place toute sa confiance. Après réflexion, vous convenez qu'il n'est pas possible de supprimer l'image de contrôle, car celà entrainerait une surcharge de traitement à cause des robots et autres plaisantins. Vous vous rabattez donc vers une solution visant à permettre à Mr Mimosa d'écouter la clé de contrôle inscrite sur l'image. Cette clé est en fait composée de plusieurs chiffres. Il est hors de question de prévoir un fichier son par code, celà prendrait beaucoup trop de place inutillement. Votre mission, si vous la menez à bien, vous assurera l'accès au post qui vous fait tant envie. Votre objectif premier est donc de permettre, à partir d'un ensemble de fichiers sons, de créer dynamiquement un fichier son. Par la suite, il est possible que des lettres soient ajoutée au code de validation, vous pouvez donc prévoir un moyen de les ajouter. Enfin, le directeur du département de recherche en solutions de navigation vous à informé qu'il serait fortement interressé par un script permettant de gérer plus précisément des fichiers sons. Il vous conseille d'utiliser la POO, mais vous n'êtes pas obligé de le faire, après tout, il n'est pas votre chef (Mais au vu de son poste, il peut être très utile de le contenter)
Dernière précision, vous devez raliser ce script dans le langage PHP, dans sa version 4 ou 5, et sans utiliser d'extension particulière. On vous propose de travailler avec des fichier .wav, et on vous fourni les 10 fichiers sons des nombres de 0 à 9. Fichier contenant les sons: sons0-9.rar Objectifs obligatoiresL'objectif principal est de créer un unique fichier WAV valide à partir des fichiers 0.wav ... 9.wav. Pour ce faire, vous devrez manipulez les données binaires du fichier. Les objectifs: - Créer une fonction qui analyse un fichier WAV classique et renvoie un tableau avec des informations:
- Créer une fonction qui crée un fichier WAV classique à partir de plusieurs autres fichiers Vos fonctions ne doivent pas provoquer d'erreur inatendues, c'est vous qui devez gérer les erreurs, par exemple:
Infos
Sites utiles concernant le format RIFF WAV: http://crteknologies.free.fr/programmation/ressources/wav.html http://www.freesoundeditor.com/incagen.html?docwave.htm~main http://www.sonicspot.com/guide/wavefiles.html http://www.neurotraces.com/scilab/scilab2/node24.html http://www.borg.com/~jglatt/tech/wave.htm Les principales fonctions dont vous aurrez besoin: - Fonctions de manipulation de fichiers: fopen, fread, fputs, fclose, fseek et ftell - Fonctions de manipulation binaires: pack et unpack Vous avez 1 mois et 15 jours environs, vous devez rendre vos scripts AVANT le 1 juillet 2006. Vous pouvez utiliser PHP4 ou PHP5. Vous pouvez utiliser la POO (PHP4 ou PHP5 ou aucune). Il y aurra plusieurs vainceurs: - Catégorie débutant : Celui qui aurra le mieux réussi les objectifs minimums - Catégorie intermédiaire : Celui qui aurra le mieux réussi les objectifs minimums et secondaires - Catégorie porfessionnelle : Celui qui aurra lemieux réussi les objectifs minimums, secondaires et additionnels Objectifs secondaires
Objectifs additionnels
FinalementComme vous le voyez, c'est exotique, et je parie que vous avez rarement manipulé des fichiers binaires. Les fonctions pack et unpack sont très interressantes. J'ai créé, grâce à elles, une fonction ImageCreateFromBMP, une classe pour ouvrir et enregistrer des zips, et maintenant un script pour aider les malvoyants. Si le délais se trouve être trop juste, il sera prolongé. Ca parait difficle au début, parce que on imagine mal comment gérer des données binaires, mais un fois qu'on commence, ca devient assez simple. N'hésitez pas à partager vos sources concernant la structure des fichiers WAV. Resultat minimal: http://www.dhkold.be/dev/sounds.php?num=1234567890 |
winzou
|
# Posté le 16/05/2006 à 21:16:38 |
lala![]()
|
Le défi est super
Mais 15 jours c'est pas assez. Il faut non seulement laisser le temps de le faire, mais aussi le temps aux gens de voir le défi
|
Philippe
|
# Posté le 16/05/2006 à 21:21:26 |
Refléchissez![]()
|
ca c'est du défi ... enfin quelque chose d'utile et d'interressant, m'y penche dès que j'ai trois secondes
![]() |
Makkhdyn
|
# Posté le 16/05/2006 à 21:26:33 |
Beuhhhh![]() |
Mouais en plein dans la periode du bac...
Ceci n'est pas une signature |
jordan
|
# Posté le 16/05/2006 à 21:27:25 |
Développeur indépendant![]()
Ville : Couternon |
Dis donc, ton exemple foire, window média plante ! O_o (A partir du numéro 9)
Édité
le 16/05/2006 à 21:28:08
par jordan
|
winzou
|
# Posté le 16/05/2006 à 21:28:28 |
lala![]()
|
1er juillet = ~10 jours après la fin du bac
(sachant que c'est fait en une après midi )
|
DHKold
|
# Posté le 16/05/2006 à 21:29:05 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
|
Jashugal
|
# Posté le 16/05/2006 à 21:30:27 |
WebKiwi Network![]()
|
|
jordan
|
# Posté le 16/05/2006 à 21:32:15 |
Développeur indépendant![]()
Ville : Couternon |
On peut utiliser des autres sons (ceux de la meuf "sexy" dans CSS) ? Bien évidemment pour faire plaisir à Mr Mimosa. :P
|
DHKold
|
# Posté le 16/05/2006 à 21:44:56 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
Oui, vous pouvez modifier les sons. Attention, votre script doit fonctionner avec n'importe quels sons WAV
jordan > Normallement maintenant mon petit script marche, tu pourrais réessayer? (Moi ça fonctionne ^^) [J'indiquais juste une mauvaise taille, donc il pensait que le fichier durait plus longtemps que normallement ]
|
jordan
|
# Posté le 16/05/2006 à 21:46:15 |
Développeur indépendant![]()
Ville : Couternon |
Oui, c'est bon maintenant
|
Quadehar
|
# Posté le 16/05/2006 à 22:00:31 |
![]()
études : EFREI |
arf, mince, je vais partir en voyage scolaire. Enfin, bon, normalement, j'aurai le temps de m'y mettre. Ce défi-ci est vraiment génial
|
Macleto
|
# Posté le 16/05/2006 à 22:11:00 |
lom é tro 1 rozo pansan![]()
|
J'en suis
(et bourdail, comment on lit ces put*** de fichiers en PHP déjà ? )
|
minirop
|
# Posté le 16/05/2006 à 23:06:21 |
私の世界![]()
Ville : Reims |
voilà un défi original
Mes figurines - Mes Manga - vive la contrefaçon \o/ - lecteur audio en console - Bot IRC fait avec QtIDE multiplateforme pour Qt !! Qt @ IRC --> #qt-fr@irc.freenode.net !! |
CrowkaiT
|
# Posté le 16/05/2006 à 23:50:56 |
|
Sakila the dolphin
études : Polytech'Marseille |
Sympa, original et utile.
Si j'arrive à trouver un peu de temps entre mes milliers de ligne de code je rendrai ma copie
Découvrez le CMS : PHPBoost, créez votre site complet en quelques clics... |
Leward
|
# Posté le 17/05/2006 à 01:29:02 |
![]()
Ville : Dunkerque |
La barre est placée haute pour ce défi.
|
Savageman
|
# Posté le 17/05/2006 à 09:29:09 |
![]()
études : INSA Lyon |
Cool, voilà un défi carremment utile
En plus il demande un peu de recherche et de réflexion, donc ca va nous apprendre des trucs, kewl
|
Gimmly
|
# Posté le 17/05/2006 à 09:33:46 |
j'ai toujours tort![]()
|
oui bravo, c'est très très bien, mais je pense même pas arriver en un an le niveau débutant
ca c'est du défi !!
les adjectifs numéraux avaient l'avantage d'avoir l'air faisables ^^, mais la c'est vraiment sympa comme truc lol ! |
NeoZer0
|
# Posté le 17/05/2006 à 09:43:06 |
Nostalgeek![]()
études : EI Toulouse |
Cool le truc mais si on peut créer un fichier wav à partir d'autre ca signifit que les robots peuvent le lire aussi enfin bref c'est un détail de pratique. Je vais essayer de faire ce défi même si j'ai pas beaucoup de temps.
n'oubliez pas de ![]() Un code php commence par <?php et fini par ?> ne l'oublier pas dans le zCode |
DHKold
|
# Posté le 17/05/2006 à 09:48:48 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
NeoZero > Bah alors si tu veux t'amuser, tu brouille aléatoirement le son, par exemple en décalant toutes les amplitudes
C'est le même problème qu'avec la reconnaissance d'images par le robot Seulement je vois mal qui s'amuserait à coder un robot juste pour ca
|
NeoZer0
|
# Posté le 17/05/2006 à 09:50:14 |
Nostalgeek![]()
études : EI Toulouse |
bha pourquoi il y en a qui code des robots? c'est pour emmerder le monde alors pourquoi pas
n'oubliez pas de ![]() Un code php commence par <?php et fini par ?> ne l'oublier pas dans le zCode |
Pl00b
|
# Posté le 17/05/2006 à 10:10:53 |
Quote²![]()
|
Outch, ca à l'air très dur ca.
Tuto en cour de rédaction -> Optimiser vos programmes PHP |
Julie
|
# Posté le 17/05/2006 à 10:17:35 |
Un regard peut créer l'univers![]()
|
Défi Génial
je suis de la partie depuis le temps que je voulais me mettre à la manipulation de fichiers binaire, ça va etre l'occasion.
bon courrage @ tout le monde
Cherche Graphiste |
Shughuy
|
# Posté le 17/05/2006 à 10:19:58 |
|
|
Citation :
- Créer une fonction qui analyse un fichier WAV classique et renvoie un tableau avec des informations:
Taille de la piste Echantillonage (Fréquence, Bits par secondes, etc...) Longeur de piste en secondes Nombres de cannaux (mono, stéréo) Si on utilise la POO, plutot que de renvoyer un tableau, on peut renvoyer un objet ? Je sais pas si c'est mieux, je me pose juste la question.
Édité
le 17/05/2006 à 10:20:32
par Shughuy
|
Philippe
|
# Posté le 17/05/2006 à 10:29:19 |
Refléchissez![]()
|
"la barre est haute pour ce défi"
ba enfin un défi qu'on ne fera pas en deux heures de temps en mangeant une pizza et regardant un divX en même temps ![]() |
Shughuy
|
# Posté le 17/05/2006 à 10:46:32 |
|
|
Le souci, c'est que si c'est trop dur, ça risque de rebuter beaucoup de monde. Et la fête en sera d'autant moins folle
|
DHKold
|
# Posté le 17/05/2006 à 11:58:12 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
Attention, c'est tout à fait faisable. Les deux objectifs principaux tiennent sur 40 lignes
Et mis à par pack et unpack, vous connaissez déjà tout ce qu'il faut pour le réaliser. Avec les liens sur le format WAV, vous pouvez y arriver
|
Shughuy
|
# Posté le 17/05/2006 à 12:10:45 |
|
|
Je dis pas que c'est pas faisable.
Mais quand on n'a jamais touché au binaire, c'est quelque peu ardu. J'ai du ramer pendant bien 2 heures pour récupérer la longueur du fichier... C'est bien beau de savoir que c'est un long int, il faut ensuite savoir comment le décrypter... Ce qui est très simple, je vous l'accorde, mais pas avant d'avoir pigé le truc. 2 éclaircissements s'il vous plait : Citation : Créer une fonction qui crée un fichier WAV classique à partir de plusieurs autres fichiers
En gros, on a une fonction à laquelle on passe 2 fichiers sons (par exemple) et elle retourne un fichier qui est un merge des 2, ou elle le sauvegarde sur le disque dur ? Citation : Vos fonctions ne doivent pas provoquer d'erreur inatendues, c'est vous qui devez gérer les erreurs, par exemple:
Mauvais format de fichier Fichier corrompu Aucune piste Format Inconnu Accès impossible en lecture / ecriture Serait-il possible d'avoir des fichiers qui déclencheraient ces erreurs ? Juste histoire d'être sur de bien les identifier. Merci
Édité
le 17/05/2006 à 12:11:35
par Shughuy
|
DHKold
|
# Posté le 17/05/2006 à 12:24:18 |
Ex-Admin![]()
Ville : Leuze-en-hainaut |
1. Le fichier doit pouvoir être enregistré. Mais la fonction peut très bien fonctionner comme ImagePNG, qui selon un paramètre, renvoie ou enregistre le fichier
2. Si le fichier créé est corrompu, Window Merdia Player ne pourra pas le lire Ca veut dire que si une erreur survient, la fonction ne doit pas créer le fichier, mais renvoyer FALSE ou un code d'erreur, ou même lancer une erreur PHP pour indiquer le problème. Le but est donc de ne pas enregistrer de fichier si il est corrompu
|
Shughuy
|
# Posté le 17/05/2006 à 12:31:06 |
|
|
Oki...
J'avais pas tilté que les erreurs pouvaient survenir lors du merge.. Je pensais que c'était durant l'analyse que les erreurs pouvaient survenir. On va regarder ça de plus près. |
Retour au forum "PHP" ou à la liste des forums
Le Site du Zéro vous proposera bientôt de nouveaux cours partant de Zéro dans d'autres domaines que l'informatique !

