Archives par étiquette : système

[CNAM] NFE114 Systèmes d’information web

Comme je le dis souvent je poursuis le cycle Ingénieur en Informatique du CNAM depuis un peu plus de deux ans. J’avais déjà parlé de cette UE à travers ce post sur une fonction PHP utilisée dans la réalisation d’une photothèque. Je souhaitais ici faire partager les différents liens trouvés et utilisés pour compléter ce cours. Vous trouverez déjà les supports pour l’UE en présentiel sur Lyon sur cette interface. il est possible de consulter les cours en ligne ou de les exporter en PDF avec les liens en bas de page. Comme vous le constaterez les sujets des travaux pratiques qui accompagnent les cours sont aussi disponibles. Dans mon cas je n’ai pas eu à rendre tout les TP, juste le dernier, la Photothèque, mais je les ais tous réalisés ce qui aide vraiment dans la compréhension du cours et dans l’acquisition des connaissances. Je me suis posé la question à savoir si il serait intéressant que je mette en ligne les codes sources des TD réalisés sur un Google Code, ou bien sur un dépôt Subversion (ou autre), mais je n’ai pas encore pu prendre de décision sur ce point. Il y a déjà tellement de codes sources sur la toile que je ne sais si cela aurait un grand intérêt, surtout qu’il est plus formateur de chercher par soit même que de copier du code 😉 Mais si certains pensent que ce serait un plus, n’hésitez pas à laisser un commentaire et je me ferais un plaisir d’étudier cette possibilité 🙂

Pour la partie sur HTML, j’ai peu de liens connaissant déjà ces balises à l’origine. A savoir qu’il vous sera demandé d’être valides xhtml 1.0 strict. Un site simple et qui permet de connaitre les balises avec leurs différents attributs autorisés est celui de w3schools :

HTML sur w3schools

XHTML sur w3schools

Ce que j’apprécie avec ce site, et j’aurai l’occasion de revenir dessus dans la partie sur CSS, c’est aussi le menu de gauche avec les différentes familles ou éléments qui permet une recherche assez rapide. Pour les formulaires (qui sont plus utiles dans la partie PHP qu’ici avec des pages statiques) je reviens souvent au site CCM où ce n’est pas trop mal expliqué, mais il existe aussi pas mal d’autres sites pouvant aider sur cette partie.

Les formulaires HTML sur Comment Ça Marche

Pour la validation de vos pages XHTML, deux solutions, soumettre le fichier en ligne sur le site du W3C (Validateur W3C XHTML) soit en ayant votre fichier sur un hébergement Internet, soit en le soumettant directement par « File Upload ». Une autre solution qui fonctionne en local est d’utiliser le module Firefox Web Developer Toolbar (J’en avais déjà parlé dans ce post avec Firebug que je citerai plus bas). En effet avec ce plugin d’installé, en étant sur la page en question, il suffit de faire Ctrl+Shift+A pour déclencher une validation locale de la page ce qui est bien pratique (surtout quand on génère des pages dynamiquement et que nous sommes en local).

Pour la partie du cours sur CSS je me suis de nouveau beaucoup servis de w3schools. C’est d’ailleurs par cette partie que j’ai connu ce site et que j’ai appris à l’apprécier.

CSS sur w3schools

En complément je me suis par la suite aussi servis du tutoriel présent sur EchoEcho.com

CSS on EchoEcho.com

Je dirais que ces deux sites sont suffisant et que c’est ensuite une histoire de pratique. Dans le cadre de cette UE la première pratique est la réalisation d’un Curriculum Vitae (CV) en XHTML & CSS (avec les validations bien sûr). Pour valider les pages CSS je me suis toujours servis du validateur en ligne du W3C avec upload de fichier. Comme je fonctionne toujours avec un fichier distinct pour les feuilles de style, c’était le plus simple. Pour analyser les comportements CSS que nous pouvons rencontrer, le module Firebug de Firefox est très pratique. il vous permettra en effet d’analyser votre page blocs par blocs, de voir les styles appliqués sur les éléments qu’ils proviennent de la feuille de style ou qu’ils soient calculés. Enfin vous serez amené à faire de la mise en page avec autre chose que des tableaux HTML (oui je sais que beaucoup disent que c’est démodé mais cela reste plus que pratique et souvent bien plus simple tant que nous n’en cascadons pas trop 😉 ), c’est à dire avec des DIV par exemple, j’ai beaucoup aimé ce tutoriel sur Developpez.com :

DIV et CSS : une mise en page rapide et facile

Bon d’accord il me faudra beaucoup de pratique pour bien maîtriser les DIV et leur positionnement mais c’est déjà un bon début. Pour la partie sur JavaScript je me suis servis de nombreux sites sur Google (tout autre moteur de recherche est bien sur à utiliser aussi, au choix 😉 ), mais le site où je suis le plus revenu est Tout JavaScript et notamment leur documentation en ligne des différentes fonctions avec leurs propriétés et la manière de les utiliser :

Doc JavaScript sur Tout JavaScript

Dans le cadre de cette UE on doit réaliser un convertisseur de devises simple, puis avec le choix des devises en question. On n’intègre pas de PHP ou d’autre fonctions, ni de formulaire HTML, on ne travaille qu’avec CSS, XHTML et JavaScript. Par exemple pour créer les boutons nous jouons uniquement sur les propriétés de style des cellules du tableau comme dans l’exemple ci-dessous :

    <td colspan="2" class="bouton"  onmousedown="this.style.borderStyle='inset'; this.style.backgroundColor='#AAAAAA';"
        onmouseup="this.style.borderStyle='outset'; this.style.backgroundColor='#E0E0DA';"
        onmouseout="this.style.borderStyle='outset'; this.style.backgroundColor='#E0E0DA';"
        onclick="document.getElementById('de_valeur').innerHTML += this.innerHTML;"
    >0</td>

Comme je le disais plus haut dans l’article, si il y a des demandes pour le fichier direct, je verrai pour les mettre en ligne mais je vous invite fortement à vous y essayer par vous même. Le cours s’oriente ensuite sur PHP pour la génération de pages dynamiques, mais aussi la gestion d’une base de données comme MySQL pour interagir avec PHP. Attention nous ne sommes pas ici sur une UE pour apprendre le langage SQL ou comment gérer une base de données, voyez plus pour NFE113 ou une autre unité pour cela 🙂 Pour MySQL je vous inviterais tout simplement à consulter leur site / manuel en ligne qui est plus que complet :

Manuel MySQL 5.0

Pour PHP je ne connais rien de mieux que leur documentation en ligne afin de connaitre le détail des fonctions, avoir des exemples d’utilisation ou des trucs et astuces.

php.net

Il ne s’agit pas d’une UE de développement pur, mais de découverte du Web plus. Il vaut donc mieux avoir déjà des notions de développement ou savoir utiliser ces technologies. Quand on connait déjà un peu la programmation il est tout à fait possible de plonger sur JavaScript ou PHP sinon cela vous demandera un gros travail pour déjà apprendre à développer. Dans ce dernier cadre, ou si vous connaissez un autre langage et souhaitez vous lancer sur PHP je vous inviterais à visiter ces quelques liens :

le Site du Zéro : Concevez votre site web avec PHP et MySQL

le Site du Zéro : La programmation orientée objet en PHP

Vous pourrez trouver bien d’autres tutoriels ou aides via un moteur de recherche, ou en allant sur des sites dédiés au développement comme Developpez.com par exemple. Dan ce cours il n’y aura pas besoin, dans le sujet actuel de la Photothèque, de savoir gérer des sessions ou des cookies mais si cela devenait le cas vous trouverez les liens sur le Net sans soucis 🙂 J’espère en tout cas que ces quelques liens vous auront déjà aidés.

Un complément à ce long article pour les logiciels que vous pouvez utiliser afin de travailler cette UE directement sur votre ordinateur personnel. Attention il est en général demandé de venir avec un ordinateur portable et de travailler sur sa propre machine :).

Éditeurs de texte avancés :

– Notepad++ : Celui que j’utilise le plus sous Windows (oui mon vieux portable est toujours sous XP Pro 😉 ). Très complet avec une bonne coloration syntaxique. J’aimerai même pouvoir l’avoir sur d’autres plateformes avec le temps. Site Officiel.

– Notepad2 : Le léger et sans installation qui peut facilement se substituer au Notepad par défaut de Windows. Assez complet avec la coloration syntaxique aussi, son seul défaut est de ne pas proposer d’onglets pour ouvrir plusieurs fichiers. Site Officiel. Version Française.

– VIM : On a plus vraiment besoin de présenter VI qui est bien souvent l’éditeur le plus utiliser sous Linux (désolé pour les fan de Nano 😉 ). Il existe aussi une version Windows de ce dernier et même si personnellement je n’en suis pas fan il est bon de la connaitre. Et comme nous avons tous des goûts différents 😉 Site Officiel.

IDE :

– Eclipse PDT : Celui que j’utilise le plus, quelque soit le langage. C’est peut-être une question d’habitude mais on s’y habitue bien. Site Officiel. On peut travailler sur de nombreux langage en commençant par Java, ou le C. Pas d’installation, juste une archive à décompresser et ce que ce soit pour Linux ou Windows. A noter qu’il existe aussi une version nommée Easy Eclipse pour le PHP. Avec le temps je préfère PDT pour le PHP que cette autre version. Attention toutefois Eclipse ne gère pas le PHP par défaut, PDT est une version avec des modules complémentaires. Un autre point positif est la possibilité de débugger directement dans l’IDE et son couplage avec XAMPP ou WAMP sous Windows.

– Netbeans : L’autre gros IDE gratuit, il est tout aussi complet et propose lui aussi de très nombreuses fonctionnalités. Je l’ai surtout utilisé pour Java car ses options pour Swing et pour construire une interface sont très pratiques. Presque on se croirait avec Visual Studio pour faire de l’événementiel au lieu de programmation Objet 😉 J’ai dit « presque », ne lançons pas de « Troll » 🙂 Donc très complet aussi et pour de nombreux langages, à vous de choisir celui que vous préférez. Site Officiel.

Il existe bien sûr d’autres IDE payants, gratuits, open-source. N’hésitez pas à chercher via un moteur de recherche et à les tester pour trouver celui qui vous convient le mieux. Un autre avantage des IDE est l’auto-complétion des fonctions, variables, les aides intégrées sur les fonctions et ainsi de suite. Donc une véritable aide pour bien coder et plus rapidement.

Serveur Web et MySQL en local :

Windows :

Je ne ferais pas de description de chacun des logiciels ci-dessous leur fonctionnement étant le même dans l’ensemble et ce qu’il propose aussi. Ils vous permettent d’avoir un serveur Apache avec PHP et un serveur MySQL en local sur votre machine et ce facilement. Cela vous installera aussi PhpMyAdmin pour vous aider à la gestion des bases MySQL. Un plus pour développer et tester en direct ce que vous faites 🙂

– XAMPP : Celui que j’utilise, il se couple bien avec Eclipse. Site Officiel.

– WAMP : Site Officiel.

– EasyPHP : Un ancien et un classique, le premier que j’ai utilisé quand je me suis mis aux technologies Web. Site Officiel.

Linux :

– LAMP : Bon ici pas de secret, installez directement Apache, MySQL et PHP sur votre machine Linux, c’est encore le plus simple 😀 C’est ce que je fais à la maison et j’avoue souvent regretter de ne pas avoir passé le portable aussi sous Linux pour ne plus me prendre la tête 😉

MAC :

– MAMP : Bon je ne suis vraiment pas « fan » des MAC, mais j’ai pu constater que des auditeurs en ont, donc autant aider ceux qui ne connaitraient pas. Comme sous Linux vous avez la possibilité d’installer Apache et MySQL directement ou si vous ne voulez pas vous embêter il y a MAMP. Site Officiel. Bien qu’ils essayent de vous faire acheter la version « PRO », ils diffusent bien une version gratuite 🙂

Voici donc pour cet article sur NFE114. J’espère qu’il vous sera utile que vous soyez auditeur sur Lyon, Rhône-Alpes, ailleurs en France, ou tout simplement en train de vous lancer dans le développement Web 🙂 N’hésitez pas à me faire part de remarques, suggestions pour compléter ce dernier en commentaires 🙂

Annale de l’examen : Une annale de 2008-2009 est disponible sur le site cnamcnam.free.fr. Comme vous le constaterez il s’agit d’un QCM. Ce sujet vous permettra de vous entrainer et d’avoir une idée de ce qui vous attend. Le système de notation est assez simple. Si pour une question nous avons deux réponses, une juste et une fausse, la juste vaudra +1, la fausse -1 et ne rien répondre 0. Si on a trois réponses, une juste et deux fausses, la juste vaudra 1 point, chaque fausse vaudra -0.5 point et ne pas répondre donnera 0 point. Il vaut mieux éviter de répondre quand on a des doutes ou qu’on ne sait pas 😉 A savoir que l’examen final en Rhône-Alpes ne compte que pour 50 % de la note (c’est le projet final qui représente les 50 autres pourcents 😉 ). Vous pourrez trouver d’autres aides ou des annales d’autres régions sur graziaboss.free.fr aussi. Et je pense qu’il doit encore y en avoir ailleurs 😉

Configurer un serveur de temps sous Windows

Voici quelques temps j’ai été confronté à un souci. Si tout mes serveurs Linux étaient bien synchronisés avec des serveurs NTP (cf. ce post), les postes de travail sous Windows avaient eux une légère avance. Vous me direz que ce n’est pas trop grave, mais comme les personnes travaillant sur ces postes se basent sur cette heure pour partir, cela fait désordre. En cherchant quelques informations j’ai pu avoir une meilleure idée du fonctionnement des serveurs de temps sous Windows. Au sein d’un domaine, les machines se basent sur le temps du serveur d’autorité, donc bien souvent le PDC (Contrôleur de domaine). Ce dernier se base par défaut sur son horloge interne. C’est en effet le plus simple et le plus sûr car on est alors indépendant d’une source externe (pas de souci si on a pas Internet). Dans le cadre de mon réseau d’entreprise, j’ai un accès à Internet redondant avec d’un côté une fibre optique à 100 Mo et de l’autre une connexion basique via une Box d’un FAI. Si l’accès principal se coupe, le Firewall basculera automatiquement vers la deuxième connexion le temps que la première se rétablisse. L’horloge interne de mon contrôleur de domaine semblant avancer, j’ai décidé de synchroniser ce dernier avec le pool ntp français, comme pour mes serveurs Linux.

Je suis d’abord tombé sur cette fiche du support de Microsoft. On y trouve une description très complète de ces soucis, peut-être trop. Autant sous Linux on édite juste le fichier de configuration ntp.conf, autant ici on se retrouve à devoir jouer avec la base de registre, ce qui est loin d’être ma méthode préférée sur un contrôleur de domaine principal 😉 Je suis ensuite tombé sur un site d’administration réseau où l’explication était plus simple et a répondue à mon besoin (www.adminreseau.net). Voici ci-dessous la méthode que j’ai donc appliquée :

Dans une invite de commandes DOS entrer la commande suivante :

net time /setsntp:fr.pool.ntp.org

Cette commande permettra de configurer la source de temps externe en modifiant les entrées suivantes de la base de registre (personnellement, j’ai fais une sauvegarde complète de la base de registre avant de faire cette manipulation, on est jamais trop prudents …) :

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type passera de NT5DS à NTP
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags passera de 10 à 5 en décimal
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer sera créée au besoin et contiendra le nom du serveur NTP utilisé pour la synchronisation, ici fr.pool.ntp.org (pool de serveurs de temps français).

Il fallait ensuite redémarrer le serveur de temps en tapant les commandes suivantes à la suite :

net stop w32time (arrêt du service de temps)
net start w32time (démarrage du serveur de temps)
w32tm /resync /rediscover (force la synchronisation)

Si vous avez d’autres contrôleurs de domaine, vous pouvez faire cette manipulation supplémentaire dessus pour les synchroniser :

/setsntp (efface la configuration précédente)
w32tm /resync /rediscover (force la synchronisation)

Vous pourrez ensuite vérifier la synchronisation de vos contrôleurs de domaine avec la commande suivante :

w32tm /monitor

Personnellement je n’avais qu’un seul contrôleur de domaine donc pas besoin de m’occuper de la synchronisation des autres. En revanche je ne me suis pas embêté à aller sur chaque poste Windows pour le synchroniser. Les utilisateurs éteignant les machines la nuit, la synchronisation s’est faite naturellement au petit matin quand ils ont rallumés leurs postes de travail 🙂

Osez les logiciels libres !!!

Voici quelques temps je discutais avec mon cousin, et je me suis aperçus que beaucoup d’entre vous ne connaissaient pas les logiciels libres. Comme pour lui j’avais rédigé un petit laïus, je me suis dis que je pourrai vous en faire profiter. L’univers du libre est très vaste et cela peut aller du plus compliqué au plus simple. En effet cela couvre des systèmes d’exploitations (distributions Linux comme Ubuntu, Mandriva, RedHat, Suse, …). Il existe des sites et des associations pour promouvoir tout cela comme Framasoft qui recense 1500 logiciels libres et compatibles multi-systèmes (Windows, MAC, Linux) . Il existe aussi des sites pour promouvoir les distributions libres comme Distrowatch. Cela reste une très bonne source d’information sur les nouveautés dans les distributions Linux avec plus d’une centaine systèmes d’exploitations proposés.

Au delà de Framasoft, d’autres sites proposent régulièrement des comparatifs ou des listes de logiciels libres et gratuits aussi bien pour Linux que pour Windows. En général les Linuxiens connaissent déjà cet univers et donc beaucoup d’articles concernent les différentes versions de Windows 🙂 Voici par exemple un article sur un site assez connu où les alternatives aux logiciels de gravure payants sont exposées :

http://www.clubic.com/article-79507-1-logiciels-gravure-gratuits-mac-pc.html

En effet sur cinq pages on nous cite les différentes alternatives avec des points forts/faibles et autres informations pour pouvoir en choisir une. Un autre assez connu pour ce qui est de l’informatique donne chaque année toute une séries de pages sur les meilleurs logiciels libres et gratuits :

http://www.infos-du-net.com/actualite/dossiers/59-logiciels-gratuits.html

On y trouve une liste vraiment complète qui va de la suite bureautique comme Open Office pour remplacer MS Office, à des logiciels de retouche photo (The Gimp, Paint.Net,  …) et bien d’autres en traitement vidéo, audio, et ainsi de suite 🙂

Une autre initiative à citer pour promouvoir tout cet univers, issue de Framasoft, c’est le Framapack. A travers cette interface vous pourrez choisir des logiciels et lancer leur installation. Pour illustrer au mieux mes propos voici une liste non-exhaustive des logiciels proposés dans ce Framapack avec une légère description :

  • OpenOffice : suite bureautique complète, compatible avec MS Office
  • PDFCreator : créer ses propres PDF
  • FreeMind : mettre en forme ses idées ou ses remarques à l’aide de graphiques, de schémas
  • GnuCash : gérer ses compte
  • Sunbird : calendrier
  • Putty : se connecter en Telnet ou SSH où on veut
  • Komo Edit : Un IDE pour de nombreux langages
  • Notepadd++ : un éditeur de texte avancé
  • Tux Paint : pour que les petits apprenent à dessiner
  • TuxMath : s’exercer au calcul mental en jouant
  • Tux Typing : apprendre à maîtriser son clavier et à taper plus vite 😉
  • The Gimp : retouche et traitement d’images, de photos
  • Inkscape : dessin vectoriel
  • Blender : dessin, modélisation et animation 3D
  • Dia : réalisation de diagrammes
  • Sweet Home 3D : réalisation de plans de maison en 3D
  • Thunderbird : client de messagerie
  • Pidgin : unc lient pour de nombreuses messageries instantanées (msn, jabber, gtalk, icq, aim, …)
  • FileZilla : client FTP
  • Freeciv : la version gratuite et open source de l’éponyme Civilization
  • Frets On Fire : devenir un pro de la guitare
  • VLC : un lecteur multimédia complet
  • Audacity : enregistrer et convertir les fichiers audio
  • Songbird : classer et visualiser vos musiques et vidéos
  • CDex : convertir vos CD audios
  • Avidemux : convertir vos films
  • 7-zip : un archiveur complet
  • …etc…

Bien sûr je n’ai pas cité tout les logiciels du Framapack afin de vous inciter à au moins visiter leur interface. De même je pourrais vous concocter une liste bien plus longue avec des dizaines, voire des centaines mais est ce que cela serait vraiment utile ? Je préfère donc vous avoir fait cette courte présentation et j’espère que cela a attisé votre curiosité. N’hésitez pas à chercher suivant vos besoins, ou à farfouiller. Personnellement j’ai pu remplacer la majorité de mes logiciels propriétaires grâce au monde du libre qui est de plus en plus actif. Il est possible de trouver d’autres listes de suggestions que ce soit pour la sécurité, ou d’autres utilisations :

http://www.tunibox.com/utilitaires/liste-complete-des-meilleurs-220-logiciels-libres-et-gratuits-classes-par-categorie.html

http://oss.jbkempf.com/list.php

Vous pourrez trouver d’autres listes ou suggestions au gré de la toile. A savoir que beaucoup de sites prônant le libre ou diffusant ce type de logiciel comprendra toujours une parti vous invitant à faire des dons. En effet réaliser et maintenir des logiciels est un travail qui prend pas mal de temps, et même si il est souvent réalisé par des passionnés, un soutien financier permet d’aider. Et oui les hébergements coutent de l’argent, tout comme le temps et certains moyens techniques nécessaires. Donc si vous aimez un logiciel libre et que vous le souhaitez bien, n’hésitez pas à faire un don. Même de nombreux petits dons peuvent finalement être bénéfique (si 100 personnes donnent toutes 1 € cela fait déjà 100 € pour encourager quelqu’un à continuer et pour l’aider 🙂 ). C’est un système de fonctionnement qui n’est pas si mal, chacun pouvant participer ou non et ce à la mesure de son envie 🙂

Ce système s’étend maintenant à des éditeurs de logiciels qui distribuent une première version gratuite de leur solution afin de se faire connaitre, et proposent parallèlement des solutions plus complètes ou une offre de services quille est payante. Nous pouvons citer deux noms dans l’univers des antivirus avec AVG et sa version free, et Avast avec sa version familiale. Nous pouvons aussi citer l’éditeur VMware dont la renommée n’est plus à faire dans le milieu de la virtualisation, qui nous propose son « player » et sa version « server » par exemple pour virtualiser autant de machine qu’on le souhaite.

Pour conclure, je dirais que parallèlement il existe de nombreuses associations pour défendre les logiciels libres et le monde du libre comme l’April dont j’avais déjà parlé l’année passée, lors de la première version d’Hadopi. Espérons que tout cet univers aura encore plus que de beaux jours devant lui, et ce malgré la légère incompréhension de nos chers dirigeants. Tiens pour la nouvelle année je leur souhaite d’avoir moins d’oeillères 🙂 J’espère que cet article vous aura été utile ou qu’il vous aura intéressé. Bonne découverte à tous 🙂