X-Powered-By: PHP/4.4.2
Content-type: text/html
Johana :
On l'a dit, personne n'a rien retenu
Commençons par le plus fort. Comme bon nombre d'entre vous (j'aimerais bien dire vous tous :euh: ) le savent, M@teo21 a rédigé un très bon tutorial sur la rédaction... d'un tutorial :D
Il prodigue également quelques conseils qu'il serait bon de suivre obligations que vous devez suivre dans la dernière sous-partie.
Voyons ces quelques points :
- Surveillez votre orthographe
- Ne rédigez pas tout votre tuto dans l'intro !
- Vérifiez vos sources
- Utilisez les zUploads
Surveillez votre orthographe
Qui penserait, en lisant un texte dans la section "Vos Tutos", que les zér0s ont quelques(?) problèmes d'orthographe? La V3 du SdZ se veut un site propre, donnant envie d'être lu par les visiteurs et qui les incite même à le mettre en favori (en page d'accueil? :-° )
Il est donc évident qu'il serait bon d'éviter de publier des torchons. De par votre relâchement en matière d'orthographe, notre équipe (celle des validateurs [bah oui je suis la seule validatrice, et alors? :-° ]), malgré les efforts, les coups de fouets (ouioui, nous aussi on est dans la cave), les nuits blanches (faut dire avec Toufou c'est pas prudent de dormir, alors autant bosser, avec un peu de chance on aura deux bouts de pain à la fin du mois!), et tout plein de vilaines choses qu'on fait pour vous (bon ok on en fait peut-être un peu moins que les modos ou les admins :-° ), il reste en permanence une méchante dizaine de tutoriaux à corriger. Et même si on va vite, nous sommes moins que vous, et vous écrivez plus vite en SMS que nous à lire vos SMS.
Certains d'entre vous ne sont pas prédisposés à écrire un tutorial parfait sans aide, alors comment faire ?
En suivant ces quelques petits conseils, vous pourrez arriver à quelque chose de beaucoup mieux, croyez moi ;)
- Relisez votre tuto dans le silence, prenez le temps de lire mot par mot et pas comme un tout.
- Faites relire votre tuto par quelqu'un de l'extérieur (ami, famille, zér0...)
- Utilisez vos outils : par exemple, le correcteur orthographique inclus dans Word ne serait-il pas une bonne parade contre les fautes de frappe et d'orthographe diverses?
Ces 3 conseils sont les plus importants, mais si vous en avez d'autres qui vous trottent dans la tête n'hésitez pas à les appliquer ;)
Ne vous contentez pas de Word (par exemple) pour corriger vos tutoriaux !
Il est certes un très bon outil contre les fautes d'orthographe, il ne fera cependant pas la différence entre un "arrivé" et un "arriver", un "sa" et un "ça" ou bien même un "ou" ou bien un "où". Pourtant ces fautes sont catastrophiques, et seul un cerveau humain pourra corriger parfaitement un texte. Il est donc primordial "d'appliquer plusieurs filtres" avant de demander validation. Il ne suffit pas de passer de la boue dans un tamis pour avoir de l'eau cristalline ;)
Ne rédigez pas tout votre tuto dans l'intro !
Oh la belle faute :lol:
Vous n'imaginez pas tous les tutos qui sont refusés simplement car les membres veulent aller trop vite, parce que bon "sa roxX de postez un tuto sure le sdz§". Quand je dis ça, je veux ne parle pas des fautes d'orthographe (j'en ai déjà suffisamment parlé :lol: ). Là, je parle des zér0s qui n'ont pas pris le temps de lire le tuto de M@teo21, et qui écrivent tout d'un coup dans la première fenêtre qu'ils voient. Je parle de l'introduction (comme l'indique le titre :-° ).
La je n'ai pas grand chose à dire, si ce n'est
allez lire le tuto de M@teo21. Et je le dis
encore, et
encore, et
encore :p . Autre problème souvent rencontré : le choix entre un mini-tuto et un big-tuto. Et encore dans cette branche, on rencontre deux nouveaux problèmes :lol: C'est pour vous dire :-° .
Première faute la plus rencontrée : Les zér0s créent un big-tuto, avec un chapitre par partie, et la plupart du temps une seule partie. Mais le plus aberrant dans tout ça, c'est que les deux chapitres ne dépassent que très rarement tout le texte que j'ai écrit depuis le début sur ce topic. Et comme M@teo21 l'a si bien dit dans
son tuto, le bon choix à faire pour un tuto est le
mini-tuto. L'autre problème, que je n'ai rencontré (moi, pas l'équipe :-° ) que deux fois, est le suivant : le Zér0 créé un big-tuto, en mettant tout le contenu dans le sommaire. Je vous rappelle que le sommaire, c'est la page où apparaissent les liens vers les différents mini-tutos qui constituent le big-tuto. Donc tout ce qu'on veut voir, c'est un petit descriptif de ce qu'on va "étudier" (un peu comme M@teo21
a fait ici). Je vous invite donc une dernière fois à
lire le tuto de M@teo21.
Vérifiez vos sources
Pas grand chose à dire là dessus, je n'ai personnellement jamais rencontré de problème de divulgation de fausses informations. Tout ce que je peux vous demander, c'est de vérifier toutes les données que vous enseignez, en faisant des recherches sur différents sites, et en testant les techniques que vous propagez. Gare à vous si jamais il nous prends l'avis de tester et que ça marche pas, ou si on reçoit une plainte d'un membre nous signalant un mensonge :D
Utilisez les zUploads
Si deux codeurs se sont fatigués à créer un excellent système d'upload, mis à votre disposition un panel d'utilitaires tel la capacité de redimensionner ou même l'insertion de miniatures, offert un peu d'espace disque (dites vous que ce qu'ils offrent à chaque personne, c'est pas énorme, mais que le nombre d'utilisateurs, lui, est énorme, et 1.000 * 10.000 pas besoin de dire que ça fait un gros chiffre), donc ne soyez pas ingrats et servez vous de ce qu'on vous propose. En plus, Imageshack c'ets lent, nul, et parfois vos images sont supprimées, alors pourquoi hésiter? Dorénavant, vous êtes prévenus, tous les tutos exposant des images hébergées par imageshack seront systématiquement refusés (par moi en tout cas, croisez les doigts pour tomber sur un validateur quelque peu plus laxiste [Oui je suis super sévère, je crois que je suis la pire pour ne rien vous cacher :diable: ]). Vous êtes prévenus ;) .
On en a pas parlé, donc je m'en charge :)
Quelques petites mises au point maintenant. Je parle encore une fois de mon cas, et je laisse aux autres validateurs le soin de répondre eux aussi.
- Il n'est pas nécessaire de nous envoyer de multiples Messages Privés du style "Ok merci", "C'est sympa", "voilà c'est corrigé", "ok j'ai redemandé validation". Notre boîte à MPs a elle aussi une limite de taille, et il va de soi qu'en quelques temps elle sera arrivée à saturation. De plus, je sais pas les autres mais j'ai pas vraiment le temps de lire le petit résumé de votre journée, car école + devoirs + vie privée + boulot sur le SdZ, ça ne laisse pas beaucoup de temps pour faire le psy ou vous dire "Okay c'est trop cool :p "
- Oui, nous sommes impartiaux. Tant que vous ferez des fautes, on refusera systématiquement. Et les phrases en papier maché du style "Oui bah là ça relève du foutage de gueule/mauvaise foi", non merci, on en veut pas. Si vous supportez pas qu'on vous fasse remarquer que vous savez pas écrire, abstenez vous de nous envoyer vos torchons. (Car oui, il faut préciser que les gens faisant seulement des petites fautes de frappe ou même d'accents "a/à", eux, ne viennent pas nous rabacher des phrases comme ça. Celles-ci, c'est Made in newbie qui sait pas ligner deux mots).
- Vos dialogues avec des zér0s imaginaires qui vous idolâtrent (du style "Ooohhh merci tonton XXX, t'es fort beau et intelligent


" [Bah oui c'ets bien connu, lens gens comme ça iament bin mettre des smileys partout]), merci, mais vous pouvez vous les garder. Nous sommes ici pour apprendre, pas pour lire vos blagues en carton "histoire de pas faire trop vide". Donc il en est de même pour les blagues douteuses. J'entends par là l'humour noir/raciste/gore/sex... Il est d'ailleurs déconseillé de rajouter des blagues entre deux parties :-° . Si vous sentez que vous pouvez faire un petit jeu de mot qui ne sera ni choquant ni pas marrant (quoi? :-° ), ne vous gênez pas, mais évitez la citation de bashfr ou humour.com, merci.
- "Soyez indulgent s'il vous plait, me mangez pas
" Oui mais nous on est méchants :diable: . Plus sérieusement, je l'ai déja dit plus haut, les zér0s sont ici pour apprendre, pas pour savoir si c'est votre premier tuto, quand vous devrez aller chez le dentiste, la dernière fois que vous avez mangé du Nutella... "Court, Clair, Concis, Bien orthographié, Ponctué" voilà comment je vois un tuto parfait moi.
- Les QCM ne sont pas obligatoires. Si vous avez simplement fait un petit tutorial de 10 lignes, le QCM n'est vraiment pas nécessaire.... Je dois avouer que je vois souvent des tutos qui ont plus de QCM que de texte d'explications. De plus, un QCM doît être en rapport direct avec le cours. Je vous promet de ne pas vous lâcher si jamais je vois "Mon tuto est : *Bien *Vraiment bien *Génial *Nul". Non seulement vous flattez votre ego d'une façon [censuré], mais en plus la réponse que vous avez jugée comme "bonne" est souvent fausse. Il m'est aussi arrivé de voir un tuto parlant de FTP par exemple, et de trouver à la fin dans le QCM une question sur la signification de ce sigle (sans, bien entendu, que l'auteur ne l'ai expliqué. De plus, même si le lecteur se trompe, cela ne veut pas dire qu'il n'a pas compris le tutorial). Regardez M@teo21, dans ses cours. Vous demande-t-il quel est le deuxième prénom du frère du créateur du HTML? Non. Alors suivez son exemple, faites des QCM intelligents, qui permettent vraiment de faire un bilan des connaissances du lecteur.
- Moi et un autre validateur dont je ne citerai pas le nom (il est assez grand, si il veut le revendiquer je le laisse faire) vous promettons que nous nous evertuerons à supprimer tous les tutoriaux contenant le moindre "lol", "mdr", "ptdr" ou tout autre immondice de la même famille. Point :p .
Et pour m'appuyer, j'ai quelques citations : Citation (M@teo21, Mackila, DHKold et winzou) : - Ne jamais accepter le MOINDRE tuto contenant des fautes d'orthographe. Même si le tuto est intéressant vous DEVEZ le refuser s'il contient des fautes. (M@teo21)
- Donc les tutos des zeros, c'est tolérance 0... (Mackila)
- Je vous invite à être impitoyables... (M@teo21)
- Enfin la conclusion est la : la moindre faute de français dans un tuto = tuto refusé. (Mackila)
- Rigoler, on peut, mais se mettre à parler tout seul avec soi-même c'est totalement pitoyable. N'acceptez pas de tels tutos... (M@teo21)
- Par ailleurs, je vous prierai de renvoyer chez eux tous les zéros qui commencent leur tuto par "C'est mon premier tuto alors soyez indulgents svp". (M@teo21)
- Jvous préviens bande de bouseux, si jvois une faute ne serait-ce qu'un double espace, votre compte subira des problèmes malencontreux dans les heures qui suivent ledit acte. (winzou) [Ici, winzou d'adresse à nous autant qu'à vous :p ]
- Le premier qui valide une bouze, je lui zap une semaine de ration, et je lui offre une nuit avec Toufou (DHKold)
- Si les validateurs font des conneries, c'est sous ma "responsabilité", alors si vous voulez moins de fouet, soyez prudents (DHKold encore)
- Quand je vois un tuto mal foutu j'ai envie de mordre l'auteur et de bouffer sa création. (Duael [DarKEdeN])
Johana, toute l'équipe des validateurs ainsi que les admins :)
JaLeX :
Bonjour à tous,
voici désormais le moment de dévoiler le thème de l'épreuve divers :)
Cette épreuve est une épreuve "fermée", c'est à dire que seul les participants inscrits dans une équipe pourront y accéder. Les personnes ne participant pas au Zérothon 2006 ne pourront pas voir à quoi ressemble ces pages... désolé ! :)
Le thème qui a été retenu cette année est : La chasse au trésor !
Ces petits mots ne vous évoquent sûrement rien de concret, et bien voici le principe :
Citation (Epreuve Divers) : L'épreuve divers est en un jeu de piste à travers le web. Il y a 15 niveaux à parcourir. Un niveau est représenté par une page web. Pour passer de niveau en niveau, il vous faudra déchiffrer des énigmes. Une énigme déchiffrée vous délivrera une URL qui correspondra au niveau suivant. Sur ce dernier, vous trouverez l'énigme qui vous permettra de trouver l'URL du niveau suivant, et ainsi de suite jusqu'au niveau 15 ! :)
Les énigmes, élaborées par l'équipe seront de difficulté croissante selon l'avancement dans le jeu. Au plus vous serez loin, au plus ce sera difficile de trouver la clé du mystère !
Notez quand même que cette épreuve "divers" se veut moins difficile que les autres épreuves, c'est plus une épreuve de divertissement. En d'autres termes, elle doit être accessible par tout le monde.
Il y aura un responsable de l'épreuve par équipe, mais sachez que c'est en groupe que vous parviendrez à gravir les 15 échelons : il ne faut pas "se la jouer" individuellement. Vous aurez besoin de vous concerter pour déchiffrer les énigmes tordues que nous vous proposerons dans les hauts niveaux.
Les "niveaux" (pages web) de cette épreuve sont des pages réalisées par nos soins que nous avons parsémé sur le web. Vous les reconnaitrez facilement, elles sont toutes identiques d'un point de vue esthétique ;)
Les énigmes sont conçues pour vous faire réfléchir, rechercher mais aussi pour que l'épreuve ne soit pas terminée en 2 jours. Il faudra tenter pas mal de choses avant d'arriver au résultat correct ! :)
Nous espérons que vous prendrez du plaisir à effectuer ces petites recherches, afin d'arriver au sommet, et d'amasser le maximum de points pour faire gagner votre équipe !
Pour le bon déroulement de l'épreuve, nous avons rédigé des règles que nous vous demandons de bien vouloir respecter :
Les règles :
- Chaque équipe doit désigner un responsable pour l'épreuve divers. C'est lui qui se rendra sur les différents niveaux, et ce sera le référent de l'équipe vis à vis de l'épreuve.
- Nous vous suivons tout au long de l'épreuve. A chaque niveau, vous devrez vous identifier avec votre nom de team et le mot de passe que nous vous assignerons (il sera le même pour chaque niveau). Seul le référent de l'équipe a le droit de se rendre sur les pages des niveaux et de s'y loguer. C'est à lui par la suite de transmettre l'énigme à son équipe pour la résoudre en groupe.
- A chaque niveau, en plus de vos identifiants, vous devrez rentrer le mot de passe du niveau. Chaque niveau possède un mot de passe qui vous sera donné au niveau inférieur. Cela permet d'éviter les "court-circuits".
- Lorsque vous vous êtes indentifié, votre enregistrement est sauvegardé sur des cookies qui vous permettront de vous rendre sur la page et d'afficher directement l'énigme sans vous loguer. Ne touchez donc pas à vos cookies, et n'oubliez pas que vous n'avez le droit qu'à une seul identification par équipe, qui correspond donc à l'identification du référent.
- N'oubliez pas que ceci reste un jeu, n'essayez donc pas de vouloir traffiquer/hacker les pages des niveaux. Si nous nous aperçevons de n'importe quelle tentative de triche, vous vous exposez à des sanctions immédiates : disqualification de l'équipe.
- L'utilisation d'aspirateur de site est formellement interdite. Nous avons mis en place un système qui les détecte, et toute utilisation de ce genre d'outil entraînera une annulation de l'épreuve pour votre équipe (donc 0 point).
- Big Brother is watching you..
- Jouez le jeu ;)
Le jeu
Pour que le jeu se passe dans les meilleurs conditions, voici quelques infos :
- Les pages web des niveaux sont hebergées sur des FTP appartenant à la team du sdz.
- Dans les URLs, nous avons décidé d'établir quelques règles qui vous faciliteront les recherches et les essais : Les URLs ne comporte pas les éléments suivants : majuscule, accents, espaces, underscores.
- Les URLs des niveaux respectent un format fixe qui est le suivant :
--> ..(hote)../dossier/page.php (les pages sont toujours avec l'extension .php).
Si une page ne respecte pas ce format, vous en serez informé ;) .
- Pour l'organisation du jeu, nous vous conseillons fortement ( ^^ ) d'utiliser un MP commun. Le référent va sur les différents niveaux et rapporte les énigmes sur ce MP pour que vous les résolviez en équipe. Cela vous permettra une meilleure organisation :)
- Lorsque vous ferez vos essais pour trouver les URLs, n'hésitez pas à faire des recherches sur Google, Wikipédia mais également au sein du SDZ.
Vous avez normalement toutes les informations nécéssaires pour réaliser cette épreuve. Pour démarrer, il faudra que chaque référent d'équipe m'envoie un MP pour que je lui donne les premières informations pour démarrer l'épreuve (cf: post ci-dessous).
Je prends l'exemple de l'équipe 1, le MP type que vous devrez m'envoyer est :
Citation (MP ) : [zérothon-Divers] Lancement pour l'équipe "Scatobeerz"
Bonjour,
Je suis conno, le référent de l'épreuve divers de
l'équipe Scatobeerz.
Merci de m'envoyer mes identifiants, ainsi que l'énigme numéro 1.
Voila, c'est tout, mais cette formulation me permettra de pouvoir y voir clair et de m'organiser plus facilement pour répondre à vos 48 MP ^^ .
Je vous répondrez donc en vous envoyant le mot de passe que nous vous avons assigné ainsi que l'énigme numéro 1. Notez que ce sera la seule énigme que vous recevrez par MP, les autres se trouveront sur les niveaux directement :) .
Infos : Vous êtes nombreux, et puis j'ai un boulot en ce moment, donc soyez patients, vous recevrez vos identifiants demain dans la journée ;) .
Fin de l'épreuve
Vous avez exactement 1 semaine pour boucler cette épreuve.
La fin est donc fixée au Lundi 31 juillet à 23 heures 59 minutes 59 secondes (heure française).
Une fois cette date passée, l'épreuve sera finie, même si vous parvenez au niveau 15 à 00:01 ^^
Nous regarderons vos enregistrements, et nous comptabiliserons vos points :) .
Bonne chance à tous.
PS: Rendez vous ici pour les réponses à vos questions ;)
EDIT 1 : Regardez ici pour le bug de l'énigme 7, rendez vous y uniquement lorsque vous aurez passé le niveau 6, sinon vous serez disqualifié ;)
Edit 2 : Rifleman prend les commandes !
Kayl :
En ce qui concerne le tuto d'OpenGL il est important que vous sachiez vers quoi je vous dirige.
Voici un aperçu de ce que je veux faire au jour d'aujourd'hui :
- Partie I : cette partie, bien entamée présente les bases d'OpenGL. Les techniques rencontrées sont la base de toute appli 3D mais elles ne sont pas forcément encore illustrée dans le domaine du jeu vidéo.
Il nous reste à voir :
- Contrôle avancé de la caméra - en cours de rédaction, nous y verrons en premier une caméra de type TrackBall comme dans Google Earth pour pouvoir scruter une scène, un objet sous toutes ses coutures, puis nous continuerons avec une caméra FreeLook pour se déplacement librement dans votre scène. Comme ces chapitres font intervenir un peu de C++ et des maths avancées ils ne sont pas faciles à écrire pour moi. Le but ici est de vous permettre de ne plus avoir de point de vue fixe, mais pas de faire un FPS ou un jeu à la 3ème personne, celà viendra plus tard (cf la suite de ce post)
- Lumière - nous verrons comment nos objets prennent enfin une forme réelle quand on les éclaire. Nous verrons la lumière ambiante, lumière directionnelle, lumière point, et enfin lumière spot. Nous verrons bien sûr la limitation du model de lumière d'OpenGL et pourquoi plus tard nous devrons si nécessaire passer par des shaders (cf encore la suite de ce post)
Exemple de scène sans texture mais avec de la lumière
Eclairage n'est pas synonyme d'ombre en OpenGL, nous ne verrons celles-ci que dans la Partie II.
- Transparence - nous y verrons comment rendre transparents des faces (donc des objets) d'une manière très simple mais en établissant bien les limites liés à la technique utilisée.
- Miroir (réflexion) - nous verrons comment réaliser un sol réfléchissant. Nous utiliserons la transparence vue avant ainsi qu'un nouveau concept : le stencil buffer.
- Brouillard - nous verrons comment utiliser le brouillard pour cacher ce qui se passe quand les objets sont trop loins (avant qu'ils disparaissent) et aussi montrer comment celà permet de créer des scènes "mystérieuses" :)
- Combiner 2D et 3D - nous verrons comment faire un "overlay" 2D au dessus d'une scène 3D pour y afficher du texte et des images. Ce système est notamment utilisé dans les jeux pour indiquer la vie, les munitions et pleins d'autres informations.
- Partie II : OpenGL en action. La première partie nous ayant donner beaucoup d'outils (plus que vous ne pouvez imaginer), il sera temps de les mettre en pratique en présentant des techniques 3D.
Nous verrons donc notamment (liste pas forcément complète et pas forcément ordonnée comme le cours le sera) :
- Terrain - Nous verrons comment créer un terrain en 3D avec Terragen et comment le charger et l'afficher avec OpenGL.
- Chargement de models 3D - Même si celà correspond à un besoin rapide des utilisateurs ce n'est pas une fonction d'OpenGL mais une technique, car nous avons déjà les outils nécessaires : l'affichage de triangles. Nous verrons donc comment charger des models 3D. Le chapitre sera scindé en 2 : le chargement d'un model, et l'animation des models. Comme il existe pleins de formats 3D, je me baserai sur une compréhension intelligente de ce qui est fait pour pouvoir s'adapter à n'importe quel format (par vous même). Nous verrons le format .qc/.smd d'Half-Life 2 car il nous sera utile dans la partie III quand nous voudrons faire intervenir de la physique.
- Multi-texturing - nous verrons notre premiere extension OpenGL pour afficher plusieurs textures sur un même objet.
- Chargement de scènes - nous verrons comment créer un niveau avec le logiciel DeleD, précalculer les lumières, et afficher le tout avec OpenGL
Petite scène réalisée avec DeleD (lumière précaculée)
- Ombres sur un plan - premier chapitre sur les ombres, nous y verrons comment utiliser le stencil buffer et les matrices de projection pour projeter les ombres des objets sur un plan (le sol). Il ne s'agit pas ici du model le plus réaliste mais est un très bon point de départ.
- Générateurs de particules - Nous verrons comment l'utilisation de simples sprites 3D permet de créer des effets d'explosion, de trainée, de fumée, de feu etc...
- Selection - nous verrons comment selectionner un object à la souris dans une scène 3D
- Volumes d'ombres - Une vraie méthode pour faires des ombres projetés sur tous type de surface
- Shaders - nous verrons le principe des shaders, leur utilisation et quelques exemples (cell-shading, lumière améliorée)
- Et plus encore, je n'ai pas tout en tête à l'heure actuelle... nous verrons je pense de l'optimisation avec des octree, etc... structure encore floue
- Partie III : en route vers les jeux-videos. Tout ce que nous aurons vu jusque là est bien sûr utilisable dans des petits jeux, mais ici je donnerais vraiment des exemples concrets dans le but de vous donner des points de départ vers de vrais jeux bien faits et complets
- Moteur 3D - Nous verrons la différence entre un moteur 3D et OpenGL pur. Nous verrons aussi comment toutes nos petites bidouilles peuvent être assemblées dans un moteur 3D propre.
- Physique - Dès qu'on fait de la 3D avec OpenGL on veut gérer des choses comme les collisions, le mouvement. Bien sûr on peut le faire nous même mais des moteurs physiques réalistes et très pratiques existent, autant les utiliser. Nous découvrirons le moteur physique Newton Game Dynamics, très simples et très adaptés à une utilisation dans les jeux vidéos. Nous découvrirons la différence entre physique et graphique sur un exemple simple : la chute d'une pomme sur le sol.
- First Person Shooter - Nous verrons comment utiliser un moteur physique pour gérer le lancer de rayon (pour les tirs) et les collisions (pour le mouvement du perso).
Half-Life est un FPS
- 3ème personne - Nous verrons comment controler un personnage à la 3ème personne
GTA SA est un jeu "à la 3ème personne"
- Véhicules - nous verrons comment créer et controler une voiture (et peut-être une moto, à voir) avec le moteur physique Newton Game Dynamics.
Par le biais des Annexes j'essayerai d'extraire du cours les parties difficiles et les laisser en Annexe pour ceux qui veulent tout connaître, tout en laissant dans le cours normal les concepts simples et immédiatement utilisables.
Des questions ?
Les questions sur le cours d'OpenGL doivent elles aussi être posées dans le post prévu à cet effet.
bluestorm :
Nous vous demandons pour cette épreuve de réaliser en C un générateur de phrases aléatoires sur le sujet du Site du Zero.
Les délais
Vous devez rendre votre copie avant le 1er août à minuit.
Qu'est-ce-qu'un générateur de phrases aléatoires ?
Il s'agit d'un programme qui génère aléatoirement des phrases syntaxiquement (et orthographiquement !) correctes. Vous devrez donc coder ce type de programme, capable de générer plusieurs types de phrases différents (présence de propositions par exemple, de compléments circonstanciels etc...). Nous ne vous imposons pas de vous cloisonner au thème du Site du Zero, mais ce serait bien plus amusant si votre programme génère des phrases sur ce sujet ^^ .
Exemple : "Les floodeurs écrivent des posts ridicules dans le forum DG."
Vous avez là 4 éléments syntaxiques (et oui, les cours de français, ça sert ! :p ) :
- "Les floodeurs" en guise de sujet
- "écrivent" comme verbe
- "des topics ridicules" qui fait office de COD
- "dans le forum DG" pour CCL
Vous remarquerez que tous les accords sont parfaits... Vous devrez atteindre cet idéal.
Attention, vous ne devez pas vous contenter uniquement de la structure sujet/verbe/compléments : n'hésitez pas à vous essayer aux relatives, etc.. On ne vous demande pas non plus de rentrer en dur 10 structures de phrases avec de légères variantes, et d'en choisir une au hasard. Ce qui fait tout l'intérêt de l'épreuve, c'est d'avoir un programme qui sait générer lui-même, au hasard (c'est à dire différemment à chaque lancement), la structure d'une phrase. Il pourrait par exemple décider d'insérer un complément de lieu, ou pas.
C'est plus dur, évidemment. C'est fait pour ;)
Il existe de très nombreuses méthodes pour faire ça, nous vous laissons improviser.
Avoir une structure, un squelette de phrase, c'est bien, mais il vous faudra des mots pour la remplir. Pour avoir une phrase aléatoire, il vous faudra choisir les mots au hasard dans une base de mots (en faisant attention de respecter les règles de commentaire). Plus votre base de mots sera étendue, plus vos phrases seront diversifiées.
Nous ne souhaitons pas que vous passiez tous vos après-midis à recopier le dictionnaire. Si vous le souhaitez, vous pouvez (mais évidemment, ce n'est pas obligatoire) vous mettre d'accord avec d'autres équipes et échanger une partie, ou la totalité de vos bases de mots. À vous de trouver un format qui permette un tel échange, et à vous de choisir les échanges les plus judicieux. N'hésitez pas non plus à faire travailler les autres membres de votre équipe :pirate:
Ne vous affolez pas trop si vos phrases n'ont pas grand sens. Cela fait partie du contrat, et nous nous y attendons.
Ce que nous espérons c'est que dans le lot, une partie aura du sens et sera amusante/instructive. Pour cela, n'hésitez pas à varier votre vocabulaire (introduire des éléments extérieurs au siteduzero n'est pas interdit, loin de là). Évidemment, les mots grossiers/injurieux ou autres sont interdits.
Et c'est tout ?
Et non, ce n'est pas tout. Afin de vous faire utiliser pleinement les cours, nous avons décidé de rajouter par dessus tout ça une petite interface en SDL qui vous permet d'afficher à l'utilsateur dans une présentation agréable les phrases que votre programme a générées. Plusieurs choix seront proposés à l'utilisateur, nous vous laissons assez libre sur ce point mais faites attention à ne pas y perdre trop de temps, ce ne sera pas la partie la mieux évaluée. Nous preferons largement un générateur syntaxiquement et orthographiquement performant avec une interface spartiate plutôt qu'un programme totalement incohérent avec une interface somptueuse et pleine de fonctionnalités inutiles.
Nous ne vous imposons que deux fonctionnalités :
- Permettre à l'utilisateur de choisir le nombre de phrases qu'il veut générer
- Permettre à l'utilisateur de stocker les phrases qui lui conviennent dans un fichier texte (à vous de voir comment l'utilisateur choisira les phrases qu'il veut garder)
Sur quoi serez-vous évalués ?
Nous vous évaluerons sur la "richesse" de votre langage : les différents types de phrases que votre programme sera capable de générer, et la cohérence syntaxique des phrases générées. Évidemment, vous serez aussi noté en fonction de la propreté et la clarté de votre code, ainsi que de sa robustesse (comprenez "resistance aux bugs"). Bien entendu, nous tiendrons aussi compte de la qualité (facilité d'utilisation, esthétique...) de l'interface SDL.
Voici à titre indicatif la répartition des points :
- Qualité de l'interface SDL : 20%
- Respect du sujet : 15%
- Qualité du générateur : 35%
- Propreté, clarté de tout le code : 30%
À propos de la propreté, de la clarté et des autres détails qui concernent votre code, lisez le message suivant : il explique nos attentes plus en détail
Sur ce, bon courage et bonne chance à tous !
[merci à Javier pour la rédaction de l'immense majorité du sujet, et de la news]
La présentation
La présentation de votre code (son aspect visuel) est un critère déterminant dans la facilité de lecture (et donc de compréhension) par le correcteur. Vous devrez en prendre soin (tout autant que des autres parties de ce document, remarquez).
L'indentation, mère de toutes les vertus
Indenter, c'est faire ressortir à l'oeil, par des espacements/tabulations, les imbrications de bloc dans votre code source.
Pour plus de détails : wikipédia
L'indentation est absolument nécessaire. Il existe plusieurs styles d'indentation (voici les principaux), et vous êtes libre de choisir celui qui vous convient le mieux. Je vous conseille personnellement le style K&R, ou le style BSD.
Mais prenez soin de rester cohérent, et de ne pas changer votre façon d'indenter toutes les 5 lignes.
Pour ce qui est de la taille du 'saut' par défaut, je vous conseille soit d'utiliser 4 espaces. Beaucoup d'éditeurs permettent de faire correspondre un appui sur la touche tabulation au nombre d'espaces que vous souhaitez.
80 colonnes
La largeur de votre code est un facteur qui relève probablement plus du détail, mais qu'il ne faut pas négliger non plus. Si vous avez une très grosse résolution (ou une très petite police) vous pourriez être tentés d'utiliser toute la largeur de votre éditeur pour une ligne de code, ce qui aboutirait à des lignes de 200, 250 lettres (ou "colonnes").
Le problème, c'est que si quelqu'un avec une police plus grosse ou une résolution plus faible essaie de lire votre code, les lignes "dépasseront" et seront découpées en une, deux, voire trois lignes, ce qui est extrêmement malcommode pour la lecture.
Pour ce qui est du C, la convention est de se fixer une limite à 80 colonnes (ou 80 lettres de largeur, mais en comptant les espaces, etc...).
C'est la largeur minimale de lecture pour tous, et elle possède un certain avantage : comme les lignes de codes doivent être assez étroites, vous ne pourrez pas faire 50 imbrications de blocs les uns dans les autres, et cela vous incitera à découper votre code en fonctions, ce qui n'est pas plus mal.
Si vous avez vraiment beaucoup de mal à suivre cette convention, vous pouvez dépasser un peu (nous ne sommes pas non plus des obsédés des 80 colonnes) mais 90-100 colonnes de largeur me semblent être un maximum nécessaire.
La découpe
Découper votre code permet de séparer les instructions de votre programme selons les domaines qu'elles concernent.
Une bonne découpe est un atout en matière de lisibilité, maintenabilité...
Plusieurs fichiers
La démarche pour faire plusieurs fichiers en C est décrite par M@teo : La programmation modulaire.
C'est à vous de trouver la découpe qui vous semble la plus naturelle. À titre d'indication seulement, on peut approximer la taille maximale d'un fichier à 200 lignes (mais ça peut être plus, et c'est souvent beaucoup moins).
Essayez de manière générale de ne pas faire de gros fichier de 900 lignes avec tout votre code dedans.
...mais pas trop
La découpe c'est comme tout, il ne faut pas en abuser. Ce n'est pas forcément une bonne idée non plus de faire un fichier par fonction, avec 10 lignes de code par fichier.
Le contenu
Des noms explicites
Donnez des noms un tantinet explicite à vos variables/fonctions.
L'abus des variables courtes et anonymes est fortement déconseillé.
Il ne faut pas non plus tomber dans l'excès.
IndiceDuTableauModifieParLaFonctionDeTri (ou indice_du_tableau_modifie_par_la_fonction_de_tri, les deux notations sont acceptées) n'est pas un nom de variable agréable.
commentaires
Les commentaires seront probablement nécessaires à un moment ou un autre de votre code.
Utilisez // ... pour des petits commentaires, /* ... */ pour les commentaires importants ou multi-lignes.
L'utilité des commentaires est de faciliter la compréhension du code.
Plus le code est clair (bien découpé, pas trop d'instructions en une seule ligne, variables bien nommées) moins vous aurez besoin de commentaires. Veillez à ne pas tomber dans l'excès :
Code cint n; // on déclare la variable n
scanf("%d", &n); //on lit une valeur sur l'entrée courante
return max(n, 0); //on renvoie 0 si n est négatif
Si vous ne savez pas où placer des commentaires, la meilleure chose à faire est de trouver un binôme qui comprend plus ou moins le C, lui faire lire votre code, et mettre des commentaires là où il demande des précisions. Avec un peu de chance, il repéra même certains bugs :p
Vous pouvez aussi prendre l'habitude de mettre un commentaire décrivant chaque fonction au moment de sa déclaration.
Évitez cependant de trop répeter l'entête : pour une fonction simple, si les arguments ont des noms pertinents, on n'a pas besoin de 5 lignes supplémentaires de commentaires qui ne feraient qu'alourdir la lecture.
conventions
Il existe quelques conventions de programmation; par exemple, l'habitude de mettre les noms des constante #define en majuscules, ou encore une majuscule à la première lettre des nom des type/struct. Vous êtes libre de choisir celles qui vous conviennent, mais essayez de rester cohérents : n'en changez pas toutes les 5 minutes.
Si vous faites l'épreuve à plusieurs (si vous êtes plusieurs de l'équipe à faire du C, je veux dire : évidemment, votre (grand frère | grande soeur | grand mère) qui bosse chez Google ne doit pas participer au code ^^ ), vous devrez essayer de vous mettre d'accord pour que le produit fini soit cohérent.
fonctions
Les fonctions sont un aspect majeur de la programmation. N'hésitez pas à vous en servir.
De manière générale, vous devez partir du principe qu'il ne faut jamais copier/coller du code à deux endroits différents. Je vous renvoie pour une explication claire et efficace au très bon document Comment coder en évitant les bugs.
La SDL
Si vous êtes amenés à faire de la programmation SDL, il existe quelques erreurs courantes à éviter.
SDL : toujours une fonction pour quitter
Quand vous soumettrez votre code, assurez vous que vous proposer une fonction pour quitter le programme qui marche dans tous les cas. Si au cours du test le correcteur se trouve bloqué avec une fenêtre impossible à fermer sans passer par un méchant appel système, il n'appréciera probablement que très modérément.
SDL : ne pas abuser du processeur
Assurez vous que votre programme a un usage raisonnable des ressources : processeur, mémoire vive. Ou alors, cotisez vous pour acheter des ordinateurs derniers cris à vos correcteurs. À priori, ils seront deux, il y a 47 équipes d'au moins 5 joueurs chacune : sur une base de 1500€ maximum par ordinateur, 12 euros par participant devraient suffire.
Portabilité
La SDL est, dixit M@teo, une bibliothèque (on dit bibliothèque, pas librairie, même si c'est très tentant) portable. Cela veut dire que quelque soit (ou presque) le système d'exploitation et l'ordinateur de celui qui veut utiliser votre code source, il pourra toujours utiliser telles quelles les fonctions de la SDL.
C'est très bien, et vous devez faire pareil pour tout votre code. Si un membre de votre équipe est sous GNU/Linux ou MacOSX par exemple, essayez de lui faire compiler votre code.
Le sujet de C est fait pour qu'il soit toujours possible d'utiliser des solutions portables. N'utilisez pas de bibliothèque spécifique à Windows (ou Linux ou MacOS), et évitez les fonctions systèmes : n'employez pas system("PAUSE"); par exemple.
Nous ne sommes pas des puristes, et nous n'essaierons (sans doute) pas de compiler votre code sur un(e) game boy pour vérifier que tout marche bien. Mais si le code ne compile pas, ou a des problèmes lors de l'execution au moment de la correction, cela sera forcément pris en compte, et pas pour vous rajouter des points :D
La compilation
J'en arrive maintenant au point qui est le plus problématique : comment compile-t-on le programme ?
Je ne connais pas par coeur le fonctionnement de SuperVisual::Blocks, donc je vais vous donner les options de compilation en ligne de commande à utiliser. Cela ne vous impose absolument pas de coder vous-même en ligne de commande : à vous de les adapter à votre IDE (en général un simple copier/coller dans le bon champ du bon formulaire suffit).
Les options sont destinées au compilateur gcc (ou MingW sous windows). Si vous utilisez un autre compilateur, trouvez des options équivalentes. Ou alors, vous pouvez toujours coder avec ce que vous voulez pendant le développement de votre application, et passer quelques temps (voire assez longtemps, selon que vous avez codé comme un goret ou non), peu avant le rendu, pour le rendre conforme au options que nous demandons sur le compilateur que nous utiliserons.
respect des standards
(ce texte n'est pas destiné aux puristes mais aux débutants. Il pourrait y avoir quelques imprécisions)
En C, comme en XHTML, il existe des standards. Les deux normes les plus connues sont les versions 89 et 99 du standard C. Le cours de M@teo se base dans sa grande majorité sur le standard C89. Nous vous conseillons de vous y conformer aussi.
Cependant, pour des raisons de confort d'usage et/ou de liberté de code, nous acceptons les codes C99 (évitez les fonctionnalités trop ésotériques). L'option de compilation utilisée sous gcc sera -std=gnu99 -pedantic .
warnings
Les Warnings ('Avertissements') sont des options du compilateur qui font que quand il trouve un code bizarre, il le dit. Elles n'empêchent pas la compilation (ce n'est pas comme les erreurs de syntaxe ou autres), mais vous devez y faire attention : plus un code génère de warnings, plus il est codé salement, et plus il a de chance de planter lors de l'execution. Entre autres, ils constituent d'excellents détecteurs de problèmes de pointeurs : moins de warnings, c'est moins de chance de voir le beau parachute de la SDL :p
Faire la chasse au warning c'est donc un bon moyen d'avoir un code plus net, et moins de bugs.
Je vous conseille donc d'activer tous les warnings du compilateur, en lui fournissant l'option -Wall.
Cependant, il n'est pas obligatoire de n'avoir aucun warnings : si votre code marche très bien et que vous avez un ou deux warning sur des choses peu gênantes (certains warnings sont parfois de l'ordre du détail, comme l'absence de saut de ligne en fin de fichier), ne faites pas une dépression pour autant. Les examinateurs ne sont pas des maniaques de la compilation 0 Warning. Vous devez juste en prendre bien soin, et essayer d'en avoir le moins possible : un code qui compile avec plein de warnings est très mauvais signe.
Voici un petit récapitulatif de la commande de compilation qui sera probablement utilisée :
gcc -std=gnu99 -pedantic -Wall
Conclusion
J'espère que mes conseils ne vous ont pas trop traumatisés :pirate:
Si vous avez découvert plein de choses en lisant ce document, c'est très bien : vous vous coucherez plus soigneux ce soir :)
Bonne chance pour le zérothon !
[merci à iPoulet pour sa relecture (ou pas :-° )]
Makkhdyn :
C'est parti, le sujet PHP débute ici.
Citation : Comme vous le savez tous les topics comme
[Jeu] "Arret sur image" ou
[Jeu] Google Earth ont une assez bonne notoriété, et vous l'avez sûrement vu c'est difficile d'organiser tout ça sans qu'il y aie de dérapages soit parce qu'un joueur se trompe de film, soit parce qu'un autre laisse la main et que deux joueurs la prennent en même temps. Bref c'est plutôt compliqué a gérer. En plus quand après on veut faire des choses plus avancées telles que des statistiques, des classements etc. on est coincé parce qu'il faut tout faire à la main.
Votre mission ici sera de créer un script PHP qui permettra donc de jouer à des jeux du même style mais sans passer par un forum (un site dédié à ce jeu en gros), de faire les statistiques, des recherches dans les propositions déja faites etc.
Les deux topics cités ne sont là qu'à titre d'exemples
Vous devez réaliser ce script dans le langage PHP, dans sa version 4 seulement, et sans utiliser d'extension exotique.
Objectifs obligatoires
Pour répondre aux attentes du script il faudra au minimum :
- Un système d'installation de la BDD, pour qu'on puisse au mois choisir un préfixe de table au cas ou
- Un système d'upload pour les images
- Un affichage de l'image sur laquelle on joue actuellement
- Une gestion automatique des réponses (la réponse est elle exacte et si oui celui qui a juste reprend aussitôt la main).
- Pouvoir laisser la main
- Un affichage des précédentes images avec système de pagination
- Une mise à jour d'un classement pour ceux qui ont le plus souvent trouvé
Nous voulons en plus que le code soit:
- propre (pas de fonctions inutiles etc.)
- fonctionnel
- portable (je vais l'héberger chez moi pour le tester)
- sécurisé.
- clair, lisible et indenté
Objectifs secondaires
Nous ne pouvons que trop vous conseiller d'ajouter des petits compléments tels que :
- Le redimensionnement des images (création de miniatures)
- Le contrôle des extensions
- Le session membre
- Le classement détaillé (celui qui poste le plus, celui qui a le meilleur ratio propositions exactes/propositions totales, classements journaliers,...).
- La vérification que l'image (titre exact ou similaire) n'a pas été déjà posté
- Vérification automatique du titre, une majuscule mal placée, un espace remplacé par un tiret etc n'empechent pas que la réponse soit juste
- Vérification manuelle à posteriori (celui qui a posté peut déclarer qu'une réponse est correcte)
Objectifs additionnels
Là ça sera le bonus qui départagera les meilleurs d'entre vous :
- Une base optimisée (pas de redondances, utilisation de clés, index justifiés,...)
- La lisibilité et clarté du code bis (utilisation de fonctions, classes si besoin voir templates)
- Des stats diverses (nombre de joueurs, joueurs actifs,...). Pas le plus dur mais pas non plus le moins intéressant
- Un moteur de recherche sur les films proposés, les réponses des différents membres,...
Autres informations
Pour ce sujet vous travaillerez en parallèle avec les codeurs en XHTML/CSS, afin de fournir un "mini-site" digne de ce nom, pas une simple page avec du texte banal. Ainsi il faudra vous mettre d'accord entre vous pour ce qui est de la forme du résultat. Par conséquent tout le code XHTML qui sortira du PHP devra aussi être valide.
Vous devrez rendre vos créations avant le 31/07/06 à 23h59 en envoyant par MP (utilisez la fonction de destinataires multiples) à Deeder et moi-même l'url de votre script fonctionnel ainsi que celle de l'archive de ce dernier.
Veuillez intituler votre MP "[Zérothon] Nom de l'équipe" pour des facilités de gestion.
Comme le sujet est combiné avec le xhtml, nous exigeons que le PHP et le HTML (le design) soit rendus ensemble.
Bonne chance ;)
Merci à ptitlu pour ce sujet sympa et à DHKold pour la présentation du sujet
aimak :
Bonjour,
Après concertations, il nous a paru utile de faire un post-it/faq rappellant les quelques règles à respecter avant de créer un topic. Ce post-it servira aussi de faq, recensant les erreurs classiques (ou moins :p ) et leurs corrections.
Rappel de quelques règles élémentaires à respecter
Les titres explicites
Citation (quelques titres non-explicites) :
HELP !!
J'ai un problème
[php] Problème
Je ne comprends pas
...
Le titre, c'est ce qui donne un aperçu de votre problème au membre, il est donc important de le soigner, tout comme le reste de votre topic.
D'autant plus que si le titre de votre topic est "Help", et que vous y parlez de la fonction unset(), par exemple, un membre qui fait une recherche sur le forum à propos de la fonction unset() ne verra pas votre topic dans les résultats de sa recherche.
Tout titre non-explicite se verra être fermé, et son auteur aura 5% d'avertissement.
Le sms
Pour faciliter la compréhension de votre post, prenez le temps de vous relire et d'éviter un maximum les fautes volontaires.
Vous pouvez aussi utiliser des programmes de correction d'orthographe, du genre Word ou OpenOffice.
L'abus de fautes sera, lui aussi, sanctionné.
Montrer le code problématique et bien utiliser le zCode
Si votre code pose problème, ne donnez pas juste l'erreur, mais donnez aussi la ligne de code, ou même la portion de code qui vous semble problématique, c'est un gain de temps autant pour vous que pour celui/ceux qui vous aide(nt).
Pour faciliter la lisibilité de votre code, entourez le de :
Citation (zcode) : La coloration syntaxique du php permet parfois de voir la nature de l'erreur, s'il s'agit d'une erreur de concaténation, ou de slash,...

Inquiquer son problème comme résolu
Ces forums sont dotés d'une fonction "Marquer mon problème comme résolu". Donc si votre problème l'est, que vous n'avez plus aucune question à poser, indiquez votre problème comme résolu. Vous pouvez le faire en cliquant sur le lien, en bas de la page.
C'est en effet assez agaçant, pour un membre, de lire tout un topic avant de s'apercevoir qu'il n'y a plus rien à y apporter.
Quelques liens
Faq PHP
Comment participer ?
Pour participer à cette faq, il vous suffit de donner une erreur, ou un problème que vous avez rencontré, et dont vous avez la solution.
En zCode, cela donne :
Code zcode<question><gras>Question :</gras> Posez ici la question en des termes clairs...</question>
<gras>Réponse : </gras>Répondez ici clairement, simplement et correctement à la question posée ci-dessus.
Vous pouvez, bien sûr, donner plusieurs problèmes et leurs résolutions.
Tout post pour exposer votre problème personnel sera supprimé
Si vous avez un commentaire à faire à propos de la faq, envoyez-moi un mp.
Quelques liens
Avant de poster sur le forum, assurez-vous bien qu'un problème identique n'ait pas déjà été résolu
Si vous avez d'autres liens qui puissent aider les zér0s, merci de m'en faire part via mp :)
Maintenant, à vos claviers ! :p
++
La team
T@knix :
Salut tout le monde
Je vais reprendre quelques posts que j'avais mis dans la FAQ d'un autre forum :
Général - Utilisation de la DOC
Question : Dans un code, j'ai vu une fonction PHP que je ne connais pas. Comment en apprendre davantage ?Réponse : Rends toi sur la doc officiel et tu auras toutes les infos que tu cherches (et même plus).
Pour celà, vas sur la page php.net/X où X représente le nom de la fonction.
Ex : php.net/echo
Question : Existe-t-il une doc pour MySQL ?Réponse : Oui bien entendu, elle est moins pratique à utiliser que celle de PHP mais elle existe.
Vous pouvez la trouver ici.
Pour les utilisateurs de free
Question : Les sessions ne fonctionnent pas avec free ?Réponse : Free accepte les sessions, il faut simplement créer un dossier "sessions" (sans les guillemets) à la racine du site
Question : Mon htaccess ne fonctionne pas, pourquoi ?Réponse : Comme d'habitude, Free a fait un htaccess bien à lui.
Il doit avoir cette structure :
Code apachePerlSetVar AuthFile /dossier/.htpasswd
AuthName "Acces Restreint"
AuthType Basic
require valid-user
De plus, les mots de passe ne doivent pas être cryptés
MySQL
Question : Comment récupérer l'id de l'enregistrement qui vient d'être inséré dans la bdd ?Réponse : Il faut utiliser la fonction mysql_insert_id()
Code php
Question : Comment connaître le nombre d'enregistrement affecté par une requête (INSERT, UPDATE, DELETE) ?Réponse : Il faut utiliser la fonction mysql_affected_rows()
Les exemples d'utilisation sont dans la doc
Question : Comment connaître le nombre d'enregistrement affecté par une requête (SELECT) ?Réponse : Il faut utiliser la fonction mysql_num_rows()
Les exemples d'utilisation sont dans la doc
Comment optimisé mes scripts PHP ?
Comme vous le savez sûrement, il existe souvent plusieurs façons de faire la même chose.
Toutefois certaines sont plus rapides que d'autres.
Code php<?php----------------------------------------------------
echo "Ma variable a pour valeur : $var !";
// La plus lente----------------------------------------------------
echo "Ma variable a pour valeur : ".
$var.
" !";
// Pas terrible----------------------------------------------------
echo 'Ma variable a pour valeur : '.
$var.
' !';
// La meilleure----------------------------------------------------
?>
Note : on peut concatener la fonction echo() avec une virgule si qui est légèrement plus rapide.
Attention ça ne fonctionne que pour la fonction echo()
Initialisation de variables
Code php<?php
----------------------------------------------------
$var1=$var2=$var3="Valeur des trois variables"; // La plus lente
----------------------------------------------------
$var1="Valeur des trois variables"; // La meilleure
$var2="Valeur des trois variables";
$var3="Valeur des trois variables";
----------------------------------------------------
?>
La méthode la plus courte n'est pas toujours la plus rapide
Les structures conditionnelles
Code php<?php----------------------------------------------------
echo $var==
"Valeur" ?
$var_vrai :
$var_faux;
// La plus lente----------------------------------------------------
switch(
$var)
// Pas terrible {
case "Valeur":
echo $var_vrai ;
break;
default:
echo $var_faux ;
break;
}
----------------------------------------------------
if(
$var==
"Valeur")
// La meilleure {
echo $var_vrai ;
}
else {
echo $var_faux;
}
----------------------------------------------------
?> Encore, une fois la syntaxe la plus court (opérateur ternaire), est la plus lente.
Les boucles
Code php<?php
----------------------------------------------------
for($i=0; $i<100; $i++) // La plus lente
{
}
----------------------------------------------------
$i=0;
while($i<100) // La meilleure
{
$i++;
}
----------------------------------------------------
?>
Et comme le plus souvent, la syntaxe la plus courte n'est pas la plus rapide.
Une petite conclusion
Il est préférable de passer un peu plus de temps à écrire un code un peu plus long et ainsi avoir une temps d'exécution réduit que l'inverse.
Divers
Il faut mieux utiliser str_replace que des Regex pour des remplacements simples car le moteur des Regex est très lent.
Il faut mieux encoder ça page correctement et utiliser htmlspecialchars() plutôt qu'utiliser htmlentities().
En effet, un caractère remplacé par son entité html prendre 8 octets à la place de 1 d'où une page plus lourde.
Il faut mieux tester l'existence d'un fichier avec is_file() qu'avec file_exists()
Divers
Question : Je désire exécuter un script à intervalle régulière (par exemple un backup de ma bdd), comment faire ?Réponse : Le site WebCron (entre autre) propose celà gratuitement.
Voilà pour le moment, j'ajouterais peut-être d'autres informations par la suite.
Je tiens à insister sur l'utilisation des docs officiels (dont le liens sont donnés en début de ce post) avant de poster sur le forum une question dont la réponse est très claires dans les docs.
Vous pouvez me signaler toute erreur que vous releverez par mp.
Ne le faites pas ici afin de ne pas encombré cette FAQ inutilement.
Merci de votre compréhension.
Bonne continuation à vous tous.
Amicalement
T@kniX
Yash :
Afin de garder un esprit d'émulation, un encouragement à l'effort et au travail, et donc une recherche de la progression ; il est nécessaire d'instaurer certaines règles.
[+ liens internes utiles ~~ fin du post]
- Respecter les droits d'auteurs.
- Pas de commandes/demandes
- Chercher avant de poster
- Accepter la critique
- Ne poster que ce qui résulte d'un effort
I. Respecter les droits d'auteurs
Citation (Art. L. 121-1.) : L'auteur jouit du droit au respect de son nom, de sa qualité et de son oeuvre.
Ce droit est attaché à sa personne.
Il est perpétuel, inaliénable et imprescriptible.
Il est transmissible à cause de mort aux héritiers de l'auteur.
L'exercice peut être conféré à un tiers en vertu de dispositions testamentaires.
C'est une question de respect, mais surtout de droit.
Il s'agit de respecter le travail d'autrui en ne divulguant pas et en ne dénaturant pas son oeuvre sans son accord. Si vous aimez un artiste, libre à vous de faire un Fan-art, c'est-à-dire de vous réapproprier l'univers de l'artiste en question avec votre propre style.
Récapitulatif sur les droits d'auteurs.
II. Pas de commandes/Demandes
Dans un souci d'émulation, d'entraide et de progression, les demandes/commandes d'éléments graphiques, quelqu'elles soient, ne sont pas acceptées.
Ce forum est un forum d'entraide sur le graphisme. Il est là pour développer vos compétences dans ce domaine à l'aide des conseils & critiques des autres membres ; cet état d'esprit est dans la continuité de celui du site :
Ici, on apprend tout à partir de zéro.
Les demandes de recrutement sont acceptées si elles dénotent un certain effort dans la présentation du projet.
Nous fermerons tout demande de ce type.
Liste de forums répondant à cette demande.
III. Chercher avant de poster
Si vous cherchez des Tutoriels pour un logiciel spécifique, cherchez d'abord sur Google, sur le post-it lien ou sur le moteur de recherche du forum.
Normalement, TOUT y est trouvable et l'on ne devrait plus voir de Topics demandant des Tutoriels, des logiciels, etc. Aussi, ce forum n'étant pas un Google personnalisé, toute question pouvant être facilement et rapidement résolue avec Google ou l'un des Post-it sera immédiatement fermée.
IV. Accepter la critique
En présentant vos bannières, designs & co ; vous vous offrez à la critique. Ansi, si cette dernière est construite et non-aggressive ; acceptez-là de bon coeur : C'est pour vous aider à progresser et en aucun cas pour vous rabaisser.
Certains ont plus d'expérience et de maitrise que vous ; leur niveau d'exigence est donc plus elevé. C'est alors à vous de comprendre que votre travail peut être de mauvaise qualité. Or, si vous fréquentez ce forum, c'est pour progresser ; ce qui implique la remise en question.</attention>
V. Ne poster que ce qui résulte d'un effort
Ce forum visant à progresser, un minimum d'effort est exigé. Il ne s'agit pas de niveau ou de talent mais bien de fournir un travail sérieux et sincère avant de poster une création. Evitez donc de montrer tout et n'importe quoi juste pour poster ou pour montrer votre dernier dessin : les critiques n'en seront que plus efficaces si elles s'effectuent sur une image où vous vous êtes appliqués. </attention>
+
réglement
<position valeur="centre">Voici quelques liens utiles :
Sur le forum :
- Liens 2D : Web-design, le graphisme, le dessin, la mise en couleur, Photoshop, Gimp, etc.
- Liens 3D : Blender, 3Dsmax, Lighwave, Maya, Cinéma4D, Modélisation, Texturage
- Qu'est-ce que le design ? Commentle réussir ?
- Comment débuter en dessin
Bon courage. </position>
<position valeur="centre">Droits d'auteurs & Sanctions
-----------------------------------
Suite à de nombreuses plaintes & incompréhensions d'une règle spécifique à cette section. Voici une petite mise au point.
N'étant pas un professionnel, je peux bien évidemment me tromper. De plus, la lois reste assez vague sur certains points.
Les droits d'auteurs en France
Un petit texte qui résume l'utilisation d'images protegées
Citation (Article L111-1) : L'auteur d'une oeuvre de l'esprit jouit sur cette oeuvre, du seul fait de sa création, d'un droit de propriété incorporelle exclusif et opposable à tous.
Cela signifie qu'il n'y a pas besoin de Copyright (j'y reviendrai) ou d'autre mention ; une oeuvre dès qu'elle est créee est protegée.
Le droit moral
Citation (Wikipédia : verifié in texto) :
* Le droit de divulgation : il permet à l'auteur de décider quand son ?uvre est terminée et qu'elle peut être divulguée au public.
* Le droit de paternité : l'auteur a le droit de revendiquer la paternité de son ?uvre. Cela se traduit généralement par la mention de l'auteur lors de l'exploitation de l'?uvre.
* Le droit au respect de l'intégrité de l'?uvre : l'auteur peut s'opposer à toutes modifications, déformations ou mutilations de son ?uvre (L'application de ce droit est cependant nuancée dans la jurisprudence récente).
* Le droit de retrait et de repentir qui consiste au retrait par l'auteur de son ?uvre déjà divulguée de la sphère du marché en contrepartie d'une compensation financière à hauteur du préjudice subi par le diffuseur.
* Le droit à s'opposer à toute atteinte préjudiciable à l'honneur et à la réputation.
* Il est inaliénable : il n'est donc pas cessible (l'auteur ne peut pas le vendre). En revanche, il est transmissible à sa mort aux héritiers ou à des exécuteurs testamentaires.
* Il est perpétuel.
* Il est imprescriptible.
Pour des oeuvres tombées dans le domaine publique (<italique>70 ans après la mort de l'auteur) ; il suffit de citer le nom de l'auteur et de l'oeuvre utilisée.</italique>
Exceptions
Citation (Art. L. 122-5) :
- 1. Les représentations privées et gratuites effectuées exclusivement dans un cercle de famille.
- 2. Les copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective, à l'exception des copies des ?uvres d'art destinées à être utilisées pour des fins identiques à celles pour lesquelles l'?uvre originale a été créée et des copies d'un logiciel autres que la copie de sauvegarde établie dans les conditions prévues au II de l'article L. 122-6-1 ainsi que des copies ou des reproductions d'une base de données électronique.
- 3. Sous réserve que soient indiqués clairement le nom de l'auteur et la source
a/. Les analyses et courtes citations justifiées par le caractère critique, polémique, pédagogique, scientifique ou d'information de l'?uvre à laquelle elles sont incorporées.
b/. Les revues de presse.
c/. La diffusion, même intégrale, par la voie de presse ou de télédiffusion, à titre d'information d'actualité, des discours destinés au public prononcés dans les assemblées politiques, administratives, judiciaires ou académiques, ainsi que dans les réunions publiques d'ordre politique et les cérémonies officielles.
d/. Les reproductions, intégrales ou partielles d'?uvres d'art graphiques ou plastiques destinées à figurer dans le catalogue d'une vente judiciaire effectuée en France pour les exemplaires mis à la disposition du public avant la vente dans le seul but de décrire les ?uvres d'art mises en vente.
- 4. La parodie, le pastiche et la caricature, compte tenu des lois du genre
Il y a 2 problèmes :
* - Jusqu'à présent, je n'ai vu aucune bannière citant le nom de l'auteur et de l'oeuvre citée clairement.
* - Soit la condition de brièveté de la citation est respectée, c'est-à-dire qu'il y a emprunt partiel de l'?uvre première. Dans ce cas l'?uvre artistique reproduite est tronquée et il y a atteinte au droit moral de l'auteur, donc, contrefaçon.
- Soit l'?uvre est reproduite intégralement,la condition de brièveté de l'emprunt qui n'est pas remplie. Il y a, donc, encore contrefaçon.
Cependant, je trouve cet argument peu tenable : toute citation littéraire, musicale ou picturale tronque l'oeuvre. Le problème se situe ailleurs.
Le principe de l'oeuvre seconde
Par ailleurs, le caractère informatif reste aléatoire ; les cas d'extraits musicaux présentés sur des sites ont été jugés illicites dans la mesure où ils n'appuyaient aucun propos.
Citation (TGI) : ce que la loi autorise, ce n'est pas le recueil de citations, sous la condition que celles-ci seraient accompagnées d'un commentaire, mais au contraire l'illustration par des citations justifiées par leur incorporation à une oeuvre citante.
Beaucoup des bannières & sites ressemblent plus à une énumération de "citations imagées & commentée" qu'à de véritables oeuvres ayant un propos nouveau, invitant à une discussion/argumentation/polémique qui justifieraient la citation. Bien peu sont des oeuvres secondes.
Ceci étant indéniable pour les bannières : elles décorent mais ne sont pas justifiées par la loi.
==> Si on enlève les images, quel propos reste-t-il ?
Il ne s'agit pas d'un détail d'une peinture pour analyser la touche du pinceau, d'un découpage pour expliquer la composition, d'une citation de Musset pour comprendre le romantisme...D'ailleurs - là, je ne suis pas sur - je ne sais pas si le découpage est contenu dans le "Partiel" ou bien s'il appartient à la transformation/modification plagiaire. je penche pour ce dernier.
Le copyright
Le copyright est le "droit d'auteur" anglo-saxon ; les (c) corpyright sur vos sites n'ont donc aucune
De toute façon, vos oeuvres sont automatiquement protegées. Il faut toutefois - devant un tribunal - pouvoir prouver la paternité.
L'application sur le forum (et explications)
Sur le forum - et plus particulièrement dans la section graphisme - nous nous sommes mis d'accord pour appliquer ce droit moral.
Autrement dit lorsqu'un zéro poste une image comportant une bannière utilisant des images découpées sans accord prouvable de l'auteur, le droit de divulgation, de paternité et du respect de l'intégrité de l'oeuvre sont violés.
Pour préciser de manière concrête :
- l'image a été enregistrée par le membre ; ce qui reste légal car dans le domaine de la copie privée ; mais, dans la mesure où il la republie sur un site ; on entre dans le domaine de la contre-façon.
- Dans 99% des cas, le nom de l'auteur n'est pas cité : la paternité n'est donc pas reconnue, ce qui - juridiquement - passe pour de la contre-façon.
- Dans la plupart des cas, les images sont découpées pour être integrées au desing/illustrations ; ce qui va à l'encontre du droit de l'auteur à s'opposer à toute modification de son oeuvre.
+ L'idée comme quoi les courtes citations sont "gratuites" et ne sont presque jamais justifiées par un propos nouveau ou informatif sur l'oeuvre. (Le problème des topics fermés était la bannière et non un possible contenu informatif)
C'est ce point qui reste vague, flou et subjectif ; donc à débattre.
D'un point de vue non-juridique & plus pragmatique
Beaucoup de membres se plaignent d'une telle dureté. En effet ; même si la loi n'a pas à être ignorée, encore moins à être violée ; les designs amateurs portent peu préjudices aux auteurs ; et il y a peu de chances pour qu'il y ait des problèmes judiciaires.
Outre le besoin de protéger les gérants de ce site (des procès ont déjà eut lieu pour moins que ça...) et le respect de la loi au même titre que les allusions au P2P ; il y a aussi une raison moins évidentes - mais surtout moins légitime et donc plus à même d'être critiquée.
En effet, il y a tout un pan pédagogique : le but est de faire prendre conscience aux jeunes inéxpérimentés la notion du respect du travail, de l'effort, de l'expérience.
Tout ça pour éviter de nouveaux cas comme Maggiori, cas extrême mais qui ne fut pas réprimandé lors de ses premiers agissements.
Le but de cette dureté est en aussi en quelque sorte de vous amener à faire plus confiance à vous-même et à votre imagination.
Oui, oui, il est possible de faire un site sur Naruto, qui fait penser à Naruto, sans utiliser d'images protegées (Fan-art, pastiche, Ambiance générale, etc.)
Ensuite, il y a une certaine notion de subjectivité : quoi laisser passer ? Quoi sanctionner ? Ca reste relativement arbitraire et avons preferés tout sanctionner pour éviter les "oui, mais X n'a pas été sanctionné".
Fondamentalement ; je ne suis pas contre une certaine nuance mais cela reste aléatoire à gérer.
Evitons les "D'autres le font", "c'est illégal mais les flics viennent pas ici" "mon site était informatif" comme arguments.
Sources : Wikipédia, droitsdunet.fr, Mémoire de Pierre Chilès, http://www.celog.fr/cpi/</position>
Delphiki (la team) :
Bonjour à tous.
Nous avons créé ce topic afin de vous organiser dans la création d'équipes pour le Zérothon.
Ainsi, il y a deux possibilités.
- Soit vous recherchez une/des personnes pour l'équipe dont vous êtes le capitaine
- Soit vous cherchez à intégrer une équipe
Si vous recherchez des personnes pour votre équipe
Ne créez une équipe que si vous avez déjà des partenaires ou si vous êtes sûr d'en trouver, afin que l'on ne se retrouve pas avec plein d'équipes incomplètes. ^^
Si vous désirez recruter pour votre équipe, votre post devrait ressembler à celui-là : Citation (Post de recrutement) : Recrutement
Bonjour,
Notre équipe, qui a pour nom
Zérothon2006, n'est pas complète. Nous cherchons, afin de compléter notre équipe
- Un designer
- Un programmeur C/C++
Si vous correspondez à un de ces profils, contactez-moi, je suis le chef de l'équipe :D
Merci !
Pour vous aider, je vous fournis le zCode :Code zcode<titre1>Recrutement</titre1>
Bonjour,
Notre équipe, qui a pour nom <gras>Zérothon2006</gras>, n'est pas complète. Nous cherchons, afin de compléter notre équipe <liste>
<puce>Un <gras>designer</gras></puce>
<puce>Un <gras>programmeur C/C++</gras></puce>
</liste> Si vous correspondez à un de ces profils, contactez-moi, je suis le chef de l'équipe :D
Merci !
Bien entendu, adaptez le code à vos besoins ^^
Si vous cherchez à intégrer une équipe
Ce n'est qu'un exemple, mais votre post devrait ressembler à celui-ci : Citation (Post de postulation) : Postulation
Bonjour :)
Je suis libre durant toute la durée de ce Zérothon, et, de plus, je me débrouille bien, voire très bien, dans les domaines suivants :
- Mapping (HL1)
- XHTML/CSS
- PHP
Je suis persuadé que je peux aider une équipe, pour peut-être la mener vers la victoire suprême ! :D
Merci aux capitaines d'avoir lu ma proposition, et n'hésitez pas à me contacter :)
Pour le mapping, précisez, dans le post de postulation, si vous êtes sur HL1 ou HL2.
Les deux sont valables.
Je fourni aussi le zCode :D Code zcode <titre1>Postulation</titre1>
Bonjour :)
Je suis libre durant toute la durée de ce Zérothon, et, de plus, je me débrouille bien, voire très bien, dans les domaines suivants :<liste>
<puce>Mapping</puce>
<puce>XHTML/CSS</puce>
<puce>PHP</puce>
</liste>Je suis persuadé que je peux aider une équipe, pour peut-être la mener vers la victoire suprême ! :D
Merci aux capitaines d'avoir lu ma proposition, et n'hésitez pas à me contacter :)
Vous n'êtes pas obligés de suivre cette mise en page, mais c'est fortement conseillé, par souci de clarté.
Bon Zérothon ;)
Voici la liste des équipes déjà construites :
Citation (Scatobeerz) : Equipe : Scatobeerz
Devise : May the Flocon Fraicheur be with you
Membres :
Conno indique qu'il ne sera présent qu'à partir du 11 Juillet.
Si, entre-temps, on a besoin de contacter quelqu'un, c'est Elentar ou victor.
Citation (sécurigr@ph) : Equipe : sécurigr@ph
Devise : Tous pour un, Zér0thon pour tous !
Membres :
Citation (Pemak) : Equipe : Pemak
Devise : Tous pour un, et tous pour un !§
Membres :
Citation (ZZTop) : Equipe : ZeroZeroTop (ZZtop)
Devise : Born To Be A ZerO
Membres :
Citation (Reveal Studios) : Equipe : Reveal Studios
Devise : Créons en équipe et révélons nos talents !
Membres :
Citation (Wolf-Einstein) : Equipe : Wolf-Einstein
Devise : "Le loup solitaire pense seul et crée des nouvelles valeurs pour sa meute. "
Membres :
Citation (Les Troniciens) : Equipe : Les Troniciens
Devise : Il y a 10 sortes de personnes au monde : ceux qui comprennent la notation binaire et ceux qui ne la comprennent pas.
Membres :
Citation ([w0rkz.org] ) : Equipe : [w0rkz.org]
Devise : w0rkz, la perfection au Zer0
Membres :
Citation (Zero++ ) : Equipe : Zero++
Devise : ++ fort que zer0s
Membres :
Citation (Foxes) : Equipe : Foxes
Devise : Claws in the Web.
Membres :
Citation (Les z'arts et zeros) : Equipe : Les z'arts et zeros
Devise : Tout l'art d'être des Zér0s
Membres :
Citation (L'ancienne ) : Equipe : L'ancienne
Devise : Vise toujours la lune. Même si tu rates, tu atteriras parmi les étoiles!
Membres :
Citation (Superzéros ) : Equipe : Superzéros
Devise : Tout comme la France, nous gagnerons !
Membres :
Citation (Switch`web`Team's ) :
Equipe : Switch`web`Team's
Devise : Switcheur, les fans de la marque à la baleine jaune
Membres :
Citation (Arckange_du_web ) : Equipe : Arckange_du_web
Devise : Arckange un jour, Arckange toujours !
Membres :
Citation (Z'Heros) : Equipe : Z'Heros
Devise : Un Zéro plus un Héro ça fait un Z'Héros !
Membres :
Citation (Blackwave) : Equipe : Blackwave
Devise : Une nouvelle vague se lève.
Membres :
Citation (Les Zér0s^6) : Equipe : Les Zér0s^6
Devise : Les Zér0s^6 tout en puissance
Membres :
Citation (L'Heure des Démons) : Equipe : L'Heure des Démons
Devise : Ils ont attendu leurs heures... Les démons n'ont pas peur :diable:
Membres :
Citation (Zér0nimo) : Equipe : Zér0nimo
Devise : Zééér0nimoooooooooo !!!
Membres :
Citation (CILAOS) :
Equipe : CILAOS
Devise : "CILAOS" la prog au degré 0
Membres :
Citation (WebZerO) : Equipe : WebZerO
Devise : Webmasteur un jour, ZerO toujours.
Membres :
Juju1566 orévuebs qu'il sera absent du 10 au 14 juillet et qu'il faudra donc pendant ce temps envoyer les premières épreuves à Nabuchodonosor, puis à Juju1566 à partir de son retour.
Citation (Cyber Zero) :
Equipe : Cyber Zero
Devise : Les dents de la programmation
Membres :
Citation (zW!ners) : Equipe : zW!ners
Devise : Za zw!ng chez les zW!ners !
Membres :
Citation (Les Zér0s Déchus) : Equipe : Les Zér0s Déchus
Devise : "niw lliw suhcéd s0réZ seL"
Membres :
Citation (New Gravity) : Equipe : New Gravity
Devise : Try is play
Membres :
Citation (FOCUS Time) : Equipe : FOCUS Time
Devise : Il y'a un temps pour programmer un autre pour s'amuser
Membres :
Attention : Tout post qui n'est ni une fiche postulation, ni une fiche de recrutement sera supprimé. Par consequent pour confirmer l'inscription d'un membre dans votre équipe ce n'est pas la peine de mettre votre message ici. Tout se fait par MP
Yash :
LIENS 2D
Web-design, le graphisme, le dessin, la mise en couleur, Photoshop, Gimp, etc.
Je vous renvoie aussi aux autres articles.
Sommaire
[les liens vous renverront directement vers la rubrique]
I - Logiciels
0. Lesquels ? Les trouver
1. Photoshop
2. Painter
3. The Gimp
4. Flash
5. Illustrator
6. Fireworks
II - Web-Design
1. Théorie, Bases & choses à savoir
2. Ergonomie
3. Réaliser une interface
III - Le dessin - Traditionnel & Numérique
1. Apprendre à dessiner
2. Encrage [LineArt propre]
3. Mise en couleur
4. Effets particuliers