Aller au menu - Aller au contenu

[Défi] Ou comment aider les aveugles

Du 16 mai au 1 juillet

Pour accéder à cette section
Connectez-vous !
connexion_rpx
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

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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

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 ^^
Hors ligne Philippe # Posté le 16/05/2006 à 21:21:26
Refléchissez
Avatar

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

études : SUPINFO Languedoc-Roussillon à Montpellier

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
Flux RSS

Ville : Couternon
Pays : France métropolitaine
études : Université de Dijon

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

1er juillet = ~10 jours après la fin du bac :p (sachant que c'est fait en une après midi ^^ )
Hors ligne DHKold # Posté le 16/05/2006 à 21:29:05
Ex-Admin
Avatar

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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
WebKiwi Network
Avatar

Effectivement c'est pas trop mal, mais le niveau ! o_O

Image utilisateur
 
Hors ligne jordan # Posté le 16/05/2006 à 21:32:15
Développeur indépendant
Avatar
Flux RSS

Ville : Couternon
Pays : France métropolitaine
études : Université de Dijon

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

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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
Flux RSS

Ville : Couternon
Pays : France métropolitaine
études : Université de Dijon

Oui, c'est bon maintenant :)
Hors ligne Quadehar # Posté le 16/05/2006 à 22:00:31
Avatar

é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 :)

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

J'en suis :)

(et bourdail, comment on lit ces put*** de fichiers en PHP déjà ? :p )
Hors ligne minirop # Posté le 16/05/2006 à 23:06:21
私の世界
Avatar
Anciens

Ville : Reims
Pays : France métropolitaine
études : SUPINFO Champagne-Ardenne à Reims

voilà un défi original ;)
 
Hors ligne 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 :p

Découvrez le CMS : PHPBoost, créez votre site complet en quelques clics...
 
Hors ligne Leward # Posté le 17/05/2006 à 01:29:02
Avatar

Ville : Dunkerque
Pays : France métropolitaine

La barre est placée haute pour ce défi.
Hors ligne Savageman # Posté le 17/05/2006 à 09:29:09
Avatar
Flux RSS

études : INSA Lyon

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 :)
 
Hors ligne Gimmly # Posté le 17/05/2006 à 09:33:46
j'ai toujours tort
Avatar

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

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

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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

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

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

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

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

"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

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

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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

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

Ville : Leuze-en-hainaut
Pays : Belgique

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 quand j'aurrai le temps :-°
----------
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

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

Pour accéder à cette section
Connectez-vous !
connexion_rpx