Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > [Défi] Ou comment aider les aveugles > Lecture du sujet

[Défi] Ou comment aider les aveugles

Du 16 mai au 1 juillet

Vous devez être inscrit pour pouvoir poster des messages

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
Hors ligne DHKold # Posté le 16/05/2006 à 21:10:10
Ex-Admin
Avatar
Groupe : Membres
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 obligatoires



L'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:
  • Taille de la piste
  • Echantillonage (Fréquence, Bytes par secondes, etc...)
  • Longeur de piste en secondes
  • Nombres de cannaux (mono, stéréo)

- 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:
  • Mauvais format de fichier
  • Fichier corrompu
  • Aucune piste
  • Format Inconnu
  • Accès impossible en lecture / ecriture


Infos



  • Vous disposez des 10 fichiers WAV dans l'archive sons0-9.rar (ouvrir avec Winrar) : sons0-9.rar
  • Vous devez consulter la documentation de PHP: LIEN
  • Vous ne pouvez utilisez aucune extension non native de PHP


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



  • Pourvoir extraire une partie d'une piste
  • Créer une visualisation "oscilloscope" d'un interval de piste (avec GD)


Objectifs additionnels



  • Pouvoir réechantillonner un son (mono <> stéréo ; 8bits <> 16 bits)
  • Pouvoir superposer deux sons


Finalement



Comme 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

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne winzou # Posté le 16/05/2006 à 21:16:38
lala
Avatar
Groupe : Membres
Le défi est super :p

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 ^^

cImage utilisateurc
 
Hors ligne Philippe # Posté le 16/05/2006 à 21:21:26
Refléchissez
Avatar
Groupe : Membres
ca c'est du défi ... enfin quelque chose d'utile et d'interressant, m'y penche dès que j'ai trois secondes

Image utilisateur
 
Hors ligne Makkhdyn # Posté le 16/05/2006 à 21:26:33
Beuhhhh
Avatar
Groupe : Membres
Mouais en plein dans la periode du bac...

Ceci n'est pas une signature
 
Hors ligne jordan # Posté le 16/05/2006 à 21:27:25
Développeur indépendant
Avatar
Groupe : Membres
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
Hors ligne winzou # Posté le 16/05/2006 à 21:28:28
lala
Avatar
Groupe : Membres
1er juillet = ~10 jours après la fin du bac :p (sachant que c'est fait en une après midi ^^ )

cImage utilisateurc
 
Hors ligne DHKold # Posté le 16/05/2006 à 21:29:05
Ex-Admin
Avatar
Groupe : Membres
Makkhdyn > Je ne savais pas que c'était le BAC :-° Mais j'ai augmenté la limite ^^

jordan > Oui, j'ai fait ca en vitesse, et j'ai un bug au niveau de l'entête, que je corrigerai si j'ai le temps :)

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne Jashugal # Posté le 16/05/2006 à 21:30:27
Your Lòve Is A Liie;
Avatar
Groupe : Membres
Effectivement c'est pas trop mal, mais le niveau ! o_O

T()ÚT N'€ST QÚ`ÌLLÚSÌ()N...
 
Hors ligne jordan # Posté le 16/05/2006 à 21:32:15
Développeur indépendant
Avatar
Groupe : Membres
On peut utiliser des autres sons (ceux de la meuf "sexy" dans CSS) ? Bien évidemment pour faire plaisir à Mr Mimosa. :P
Hors ligne DHKold # Posté le 16/05/2006 à 21:44:56
Ex-Admin
Avatar
Groupe : Membres
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 :) ]

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne jordan # Posté le 16/05/2006 à 21:46:15
Développeur indépendant
Avatar
Groupe : Membres
Oui, c'est bon maintenant :)
Hors ligne Quadehar # Posté le 16/05/2006 à 22:00:31
Avatar
Groupe : Membres
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 :)

Libre Pensée - Blog regroupant des histoires et nouvelles rédigées par mes soins.
 
Hors ligne Macleto # Posté le 16/05/2006 à 22:11:00
lom é tro 1 rozo pansan
Avatar
Groupe : Membres
J'en suis :)

(et bourdail, comment on lit ces put*** de fichiers en PHP déjà ? :p )

Je me suis rencontré entre deux siècles, comme au confluent de deux fleuves ; j'ai plongé dans leurs eaux troublées, m'éloignant à regret du vieux rivage où je suis né, nageant avec espérance vers une rive inconnue.
Châteaubriand, conclusion aux Mémoires d'Outre-tombe
 
Hors ligne minirop # Posté le 16/05/2006 à 23:06:21
吸血鬼
Avatar
Modérateurs
voilà un défi original ;)

pas commencés - en cours - finis - (dernier tome lu)
manga : Love Hina - Ichigo 100% - Fruits Basket - School Rumble - Death Note - Parmi Eux - One Piece (46) - Naruto (45) - Lovely Complex (10) - Fullmetal Alchimist (22) -> My Manga
IDE multiplateforme pour Qt Image utilisateur !! Qt @ IRC --> #qt-fr@irc.freenode.net
 
Hors ligne CrowkaiT # Posté le 16/05/2006 à 23:50:56
Sakila the dolphin
Avatar
Groupe : Membres
Sympa, original et utile.

Si j'arrive à trouver un peu de temps entre mes milliers de ligne de code je rendrai ma copie :p

Nouveau CMS PHP: PHPBoost, créez votre site complet en quelques clics...
 
Hors ligne Leward # Posté le 17/05/2006 à 01:29:02
Avatar
Groupe : Membres
La barre est placée haute pour ce défi.
Hors ligne Savageman # Posté le 17/05/2006 à 09:29:09
Insa : If inside
Avatar
Groupe : Membres
Cool, voilà un défi carremment utile :p En plus il demande un peu de recherche et de réflexion, donc ca va nous apprendre des trucs, kewl :)

Absent du 27 novembre au 15 décembre.
Image utilisateur
Image utilisateur
 
Hors ligne Gimmly # Posté le 17/05/2006 à 09:33:46
j'ai toujours tort
Avatar
Groupe : Membres
oui bravo, c'est très très bien, mais je pense même pas arriver en un an le niveau débutant o_O 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 !
Hors ligne NeoZer0 # Posté le 17/05/2006 à 09:43:06
Nostalgeek
Avatar
Groupe : Membres
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 Image utilisateur ;)
Un code php commence par <?php et fini par ?> ne l'oublier pas dans le zCode
 
Hors ligne DHKold # Posté le 17/05/2006 à 09:48:48
Ex-Admin
Avatar
Groupe : Membres
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 ^^

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne NeoZer0 # Posté le 17/05/2006 à 09:50:14
Nostalgeek
Avatar
Groupe : Membres
bha pourquoi il y en a qui code des robots? c'est pour emmerder le monde alors pourquoi pas

n'oubliez pas de Image utilisateur ;)
Un code php commence par <?php et fini par ?> ne l'oublier pas dans le zCode
 
Hors ligne Pl00b # Posté le 17/05/2006 à 10:10:53
Quote²
Avatar
Groupe : Membres
Outch, ca à l'air très dur ca.

Tuto en cour de rédaction -> Optimiser vos programmes PHP
 
Hors ligne Julie # Posté le 17/05/2006 à 10:17:35
Un regard peut créer l'univers
Avatar
Groupe : Membres
Défi Génial :D

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 ;)
 
Hors ligne Shughuy # Posté le 17/05/2006 à 10:19:58
Groupe : Membres
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
Hors ligne Philippe # Posté le 17/05/2006 à 10:29:19
Refléchissez
Avatar
Groupe : Membres
"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

Image utilisateur
 
Hors ligne Shughuy # Posté le 17/05/2006 à 10:46:32
Groupe : Membres
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 :(
Hors ligne DHKold # Posté le 17/05/2006 à 11:58:12
Ex-Admin
Avatar
Groupe : Membres
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 :)

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne Shughuy # Posté le 17/05/2006 à 12:10:45
Groupe : Membres
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 :D
Édité le 17/05/2006 à 12:11:35 par Shughuy
Hors ligne DHKold # Posté le 17/05/2006 à 12:24:18
Ex-Admin
Avatar
Groupe : Membres
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 :)

Image utilisateur
Ouverture prochaine
----------
Pack DHemoticons (Utilisation Libre) : Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne Shughuy # Posté le 17/05/2006 à 12:31:06
Groupe : Membres
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

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 164 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0293s (0.0125s)