blog.openclassrooms.com - Archives (mars 2012)

Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modélisation 3D (Blender...), le graphisme (PhotoShop, The GIMP...), et bien d'autres encore !

Le: 28 03 2012 à 23:51 Auteur: noreply@siteduzero.com (shareman)

Le tri rapide (supposé connu) peut se révéler très efficace en pratique.

Il a cependant un énorme défaut : son pire des cas est quadratique (c'est-à-dire en O(n^2)n est la taille de l'entrée), contrairement au tri par tas par exemple. De plus, il est moins efficace que le tri par insertion sur de petits ensembles. À partir de là, on peut s'appuyer sur ces deux constats en améliorant le tri rapide, et pourquoi pas, chercher d'autres voies d'optimisation.

C'est le but de ce cours, qui est en quelque sorte une suite du cours sur le tri rapide déjà présent sur le site. Afin qu'un maximum de personnes puissent comprendre les codes proposés, ils seront écrits en C++ et auront une sémantique abordable.

Le: 26 03 2012 à 18:46 Auteur: noreply@siteduzero.com (vyk12)

Bienvenue dans ce tutoriel portant sur la programmation orientée objet (souvent abrégé par ses initiales POO) en PHP. :)

Ici, vous allez découvrir un nouveau moyen de penser votre code, un nouveau moyen de le concevoir. Vous allez le représenter de façon orienté objet, un moyen de conception inventé dans les années 1970 et qui prend de plus en plus de place aujourd'hui. La principale raison de ce succès est du à de nombreux avantages apportés par ce paradigme, comme une organisation plus cohérente de vos projets, une maintenance plus facile et une distribution de votre code plus aisée pour celui qui l'utilisera.

Cependant, avant de vous lancer dans ce (très) vaste domaine, vous devez avoir quelques connaissances au préalable.

Ce qui doit être acquis


Afin de suivre au mieux ce tutoriel, il est indispensable voire obligatoire :
  • D'être à l'aise avec PHP et sa syntaxe ;
  • D'avoir bien pratiqué ;
  • D'être patient ;
  • D'avoir PHP 5 sur son serveur. Je ne parlerai pas de POO en PHP 4 car sous cette version de PHP, certaines fonctions indispensables de la POO ne sont pas présentes (on ne peut donc pas vraiment parler de POO).
Si vous avez déjà pratiqué d'autres langages apportant la possibilité de programmer orienté objet, c'est un gros plus, surtout si vous savez programmer en Java (PHP a principalement tiré son modèle objet de ce langage).

Le: 20 03 2012 à 22:39 Auteur: noreply@siteduzero.com (shareman)

Ce cours s'adresse aux programmeurs en C++.

On est souvent amené à implémenter des choses qui nécessitent de stocker beaucoup de données et on s'aperçoit assez vite qu'on y applique souvent le même jeu d'opérations. À partir de là, on peut se poser la question du choix de cette structure : laquelle présentera les meilleures performances pour ce que je veux faire ? Et comme il n'est quasiment jamais question de réinventer la roue, il existe un nombre important de structures déjà implémentées (dans la STL ou dans Boost). Comment s'y retrouver ?

Ce tutoriel est là pour répondre à ces deux questions. Beaucoup de débutants ne se les posent pas, ou pas assez. Il n'est ainsi pas surprenant de les voir "patauger" sur le forum de ce site en essayant soit de tout faire avec un std::vector, en écrivant eux-même une structure de tas parce qu'ils en ont besoin, ou encore en utilisant std::set pour les ensembles où l'ordre n'a pas d'importance.
Souvent, le manque de recherche et l'ignorance en sont la cause. Mais ce n'est pas la seule : certains débutants sont également rebutés par des bibliothèques tierces comme Boost parce que cela sort du cadre de ce qu'ils ont l'habitude de voir sur ce site. C'est bien dommage.

Ce cours s'adresse aussi aux plus expérimentés. Une piqure de rappelle ne fait jamais de mal.

De manière concrète, ce cours présentera brièvement chaque structure de données "connue", la complexité des différentes opérations qu'on serait susceptibles d'y appliquer, ainsi qu'un tableau résumant les classes C++ les plus utilisées pour chaque structure en précisant dans quel cas leur utilisation est justifiée.

Le: 16 03 2012 à 04:42 Auteur: noreply@siteduzero.com (nightmat)

Aaah, centrer des éléments, une question récurrente tant les cas sont nombreux. CSS offre quelques possibilités natives, mais toute la difficulté de l'exercice est de les exploiter comme il faut pour obtenir le rendu souhaité. Je vais ainsi parcourir tous les cas solvables en pur CSS, et tant qu'à faire montrer comment les résoudre.
Finis les <center>?! Finis les align="center"?! Accrochez-vous, c'est parti?!

Le: 12 03 2012 à 09:59 Auteur: noreply@siteduzero.com (SpaceFox)

Ce tutoriel présente ce qu'est Azure Raytracer, comment l'installer et comment participer au concours Azure Raytracer.

Le: 11 03 2012 à 21:29 Auteur: noreply@siteduzero.com (Wapiti89)

Bonjour les Zéros !

Je vous souhaite la bienvenue dans mon tout premier tutoriel pour le Site du Zéro !

Ensemble, nous allons apprendre à utiliser quelques modules du langage Perl.

À travers ce cours, vous aurez l'occasion d'appréhender 4 parties.

  • Interaction avec une base de données (module DBI).
  • Envoyer et recevoir des e-mails (modules Net::SMTP, Net::POP3, Net::IMAP::Simple et MIME::Lite).
  • Interaction avec un serveur FTP (module Net::FTP).
  • Gérer correctement les paramètres de ses scripts (modules Getopt::Std et Getopt::Long).


Je me permets de faire quelques mises en garde avant que vous ne commenciez la lecture de ce tutoriel. Même si des rappels sur le langage Perl seront faits régulièrement, il est quand même indispensable de maîtriser les bases de ce langage, ainsi que les bases de la programmation en général.

Pas de panique concernant l'apprentissage de chaque module, on part bien sûr de zéro !

Si vous êtes prêts, on peut commencer ! ^^

Le: 10 03 2012 à 10:27 Auteur: noreply@siteduzero.com (acryline)

Je me propose de vous faire découvrir OpenSimulator, serveur de mondes virtuels open-source.
OpenSimulator est l’alternative libre de SecondLife. C’est un outil très puissant, avec de nombreuses facettes que vous allez découvrir à travers ce tutoriel, et non le clone d’un jeu commercial.

À l’avenir, la 3D prendra sans doute de plus en plus de place sur la Toile. Il est peut-être temps de commencer à s’y intéresser. Ce ne sera pas une corvée, je vous l’assure ! Le sujet est tellement vaste que chacun y trouvera son bonheur. Les créateurs 3D, les développeurs, les entrepreneurs, les joueurs, les utilisateurs vont tous se faire plaisir.

Alors bienvenue dans le monde de l’OpenSim ; que votre créativité et votre imagination s’expriment !

Le: 09 03 2012 à 10:07 Auteur: noreply@siteduzero.com (warpShadow)

Les sprites CSS sont une façon de se servir d'une seule et même image qui en « contient » plusieurs, en n'affichant que ce qui nous intéresse. Les avantages de cette technique sont multiples, comme nous allons le voir.

Prérequis : connaître les bases du CSS et du HTML. Je vous renvoie donc vers le tutoriel officiel de M@teo21.

Le: 07 03 2012 à 19:16 Auteur: noreply@siteduzero.com (Mewtow)

Ce tutoriel est assez vulgarisé mais quelques points particuliers pourront paraitre obscurs. Si c'est le cas, c'est que vous n'avez pas le niveau pour lire ce tutoriel, et je recommande la lecture de mon tutoriel avant de poursuivre la lecture de cet article : Fonctionnement d'un ordinateur depuis zéro.


Si vous programmez depuis un certain temps, vous savez sûrement qu'il existe plusieurs paradigmes de programmation : le paradigme procédural, l'impératif, l'objet, le fonctionnel, etc. Chaque langage est plus ou moins rattaché à un (voire plusieurs) de ces paradigmes, et dispose de fonctionnalités plus ou moins diverses et variées. Mais ces langages ont pour but de créer des programmes exécutables par un ordinateur dont le matériel est plus ou moins évolué.

Au départ, les premiers ordinateurs étaient optimisés pour exécuter des langages de programmation impératifs très simples, et leur assembleur disposait de peu de fonctionnalités proches des langages de haut niveau : pas de support des tableaux, sous-programmes (les fameuses fonctions), et les types de haut niveau n'étaient pas supportés (pas de flottants ni de caractères, seul un type était accepté : le word). Au fil du temps, l'assembleur de ces processeurs et leur architecture ont évolué pour supporter les fonctionnalités de haut niveau dans leur assembleur : le nombre de types supportés par le processeur s'est étoffé, des instructions spéciales pour supporter les sous-programmes ont été inventées, et de nombreux modes d'adressage spécialement dédiés aux tableaux et structures ont fait leur apparition. Toutes ces améliorations ont fait que nos processeurs sont particulièrement adaptés à des langages procéduraux de haut niveau comme le C, le Pascal, le BASIC ou le Fortran.

Mais tous les processeurs existants n’ont pas forcément suivi cette logique et ne se sont pas adaptés qu'aux langages procéduraux. Par exemple, quand la programmation orientée objet s'est démocratisée dans les années 1980, des chercheurs ou des fabricants de processeurs ont décidé de créer des processeurs prenant en charge une bonne partie des fonctionnalités des langages de programmation orientés objet directement dans leur matériel. Cela a donné lieu à quelques petites architectures plutôt sympas, dont certaines ont quitté les laboratoires pour finir par être commercialisées.

Mais certains sont carrément allés beaucoup plus loin : il existe de nombreuses architectures spécialement adaptées à l’exécution de langages fonctionnels ou logiques : les architectures dataflow. Ces architectures étaient assez étudiées dans les années 1980, mais sont aujourd’hui tombée en désuétude. Ce tutoriel va parler de ces processeurs (en même temps, vu le titre...), assez différents de ce à quoi l'on peut être habitué.

Le: 06 03 2012 à 00:16 Auteur: siteduzero@siteduzero.com (Vinc14, junior0 et The frog)

Salut les zéros ! :)

Vous êtes curieux ou passionné par les réseaux ? Vous êtes étudiant et avez du mal à appréhender et comprendre cet univers ? Vous êtes tombé au bon endroit ! Nous vous souhaitons la bienvenue dans ce tutoriel. Entrons tout de suite dans le vif du sujet. Avez-vous déjà entendu une discussion d'administrateurs réseau ? Vous avez probablement entendu des termes compliqués, qui vous semblent insignifiants comme réseau privé virtuel, protocole, niveau applicatif, UDP, transmission de paquets... Et alors quand ils parlent de leurs problèmes de configuration de routeurs, de passerelles, de serveurs DNS, vous vous dites qu'ils viennent d'une autre planète ! Rassurez-vous, ce tutoriel est là pour vous expliquer comment tout cela fonctionne.

Dans ce tuto, vous apprendrez des notions de base pour bien débuter, puis nous explorerons sur 3 parties le modèle OSI et les notions fondamentales qui gravitent autour. La suite, qui concernera les services, n'est pas encore disponible, mais quelques chapitres de sécurité, publiés de temps en temps en parallèle des autres, pourront vous intéresser. :)

N'hésitez pas à lire les commentaires de chaque chapitre, certains sont très pertinents et permettent d'approfondir le cours !