Affichage des articles dont le libellé est Etudes. Afficher tous les articles
Affichage des articles dont le libellé est Etudes. Afficher tous les articles

jeudi 17 juin 2010

Retour sur l’épreuve des PTIs du Bts Ig

Ca faisait un moment que je n’avais pas pris le temps d’écrire un peu sur mon blog, et oui comme beaucoup j’étais en période d’examen. Je rappel à ceux qui ne le savent pas que je suis en deuxième années de BTS Informatique de Gestion option Développeur d’applications (oui je sais : c’est long ! comme ce billet je préfère vous prévenir alors accrochez vous) par correspondance via le CNED de Poitiers. Les épreuves ont commencées le 11 mai avec les écrits sur une semaine, puis les oraux la semaine après, suivant les personnes ça pouvait être fin mai, début juin… pour ma part ça a été une épreuve par semaine, sauf la dernière (que je vais présenter après mon baratin) qui s’est déroulée aujourd’hui (le Lundi 14 Juin 2010).

Le point sur les autres épreuves


Ce n’est pas que les autres épreuves sont “useless” mais elles ne font pas aussi peurs que la fameuse épreuve des “PTIs” donc je vais être bref (avec moi bref ça ne veux pas forcément dire rapide, vous l’aurez compris ;) ). Globalement je ne suis pas super satisfait de mon travail car j’ai été trop lent. Finalement les études par correspondance c’est bien car ça permet quand même de travailler à son rythme et puis… ah ah ! Voila le problème : Le rythme. J’ai perdu beaucoup trop de temps avec mes brouillons et je ne me suis pas assez focalisé sur certains points.
L’étude de cas
Par exemple pour l’étude de cas j’ai vraiment pris mon temps pour faire un superbe MCD, au brouillon, puis sur la feuille, sérieusement il est superbe (je l’encadrerais dans ma chambre si j’était complètement fou), la partie SQL n’est pas laide, elle n’est pas blanche non plus, la première question était simple car oui il y avait une jointure qui ne servait à rien :O les autres questions n’étaient pas très durs.. la dernière question par contre à cause de mon brouillon et de mon “rythme” a retenu mon attention trop longtemps et au final : j’ai fait franchement n’importe quoi (un INSERT au lieu d’un UPDATE) et mon calcul était faux, heureusement le total des points du dossier 2 n’est pas que sur cette questions. J’oubliais la partie gestion que j’ai lamentablement ratée, en faite je ne me rappel plus trop… ça fait déjà un mois, c’est dommage car l’année avait été pas mal en GEOSI. Le dossier 3, quel bonheur… de la programmation orientée objet : Sérieusement j’adore ça, je ne programme que comme ça, la programmation procédurale ? j’ai du mal maintenant car je pense objet tout de suite, pour moi la programmation procédurale dans un gros programme ça va être une fonction merdique qui prend 30 pointeurs en paramètres dont des pointeurs sur fonctions… Pourquoi je dit ça ? vous croyez que je l’ai raté ? ha ha (là je parie que non) je l’ai partiellement : bien || mal réussie. Je me suis compliqué la tête pour rien sur certains passage et j’ai fait d’autres passage hyper rapidement, au final ma feuille comportait du blanc (du correcteur non liquide, vous savez type souris correcteur)… La partie avec le fichier XML m’a pris du temps car je ne comprenais pas totalement comment fonctionnait le système (il faut que je m’immerge dans le sujet, que je le sente en moi pour réussir, mais au BTS on à pas le temps de jouer à ça hein), après de la réflexion et une appropriation du système dans ma tête, je finis le dossier. Lorsque j’ai attaqué le dernier dossier il était 17h40 je crois et je faisais partie des derniers élèves de la salle. J’ai pousser mon cerveau hors limites, il fallait finir sinon c’était le #fail assuré (note à part : Militons pour que les hashtag de twitter passent aussi sur les blogs et sur les messageries instantanées), j’ai donc fait de mon mieux, je me suis aperçus que j’avais une mémoire assez visuel car je revoyais des schémas et surtout des tableaux d’AMSI concernant l’adressage des routeurs ! Là où je me suis lamentablement planté ça a été au masque sous réseau, quand j’y repense, je crois avoir indiqué les adresse de pont à la place… Mais c’était le stresse
Les Maths : Oui je l’ai fait !
Alors là c’est la surprise la plus totale est c’est pourquoi je lui consacre un paragraphe entier. Non je ne vais pas vous dire j’ai réussi les maths, mais je vais vous dire : J’ai réussi à ne pas louper les maths et encore mieux : je sais que j’ai des exercices de justes. Il faut savoir que je ne suis pas bon en math et pourtant j’aime cette matière (ce propos est à relativiser par moment..), je ne suis pas bon car quand j’étais jeune je n’ai pas travaillé et avec le temps j’ai pris du retard, et ce retard est dur à rattraper. La veille de l’épreuve de math (un jeudi férié) j’ai révisé , donc pour moi c’était : “révise ce que tu est capable d’appliquer” j’ai donc révisé les graphes, les matrices, les statistiques à une et deux variables, les probabilités (un peu) et quelques autres truc sombres que je n’aime pas mais qu’il a fallu au moins regarder comme les primitives, les intégrales et toutes ces choses qui vous font peur ! Lorsque je suis arrivé à l’épreuve j’était stressé car je pensais que j’allais rendre feuille blanche, et non.. la magie à opérée, comme pour l’AMSI et ces tableaux, les formules me venaient dans la tête et je les appliquaient, mieux encore je vérifiais mes calculs avec la calculatrice et.. magie c’était bon :) . Bien sur il y a des passages où je n’ai pas fait grand chose, mais globalement c’est très bon et j’en suis content.
Les autre épreuves
Oui il faut abréger un peu… c’est un billet sur les PTIs normalement mais j’avais besoin de parler des autres épreuves aussi finalement. Je trouve personnellement que l’anglais écrit était facile par contre j’ai raté totalement mon oral (panique, anarchie dans ma tête sur le coup). L’économie droit c’était faisable, cependant je n’avais pas assez de méthode et pas assez de pratique (et c’est ma faute, je me suis concentré sur d’autres choses cette année). L’expression c’est pas trop mal passées (j’attend..).
L’oral de soutenance
Je suis passé le premier (les profs avaient du retard à cause du café d’après manger) et je pense avoir fait ce qu’il fallait côté contenu et communication. Une chose “marrante” m’est arrivée 15 minutes avant de rentrer dans la salle, ma montre à lâchée donc impossible de savoir combien de temps j’ai mis à l’oral, heureusement j’avais un PowerPoint bien structuré et j’ai dit l’essentiel. Concernant les questions, la prof de Français m’a demandée ce que c’était que ce symbole bizarre sur mon MCD (un héritage) et je me suis empressé de lui répondre, elle m’a aussi demandé d’éclaircir un point de ma présentation (le seul et unique que je n’avais pas clairement explicité). Pour ce qui est des questions informatique, on m’a demandé ce que représentait le X dans mon héritage sur le MCD (une exclusivité), par la suite la prof d’informatique m’a fait remarquer que j’avais une erreur de contrainte sur mon MCD (subtilement, car elle me l’a fait découvrir, je l’ai reconnu tout seul), en fait j’aurais dû mettre une contrainte type XT (exclusivité/totalité). Et puis il y a eu des questions sur le modèle client serveur de l’application alors j’ai commenté le schéma d’une diapo. Une chose encore, j’ai utilisé le dossier de soutenance comme support pour mes explications, par exemple je disais “comme vous pouvez le voir sur la page XY du dossier…”. Il n’y a pas grand chose d’autre à dire sur cet oral qui n’a pas été si dur que ça, enfin je pense (j’utilise beaucoup le verbe penser dans ce billet car je ne suis pas sur de moi).

Les PTIs


Nous y voilà enfin :) je pensais franchement faire plus court pour le haut mais que voulez vous, il faut bien introduire les choses et puis ça fait du bien de dire ce qu’on a sur le cœur avec un peu (pas beaucoup certes..) de recule. Dans un premier temps j’introduirais très rapidement la “notion” de PTIs puis je vais vous présenter les applications que j’ai réalisés, enfin vous aurez le droit à mon feedback, puis une conclusion.
Les PTIs qu’est ce que c’est ? comment ça marche ?
Ce paragraphe est surtout dédié aux lecteurs qui ne savent pas ce que c’est et qui ne sont pas en BTS Informatique de Gestion. L’épreuve des PTIs ou Pratiques des Techniques Informatiques est une épreuve où vous présentez une application parmi 5 ou 7 (il vaut mieux se limiter à 5) devant un jury. Vous présentez cette application de manière “technique” donc pas la peine de prendre toutes les dispositions du monde pour que tout les termes que vous employez soient sans ambiguïtés, non les deux enseignants informatique savent (en théorie car ils ne connaissent peut être pas le langage de programmation que vous utilisez) de quoi vous parlez car : un service web c’est un service web, une classe c’est une classe, une procédure…. Là je parle en tant que développeur, mais les PTIs réseaux existent bien évidement pour les étudiants passant un BTS IG ARLE (Administrateur Réseaux Locaux d’entreprises) mais je ne peux pas vous en parler car : je suis “dev” moi ;) et C# c’était mon idée. Les applications présentés doivent au moins couvrir toutes les compétences de la spécialité, cela ne veut pas dire qu’une application doit tout couvrir mais que l’ensemble des applications couvrent les compétences.
Les compétences en développeur d’applications
C31 Gérer un projet de développement logiciel
C32 Développer avec un langage procédural
C33 Maquetter et développer avec un langage événementiel
C34 Développer avec un langage orienté objet
C35 Développer autour d'une base de donnée relationnelle
C36 Développement Client/Serveur
C37 Mettre au point et maintenir une application
C38 Développement multimédia
C39 Maîtriser le poste de développement et l'environnement

Je ne débâterais pas sur ce tableau car il parle de lui même. Enfin je dirais simplement que les compétences C32, C37, C39 sont quand même hyper faciles à caser, personnellement je les verrais bien en une seule compétence, genre C30 : Gérer, créer et maitriser un cycle de développement logiciel, là ça parlerais ! et puis rajouter une compétence développement embarquée… je m’emporte..
Mes cinq applications
Je vais tenter d’être rapide et efficace, vous trouverez ci-dessous deux captures d’écran de l’application et de l’arbre du projet. Je ne vais pas m’amuser à écrire un mémoire sur ces applications (même si j’ai un sacré feedback sur XnBreak, mon jeu), par contre je présenterais un peu plus en profondeur celle sur laquelle je suis tombée. En fait je vais spoiler un peux, j’ai eu l’extrême privilège (car j’étais le dernier) de choisir mon application (qu’est ce que j’ai choisis ? et bien c’est plus bas).

1. Infolyc


Cette application a été réalisée durant mon stage de deuxième année au lycée Camille Claudel de Digoin. Elle permet de diffuser des informations sur le lycée à tous les étudiants et enseignants. Celle ci est diffusée grâce à deux télévision LCD (une à côté du bureau de la vie scolaire et l’autre en salle des profs).

infolyc
infolyc_code
La technologie Flash est utilisée dans cette application. L’interface graphique a été réalisée en MXML (à la main je n’aime pas trop les designer en général et encore moins celui de Flex Builder 3) et la partie traitement en Action Script 3. La grosse particularité de cette application est qu’elle communique avec un serveur pour y récupérer les informations et absences à afficher. Pour cela l’utilisation de AMFPHP a été nécessaire permettant de travailler avec Flash et MySQL via des services web écrits en PHP. Le contenu de la base de données est sérialisé sur le réseau au format AMF (lisible par flash) sous la forme d’un simple fichier XML.



2. WebAdmin


C’est une interface web qui permet de piloter l’interface Infolyc, elle a été conçu pour qu’elle soit accessible et que les utilisateurs n’aient pas besoin de chercher longtemps pour trouver ce qu’ils veulent faire. Grâce à cette application j’ai réellement put mettre en pratique mes compétences en développement web et j’en suis assez satisfait.
webadmin

webadmin_code WebAdmin fonctionne sur un serveur intranet type Apache MySQL PHP (Xampp puis Lamp). L’interface graphique est écrite en xHTML 1.0 Strict (valide W3C) avec une feuille de style CSS où je me suis permis d’utiliser quelques fantaisies de CSS 3 comme les coins arrondies, les ombres portés, la semi transparence… bien entendu cela n’est visible qu’avec un navigateur respectant les normes, les utilisateurs d’internet explorer ont une interface agréable mais sans coins arrondies (ce n’est pas très gênant au final). On pourra noter aussi une utilisation de JavaScript pour réaliser du DHTML (Dynamic HTML) qui permet entre autre d’ouvrir et de fermer des blocs (bulles d’aides) ou d’afficher masquer des listes d’enseignants. Concernant la partie programmation serveur j’ai utilisé le langage PHP (avec un peu d’objet en PHP5 pour l’écriture d’un petit service) couplé à MySQL pour le stockage des données. Mon dossier de soutenance portait sur cette interface, il y a énormément de choses à dire dessus, mais je vais passer à la suite.


3. XnBreak


Voici un de mes bébé de l’année : XnBreak ! Je commence d’écrire cette partie et je ne sais pas si je prévois un autre billet pour parler de ça ou pas car il y a énormément de choses à dire. Bon je vais essayer d’être aussi court que les autres présentations (je vous vois sourire, c’est le terme “assez court” ? il faut prendre son temps dans la vie des fois et c’est ce que je fait, j’ai le temps, j’ai fini mes examens). Au début j’avais prévue de présenter un casse brique fait en décembre 2009 avec le Framework Xna et le commencement d’un mini Framework construit sur Xna : Yna (c’est un nom de code hein.. j’entend vos “espèce de mégalo !” d’ici alors que l’article n’est même pas publié), puis une semaine avant les épreuves PTIs je me suis dit que ce casse brique était “merdique” et qu’il n’était pas représentatif des capacités que j’avais désormais sur la plateforme .Net et Xna, alors je l’ai recommencé de A à Z (graphisme compris of course). Cela m’a pris 6 jours uniquement. Une journée de graphisme, 4 jours de code intensifs (du HardCoding comme j’aime dire) et une journée de test & corrections. Six jours pour réaliser un casse brique ça peut paraitre gros mais j’ai cette fois ci ajouté un menu et surtout et je suis content d’écrire ça tout de suite : Le jeu supporte une grande majorité de résolutions, je m’explique. Quand on fait les graphismes du jeu ils ont une taille (la résolution) hors quand on développe rapidement on ne se soucis pas trop de la taille ou alors juste une fois. J’ai introduis la notion d’échelle et j’ai adapté cette échelle dans tous les calculs du jeu (collisions, taille de rendu, surface d’affichage relative, absolue, etc…), ça m’a pris un peu de temps (finalement le produit en crois, la proportionnalité etc.. c’est super utile), donc je peux switcher vers n’importe quelle résolution (et proposer des résolutions adaptées sur Xbox 360 : 480p, 720p, 1080p…) Oui car au passage le Framework Xna permet de développer sur Xbox 360 (il faut un abonnement spécial pour déployer sur la console et proposer ses créations sur le Xbox Live, le mien est arrivé à échéance, j’en reprendrais un bientôt pour l’instant je me contente du PC mais ce n’est que partie remise ;) ). Le prix de l’abonnement est de 49 € pour 3 mois ou 99 € pour 1 ans, il existe aussi une formule pour étudiants via Dreamspark pour découvrir (on peut déployer sur Xbox 360 mais pas vendre), je trouve que c’est bien de la part de Microsoft d’ouvrir sa console, on ne peux pas en dire autant des autres constructeurs tels que Sony et Nintendo où avoir une console Hackée est obligatoire pour se faire ses homebrews (bon il ne sont pas limité au compact Framework certes.. mais Xna permet de faire déjà tellement de choses… regardez donc la finale ImagineCup ou .. bon j’arrête j’ai trop dévié là).
xnbreak
Voilà la première version du casse brique réalisée en décembre. Il n’y avait pas de menu, les graphismes étaient moches, pas d’écrans de transitions. Mes les principes de la POO étaient eux bien là.



XnBreak2
Et voilà la version finale qui n’a plus rien à voir avec l’ancienne version. Le score du joueur prit en charge, comme ses vies et le temps de jeu. On peu mourir, gagner et abandonner. Le jeu a un réel but. c’est un jeu.



XnBreak2-2
Lorsque vous mourrez ou que vous gagnez, vous avez le droit à un écran de transition (le CPU récupère quelques cycles pour d’autres tâches comme ça). Ce qui a prit du temps aussi a été la gestion des états des menus, écrans de transition, jeu. Finalement maintenant je pourrais sans doutes refaire la même chose en deux jours.

XnBreak2-code
Cette fois ci c’est la fenêtre entière de Visual Studio 2008 Pro. Pour résumer, la partie du haut (le premier projet) c’est le casse brique avec tout ce qui est programmation graphique et logique. La partie du bas (deuxième projet, référence au premier) c’est le bas niveau du casse brique (Yna pour ceux qui ont suivis) avec la gestion des Sprites, des propriétés du joueur, de certains calques, etc..
Je n’ai même pas parlé de notion de calques en Xna.. mais ce n’est pas un cour sur Xna (je n’ai pas réussi à faire court encore désolé.. mais avouez ! c'était pas agréable à lire ?) Au fait après relecture rapide je n’ai même pas dit que le jeu avait été réalisé en C#, bon vous avez sans doutes vue que ça fonctionnais sur la plateforme .Net (mais vous auriez put croire que c’est du VB…). Pour info, pourquoi C# ? Car en musique la note après le C (Do) est le D(Ré) et la note entre ces deux notes c’est le C# (Do Dièze), C# c’est donc comme du C mais avec un demi ton au dessus ;) comme pour C++ qui veut dire C = C + 1 mais là je suis sincèrement désolé je me suis encore égaré. Damn !

5. MetroTune


Il est où le 4 ? et bien c’est l’application que j’ai présentée donc je l’a réserve pour la dernière et ultime partie (j’avais écrit chapitre.. ça commence bien). Alors oui mon côté musicien a resurgit dans ces PTIs et il fallait que je fasse une application en rapport avec la musique et plus particulièrement la guitare, en plus ça faisait l’occasion de valider la compétence multimédia quoi qu’un jeu vidéo doit bien la valider ? bon passons. Justement il me fallait un métronome chouette (pas ces M*#des) qu’on trouve sur le net qui ne ressemblent à rien OU (notez l’opérateur OU ce n’est pas un ET c’est un OU, ça  ne veut donc pas dire que TOUT les métronomes sur internet sont laids) qui ont trop de fonctionnalités (sous Linux par exemple il y a de super outils mais qu’est ce qu’ils sont chiants à faire fonctionner, heureusement il y a findus mon métronome est là).

metrotune

Il est claire et dépouillé et pourtant il affiche l’essentiel et n’est pas si laid que ça à regarder. Vous pouvez choisir une fréquence parmi plusieurs pré-sélectionnées ou alors choisir une fréquence personnalisée entre 30 Bpm (Battements par minutes) et 250 Bpm (on m’indique que la limite sur les version “physique” c’est 255 Bpm et bien il n’y a qu’un chiffre à changer sur le QSpinBox). Bon côté code c’est du C++ (je me suis efforcé à respecter les règles de normalisation pour que le code soit portable entre au moins deux compilateurs : VC++ et GCC). Rapidement (raté), l’application utilise le Framework Qt 4.6.2 et est multi-Threads (gros mot ?). Un Thread est chargé de notifier l’interface graphique à chaque fois qu’elle doit jouer un sample, le Thread fait simplement un traitement “mathématique” car il calcul à partir  d’une tempo le temps à attendre avant l’envoi d’une notification à l’interface graphique qui elle,  jouera le son. Il y a aussi un petit feedback sur cette application, cela concerne la partie accordeur. J’ai 6 boutons qui représentent les 6 cordes de la guitare et à un clique sur le bouton on joue la note, cependant l’événement (le signal) clicked() de QPushButton n’ as pas de paramètre donc impossible d’identifier rapidement le bouton. En fait il y a un moyen mais ça ne fonctionne pas en multithreading (le cas de cette application) donc j’ai cherché et trouvé sur la faq de developpez.com qu’il fallait utiliser un mappage des signaux, ce que j’ai fait, et peut de temps après ça fonctionnait et j’étais capable de dire : Oui c’est moi qui est fait ce code et voilà pourquoi ça marche comme ça ! Le contenu du projet ne faisant que 4 classes et un fichier main je ne pense pas qu’il soit nécessaire de les présenter ici avec une capture d’écran. C’est effectivement l’activité qui est la plus courte et pourtant j’aurais plus de choses à dire sur celle ci que sur la première activité Infolyc en Flash. Je tiens à dire que j’ai choisis le C++ car c’est un langage que je n’avais pas pratiqué depuis l’année dernière (pour les cours et pour OpenGL) et je voulais voir si j’allais me faire insulté par mon compilateur. Le compilateur m’a fait la vie dur au début, pointeurs obliges (on prend tellement l’habitude d’écrire MonObjet objet = new MonObjet() ), mais je me suis vite remis les choses en tête et j’ai rapidement repris le coup de main (ou de clavier comme vous voulez).

Mon Feedback

Nous y sommes enfin ;) et je suis bien content car je commence de fatiguer, je suis levé depuis 5h45, je n’ai pas beaucoup dormis ces temps ci (comme beaucoup d’ailleurs) et depuis que je suis rentré je rédige ce billet pour n’avoir à dire qu’une fois comment les choses se sont passées (j’ai aussi fait deux trois interventions sur le forum du CNED pour calmer un “frustré” qui insulte mes “Friends of Misery”). J’étais donc convoqué pour 8h30 et je pensais passer le premier comme pour les autres oraux, cependant ça n’a pas été le cas cette fois ci et je me suis retrouvé à passer en dernier. Durant cette phase d’attente j’ai parlé avec les étudiants du lycée en BTS Informatique de Gestion (DA et ARLE) pour collecter quelques informations et là.. et bien c’est le drame madame ! Sur les plaquettes du BTS IG il est mentionné que l’épreuve PTI consiste à présenter une des cinq (ou plus) activités réalisées dans l’année pendant 45 minutes, 20 minutes à l’oral, puis le temps restant on se fait interroger par les deux profs d’informatique, cela peut aller de la question sur le fonctionnement du code à la modification de celui ci (c’est donc de la pratique, et c’est normal vue le nom de l’épreuve). Mais là, à l’académie de Dijon ce n’est pas comme ça que ça marche, enfin pas exactement. Les étudiants présentent toujours cinq activités mais ce sont des activités apparemment assez courtes. Ils les présentent pendant 5 minutes et le temps restant ils codent. Oui mais que codent-ils ? Les profs d’informatique leurs ont demandés d’effacer certaines parties de leurs codes car ils devraient réécrire ces parties lors de l’épreuve. En gros l’épreuve c’est : Je présente mon activité pendant 5 minutes puis je remplis le code que j’ai effacé (donc du code que beaucoup ont tentés d’apprendre par cœur) mais où est l’intérêt ? De mon côté mon cerveau s’enflamme, que faire ? bon et bien je n’ai rien entendu je verrais avec eux sur le tas ! Juste avant de passer j’ai parlé avec un étudiant en ARLE (Réseau), j’étais bien content car c’était ma première vrai discussion de la matinée avec quelqu’un (moi qui regorge de sociabilité en ce moment) ça m’a permis de me calmer un peu, puis est venu un prof d’informatique du lycée qui m’a posé quelques questions (je l’intriguais, mais c’est normal.. I’m the Stranger.. and no one know me…). Enfin est venu le moment, à 11h15 où je suis entré dans la salle. Les examinateurs (deux profs d’informatique je le rappel pour ceux qui se sont assoupis) avaient déjà sondés pour savoir si un étudiant en candidat libre était ou pas présent, donc ils savaient d’où je venais. Je leur ai expliqué le “malentendu” entre ce que j’avais lu sur la plaquette d’information du BTS IG et ce que j’avais entendu dans les couloirs… ils m’ont dit que c’était bon, on ferait avec et ils m’ont mis sur la route. Vue que j’étais le dernier j’ai eu le droit de choisir mon application et là… ma tête c’est arrêtée, que faire ? choisir mon casse brique refait et tout frais ? choisir une activité que je n’aime pas “trop” mais qui envoie un peu ? (je pense à Flash là tout de suite, les gens qui me connaissent rigolent surement très fort en se remémorant mes hurlements de douleur intellectuel quand j’ai bossé sur cette plateforme), j’ai choisis alors de présenter la crème des crème, mon deuxième “bébé” en quelque sorte : Personal Contacts Manager, une application de gestion de contact codée en C# et utilisant une base de données embarquée SQLite.
Personal Contacts Manager
Cette application reprend à elle seule 88,8% (8/9) des compétences à valider à l’examen, en fait il n’y a que la compétence client/serveur qui ne peux pas être validée, mais je peux arranger ça avec un gestionnaire de mise à jour... Elle est conçue en C# et repose sur le Framework .Net 3.5 ou le “petit” nouveau .Net 4 (en réalité sur le 4 mais je l’ai portée sur le 3.5 pour la présentation car mon modeste PC portable a du mal avec les interfaces en WPF et Visual Studio 2010, et bien c’est du full WPF baby) et utilise une base de données embarquée SQLite avec 3 triggers (oui c’est au programme et en plus, mais ne le dites à personne car c’est un secret : ils servent réellement à quelque chose. En fait ils servent à compenser les manques de SQLite en C# comme la gestion des clés étrangères avec contraintes ON DELETE CASCADE, etc…). Voilà pour la partie “technique” maintenant passons au captures d’écran puis enfin et oui j’y viens : au déroulement de mon épreuve de 30 minutes ! (j’ai pas trop spoilé là ? c’était plus fort que moi comme Sega)

pcm

La fenêtre d’invite, l’utilisateur doit se connecter. Si aucun utilisateur n’existe alors il faut en créer un à partir du menu utilisateur.





pcm-xml
Une fois connecté, l’utilisateur a sa liste de contact, il peut exporter celle ci en .txt ou en .xml, quand je suis arrivé à ce passage les deux profs d’informatique se sont approchés de mon écran (comme si Xml était un mot “magique”)

pcm-complet
Vue d’ensemble des contrôles utilisateur, avec les fenêtres d’ajout de contact, d’ajout d’utilisateur, de modification d’utilisateur, d’affichage des contact, d’aide…




pcmcode
Et voilà l’arbre du projet ainsi qu’une partie de code. Une classe abstraite sur le coup, des démonstrations d’héritage et de polymorphisme possibles…




Mais avant de pouvoir présenter l’application j’ai été victime d’un bug que j’ai malencontreusement ajouté hier soir ! Dans le week-end j’ai voulu tester la technologie de déploiement ClickOnce de Microsoft qui se rapproche beaucoup de JavaWebStart pour les connaisseurs (quoi tout le monde est partie ? vous n’êtes pas drôles). Bon un test en partie car pour tester cette technologie entièrement il m’aurait fallu un serveur sous IIS (je dérive…), mais en gros ça me génère un exécutable qui permet d’installer (déployer) mon application sur tous les postes d’un parc (sur votre poste par exemple) à la manière d’un fichier d’installation (application présente dans le menu démarrer, dans panneaux de configuration / suppression de programmes, etc..) et permet aussi de contrôler les mises à jour enfin, un super truc (je suis fan ! nan j’déconne). En plus de ça et c’est là le problème, j’ai voulu signer mon assembly (mon application si vous voulez) avec un certificat (donc protégé avec un mot de passe) et vous savez quoi ? et bien ça marche super bien :D seulement quand on change de PC et qu’on ouvre le projet sur Visual Studio, il faut entrer le mot de passe, et justement je me suis planté de mot de passe ce matin, donc impossible de faire une build de l’application ni de l’exécuter depuis Visual Studio. J’ai alors commencé mon explication au profs d’informatique sur ma découverte du week-end et comment la désactiver (chose que j’ai faite). La présentation c’est alors bien déroulée mais ça a été vite (5 minutes c’est plus que court, pas vrai les filles ?), les profs regardaient (je pense qu’ils ont aimés) et quand je suis arrivé au menu de génération du fichier Xml ils se sont approchés de l’écran (en fait en y réfléchissant bien, qu’est ce qu’une option “exporter vers Xml…” viendrait faire dans une application grand publique ? en fait je pensais ajouter une option “importer depuis Xml…” mais je n’ai pas eu le temps).
Je saute une ligne car ça commençait à me piquer les yeux (il est 19h11 et ça fait quand même 4 heures que je suis sur ce billet, heureusement j’utilise Live Writter, un soft proposé gratuitement par Microsoft qui permet d’écrire et gérer ses blogs depuis Windows et franchement j’adhère totalement !). Un prof m’a alors demandé de choisir une zone de code à effacer, puis de la réécrire. Je ne savais pas trop (le code est assez gros, alors je commençais de me faire des scénarios genre : “La connexion sur la base de données c’est assez cool ? Non dériver une classe abstraite et implémenter ses méthodes c’est mieux ? Wai, il y a de la POO et tout… en plus ça touche directement à la base de données :O). Finalement ce même prof m’a dit “pourquoi ne pas refaire la méthode d’export Xml ?”, chose que je me suis empressé de faire mais… c’est quand même trop simple, un fichier Xml… bon, je parcours mes namespaces à la recherche de Donnees.ContactsExporter.cs je surligne la méthode ExportToXml() et je vire le contenu (elle était toute nue :O). Avant de commencer à coder je leurs demandes si ils veulent que je commente, ils me répondent “oui nous voulons bien” (les autre étudiants m’ont affirmés qu’on était tranquille à coder “seul”, mais je préfère parler, ça fait passer le temps plus vite et puis je sais ce que je fait pas de soucis). Je commence mon explication et mon codage (un des prof codait surtout en VB6 et l’autre pas mal en Java), quand j’ai dit “Bon et bien maintenant je vais parcourir ma collection de Contact de mon objet ContactsManager avec une boucle foreach” ils se sont regardés et l’un a dit “ha foreach cette structure est bizarre”, l’autre continu “Oui il faudra que j’en parle l’année prochaine […] en Java je l’utilise aussi” et là je reprend “Oui par contre c’est un for avec deux point” pour faire l’analogie entre C# et Java. Une autre chose amusante est lorsque j’ai dit “J’utilise maintenant la surcharge de l’opérateur += pour…” l’un dit “ha c’est bien du C# ça, je me rappel en C ils disaient…”' et là une mini discussion démarre entre les deux profs O_o. Pendant que je codais les profs me posait des questions sur mon stage, mes PTIs (l’un me fait “Vous savez que vous n’êtes pas obligé de tout couvrir avec une application vous savez…”, “vous travaillez en dehors ?..”), bref l’ambiance était assez conviviale (c’était presque un apéro, et les deux compères parlaient ensembles). Arrivé à la fin de l’écriture de ma méthode (franchement j’aurais pu aller plus vite mais ils me parlaient, était ce un piège ?) je bloque sur un truc, mais bête : Je ne me rappel plus de la méthode qui permet de convertir une chaine de caractère (un type string) en Xml. j’avais un objet XmlDocument d’instancié, un objet string, il fallait faire xmlDoc.[la bonne méthode et pas la mauvaise] et c’était bon. Alors je leur dit que je ne me rappel plus de cette méthode (en même temps moi je n’avais pas préparé le bout de code que j’avais supprimé ; il me manquait UNE méthode), mais que je vais tenté de la trouver, alors je test celle qui me parait la plus cohérente et manque de chance, l’export ne fonctionne pas : Exception (maintenant que j’y pense j’aurais pu mettre un bloc try {} catch {} ça aurait fait cool et puis ça aurait surtout aidé pour le debug), je vais pour en tester une autre (la panique m’envahit vous pensez) et puis je dit au profs qu’il serait préférable de chercher dans la documentation MSDN car travailler comme ça c’est “sale” et ils m’ont dit que ce n’était pas possible car il n’y avait pas de connexion internet mais que c’était une très bonne remarque, l’un d’eux à même dit “c’est noté”… Bref à 11h45 (soit 30 minutes après mon entrée) l’un me dit : aller dernier essai (c’était le troisième, j’avais démontrer que la structure de mon fichier Xml était clean) et toujours pas la bonne méthode, ils n’avaient pas l’air trop déçus (mais moi je l’étais) et ils m’ont dit c’est bon vous pouvez y aller. Je partis en disant poliment (comme quand j’étais entré) au revoir et bonne journée (quand je suis rentré par contre j’ai dit bonjour mais je pense que vous aviez compris le principe pas vrai ?).
Ce que je ne comprend pas c’est pourquoi est ce que j’ai juste eu à faire une ré-implémentation de méthode ? C’est ultra basic comme truc.. Ca revient à créer une procédure (bon ok non car j’utilisais des objets privé de ma classe mais…). Et puis c’est cours comme code (mais ça utilise l’objet à fond), est ce que cela a suffit ? et bien je n’en sais rien, je suis … dans le doute, malgré tout ça je ne pense pas avoir fait mauvaise impression, j’ai bien parlé et expliqué. Nous verrons les résultats. Mais en gros voilà comment c’est passé mon oral des PTIs. A oui, pourquoi est ce que je n’ai pas choisi le jeu ? car il y avait à dire ! et bien parce que je suis en BTS Informatique de Gestion et dans cette dénomination il y a Gestion, donc un gestionnaire de contact comme le mien était je pense tout à fait adapté (en plus il fait pleins de truc :O). J’aurais été content qu’on me demande de présenter mon jeu, sur lequel j’ai passé tant de temps, mais présenter Pcm (c’est le diminutif de Personal Contacts Manager) été clairement plus stratégique. D’ailleurs ça à marché car quand ils ont regardés le dossier ils ont vue (Objet, Triggers, SQLite, …) et ils ont appréciés je pense puisqu’ils l’ont fait remarquer.

Conclusion et fin de ce billet

J’ai passé ces deux dernières années enfermé chez moi à étudier et à pratiquer ma passion : L’informatique et surtout la programmation. J’ai appris énormément de choses et maintenant je doit faire un break avec tout ça pour me vider un peux la tête. Cela vous est-il déjà arrivé de vous réveiller à 4h00 du matin (voir avant) en trouvant la solution à un problème algorithmique ? ou alors vous réveiller avec un bout de code dans la tête (qui marche en plus :O) ? Ce que je peux dire c’est que j’ai commencé quelque chose et que je l’ai terminé, j’ai travaillé dur et j’espère franchement que ça paiera. On m’a souvent dit quand j’étais plus jeune et que j’étais un cancre qu’il fallait sacrifier des années pour réussir, je ne sais pas si on peut dire “sacrifier” dans mon cas car je me suis quand même bien amusé, mais j’ai aussi passé de très mauvais moment de solitude. En 2004 j’étais dans une formation GRETA pour faire de la maçonnerie, entre temps j’ai passé un BEP électronique en candidat libre, j’ai réintégré à 20 ans une première STI et passé avec succès un Bac STI génie électronique, j’ai fait une année de DUT que j’ai dû stopper pour raisons financières et personnelles. J’ai ensuite fait une année de BTS IRIS par correspondance par le CNED puis une deuxième année (passage directe en deuxième année car j’avais un très bon dossier) en BTS Informatique de Gestion option Développeur d’applications et maintenant à 19h58, je conclus ce billet pour vous dire : J’ai fini et je vais me reposer pour renchainer après sur d’autres “aventures” plus folles les une que les autres.
Je suis accepté en Licence Pro Informatique Embarquée et Mobile, et en Licence Pro Développement Web METINET à Bourg en Bresse, en Alternance. Je doit maintenant trouver une entreprise pour réaliser mon alternance (j’aimerais vraiment trouver quelque chose en développement embarqué/mobile).
Merci à tous, et bonne nuit ;)

Contrat Creative Commons

lundi 8 mars 2010

Passer d'élève à prof

Aujourd'hui j'ai eu la chance de me glisser pendant 2 heures dans la peau d'un enseignant, très franchement je ne suis pas déçu mais je ne m'attendais pas à ça non plus.

Contexte de départ 

Le lycée Camille Claudel de Digoin (71) accueil plusieurs fois par semaine des élèves en difficultés en provenance de différents collèges. Le but est de leur montrer que l'école ne se limite pas aux mathématiques, français et anglais, mais qu'elle permet de voir d'autres choses. Le fait de monter d'autre choses à ces jeunes leur permets de comprendre que les matières que l'ont étudies à l'école sont importantes. Dans cette optique on m'a demandé si je serais d'accord pour avoir un petit groupe de collégiens pou leurs faire un cour dans ma spécialité, qui est, qui est ?? l'informatique, et plus particulièrement le développement logiciel. Ce ne fut pas simple car après examen on m'a dit qu'en fait ce ne serait pas possible car je n'étais pas licencié et donc qu'on ne pourrait pas me payer. Je me suis alors proposé pour le faire bénévolement car d'une part cela me permet de voir ce que c'est que de transmettre sa passion à des élèves et d'autres part, cela me permet de voir comment réagissent les élèves au cour que je suis susceptible de réaliser pour eux.

Le choix difficile du programme

Après accord et quelques recherches de salles d'informatique libres, je me suis mis en quête du programme parfait pour ces jeunes élèves. La première question que je me suis posée à été : Quoi ? et j'y est naturellement répondu par : Java. Je me suis ensuite demandé : Pourquoi ? et j'ai alors pensé que c'était bien d'utiliser Java car c'est une technologie relativement simple coté base. Mais quelque chose c'est imposée à mon raisonnement, quelque chose qu'il fallait respecter.. Si je veux faire passer ce que j'aime, je ne doit pas dégouter mon publique, or commencer avec un langage de programmation typé orienté objet n'est peut être pas la meilleur solution.. bien qu'en réalité j'imaginais déjà un petit RPG textuel dans une Applet (j'avais préparé le TP sur netbeans).. Je me suis alors tourné vers python car c'est un langage simple (type de variable dynamique, tableau très simples à utiliser, un module Tkinter pour faire des petites fenêtres..). Après un week end "déménagement" et quelques courbatures plus une bonne douche, je me suis dit qu'il serait préférable de commencer par quelque chose de concret rapidement, quelque chose de tellement simple que ça serait accessible à tout le monde.. J'ai alors choisie le HTML.

Déroulement de la séance

Nous avions une séance de 2 heures de 9h00 à 11h00 dans une grande salle pleine d'ordinateur avec un tableau, un rétro-projecteur (relier à un PC) et du chauffage (c'est un point essentiel croyez moi :-) ). Lorsque les 3 élèves sont arrivés (accompagnés d'un éducateur), nous avons commencés. Le début fut assez difficile car les pauvres ne savaient pas du tout ce qui les attendaient. Je leurs ai donc expliqués grossièrement le déroulement de la séance (qui c'est presque passée comme je le voulais). Une fois la glace brisée et les présentations faites, nous attaquâmes les bases du HTML avec un document vide sans balises avec un peu de texte.
Première chose que je note : Les jeunes (2 sur 3) avaient réellement du mal avec le clavier pour trouver certaines touches comme les crochets, la tabulation, le slash, les double quottes (que j'appelais guillemets).
Deuxième chose qui m'a marqué : Aucun ne savaient ce qu'était une extension de fichier ni même un dossier.
J'ai donc dans un premier temps affiché un clavier avec les touches stratégiques au tableau via le retro-projecteur, puis j'ai fait un petit résumer sur les formats de fichiers et pourquoi ils avaient une extension (dire que sous linux les fichiers n'ont généralement pas d'extensions.. mais passons).
J'ai adapté le cour à la vitesse des élèves car le but n'était pas de les brusquer, mais de leur montrer qu'on pouvait être maitre de l'ordinateur et plus un simple utilisateur (être un créateur, un artiste, n'est pas merveilleux ?). Coté HTML nous n'avons pas vue les balises <html>, <head>, <title>, <body> pour simplifier la chose, cependant nous avons largement abordés <#h[1-6]#> (désolé pour l'expression régulière, c'était plus fort que moi ^^'), <p>, <a>, <ul>, <li>, <ol>, <strong>, <ins> et <img>. Il s'est avéré que travailler avec des images les a éveillés d'un coup car c'est graphique, c'est concret et ce n'est pas du texte. Nous nous sommes amusés avec la vielle propriété align pour centrer nos images ou les déplacer sur le coté droit ou gauche (pas de css la première fois).
Les deux heures sont passée relativement vite et je n'ai pas eu le temps de m'ennuyer, car j'étais soit sollicité à droite à gauche pour expliquer qu'il fallait fermer ces balises ou alors j'étais au tableau à expliquer la logique de certaines choses.

Conclusion

Et bien si c'était à refaire je le referais ! on me l'a d'ailleurs proposé. J'ai été agréablement surpris par les élèves qui m'ont demandés à la fin du cour où récupérer notepad++ pour qu'ils puissent essayer de refaire ce qu'ils avaient fait dans la matinée chez eux. L'éducateur qui les accompagnait à beaucoup aimé ce cour lui aussi et attend le prochain. C'est donc un bilan très positif pour une première approche d'enseignement. Il y a une chose que je tiens tout de même à signaler : Les jeunes ne savent pas ce qu'est un fichier jpeg ou comment créer un dossier par contre.. ils savent poster des images sur facebook.. Sacré génération..

Contrat Creative Commons

mercredi 14 octobre 2009

Rentré et changement de filière

J'ai décidé durant mon stage en mai-juin de changer de filière de BTS car les cours de BTS IRIS ne me convenaient pas, en fait, c'est le programme entier que je trouvais "mal foutu", j'ai donc décidé de faire une demande de passage en deuxième année de BTS Informatique de Gestion avec l'option développeur d'application.

Comme l'année dernière, je suis des cours via le CNED (études par correspondance) et je doit bien avouer que ce n'est pas du tout ce que je m'imaginais. J'ai changé de centre et je suis passé de Grenoble à Poitiers, et bien ce n'est pas du tout la même chose. Il y a un tuteur pour les étudiants et on doit prendre contacte avec lui pour fixer les stages, les PTI, et d'autres choses.. c'est très très suivie, alors que l'année dernière j'étais "seul". Le site BTS IG du CNED (partie membres) est riche d'informations et on peut y télécharger tout les cours en pdf (chose qu'il n'était pas possible avec le CNED de Grenoble). Petit budget ? Formation mise à l'écart ? je ne sais pas, en tout cas le CNED de Poitiers à l'air plus performant, mais nous sommes en début d'année ne nous affolons pas :-)

Qu'est ce qui n'allait pas dans le BTS IRIS ?

Principalement les maths et la physique, et après, le manque de théorie en informatique. Franchement c'est dingue on vous donnes des cours rapides sur les langages de programmation et on vous demandes de faire des programmes, ok ! c'est cool ! mais pourquoi ça, ça marche comme ça ? et ça comment ? et bien on s'en fou ! programme (comme un porc si tu veux), l'essentiel est que le résultat final soit bon (il faut relativiser ce propos, car en programmant comme un porc le résultat n'est pas bon...). Je tiens aussi à signaler que dans les cours de physique il est noté que cette matière n'est pas réellement utile, mais qu'elle est présente pour la "culture générale de l'étudiant et pour qu'il puisse communiquer plus facilement avec des techniciens qui utilisent la physique comme outils...) ; ok ! mais alors pourquoi ne pas apprendre à passer le ballet ? pour pouvoir discuter avec le personnel d'entretien ?! Pourquoi apprendre des choses en math qui servent partiellement ? et pourquoi ne pas apprendre des maths en rapport directe avec l'informatique ? Concernant l'analyse, nous en avons fait en IRIS, avec UML, mais c'était vraiment très peu poussé, on n'a jamais parlé de base de données, alors que la majore partie des stages demandent l'utilisation d'une BDD... (heureusement que je pratique à coté, mais je n'étais pas le seul, certains de mes ex-"Friends Of Misery" pratiquaient aussi)

Qu'est ce qui me fait dire ça ?

Mon stage ! C'est simple on m'a confié des tâches, beaucoup de tâches et j'ai du faire des choix stratégiques pour finir dans les temps, pour répondre correctement au cahier des charges (qui se modifiait souvent !). Ce qu'il me manquais, c'était une méthode d'analyse claire, pour pouvoir construire des fondations solide et faire mon travail, or, je n'avais rien de tout ça.. j'ai donc du réinventer la roue !

Et le BTS IG change quelque chose ?

A fond.. En fait ça n'a rien à voir mais j'y reviendrais plus tard en profondeur, sans doutes quand tout sera fini. Mais sachez une chose, l'informatique a été créer pour informatiser des données issues principalement de gestion/finance, mais aussi pour la recherche scientifique, bref, comme le disait quelqu'un qui, si il lit ce billet, se reconnaitra "Il faut apprendre l'alphabet avant d'apprendre à lire !" et c'est ce que je fait (enfin j'y travail au moins).

Le truc, c'est que maintenant je me rend compte que j'ai perdu beaucoup de temps à apprendre de "trucs" bancales et je doit réapprendre pleins de choses maintenant. Et l'analyse (nan sans déconner) c'est vraiment le gros point sur lequel je suis heureux de travailler (même si c'est chiant par moment Merise), car je serais apte dans un futur proche à penser de manière plus structuré et que ce soit sur tous les points, pas qu'en programmation.

Et puis il y a toute la partie Économie/Droit/Gestion, qui est hyper lourde, mais au final très utile en informatique de gestion (en même temps vue le nom).


Le BTS Informatique de Gestion

Il y a deux options en deuxième année : Développeur d'application et Administration Réseaux.

Le programme est composé de 3 groupes de matières :

Les matières des base :
  • Culture générale et Expression (Français)
  • Anglais technique (lié à l'informatique et à la téchnologie)
  • Mathèmatique (lié à l'informatique et la gestion pas de "superflu")
Les matière d'entreprise :
  • Economie générale
  • Economie d'entreprise
  • Droit
  • Gestion des Entreprise et Organisation des Systèmes d'Information (GEOSI)
Les matières informatiques :
  • Analyse (*DAIGL)
  • Algorithmique et langages de programmation (*DAIGL)
  • Architecture Materielle des Systèmes Informatique (AMSI)
  • Architecture Logicielle des Systèmes Informatiques (ALSI)
DAIGL : Développement d'Application Informatique & Génie Logiciel
Ce cours comprend :
  • Algorithmique (rien à voir avec IRIS)
  • Langage Delphi (pour bosser sur l'allocation dynamique)
  • Langage Java (développement réseau en J2SE, et oui il n'y a pas que J2EE dans la vie)
  • Base de donnée Access (on se rattrape avec MySQL et MS-SQL)
  • Merise (Général, Extensions, etc..)
  • HTML/CSS/JavaScript/PHP/MySQL/XML (le minimum vital quoi)
  • Visual Basic 6 (on l'utilise dans access mais le cour est général, il traite de l'EDI VB6 et pas de VBA en particulier, donc c'est bien sympa aussi)

En plus de tout ça, je doit faire un deuxième stage (devinez où ?) et je doit aussi faire des PTI (mais j'en reparlerais dans un futur post). En gros les PTI (Pratique des Techniques Informatiques) sont des petits projets à présenter durant un oral à l'examen, on doit en préparer 5 et un sera tiré au sort par le jury et je devrais le présenter, la régle c'est que mes PTI doivent couvrirent des domaines de connaissances spécifique à mon option (DA) comme le développement client-serveur, le développement objet, etc.. durant ces PTI je devrais être hyper technique (cool non ?)


Difficultés du BTS IG ?

Les matières d'entreprises sont difficiles à abordés surtout le GEOSI (gestion), car je n'en ai pas fait l'année dernière, mais je rattrape. Le raisonnement en droit aussi, par exemple comprendre correctement le vocabulaire donné dans les exercice n'est pas évident tout le temps, mais j'y travail encore. Merise aussi n'est pas simple à aborder quand en 2ème année vous commencez avec les extensions merise et que vous n'avez jamais ou presque fait de merise tout court ! (j'y travail !).

Que dire de tout ça ?

J'aurais du prendre le temps d'écouter mes proches (je pense à Micks) et de faire des recherches après ma terminal STI et ma 1er année en DUT informatique avant de faire IRIS. Si j'avais commencé par IG j'aurais de meilleurs bases, bien meilleurs.
Mais ce n'est pas grave ! loin de là ! Je suis un battant et j'y arriverais, n'oubliez jamais d'où je viens ! et regardez où je suis maintenant. Je vais donc continuer de travailler dur et obtenir mon BTS IG DA ! Ça ce n'est pas une option mais un objectif primaire obligatoire :-D

Contrat Creative Commons

mardi 11 août 2009

Rapport sur mon stage

Il est temps ! Le mois d'août est bien entamé et j'en profite pour écrire un petit billet sur mon stage qui s'est déroulé au mois de mai jusqu'à mi juin. Je ne ferais pas un long discours comme les autres fois, car je n'en ai pas envie ;) Je ne vous parlerais que du coté hardware aujourd'hui, la partie développement à été très longue avec des passages super cool (hard-coding) et d'autres moins bonnes (contraintes de temps, contraintes imposées, etc...).

Situation de départ

Le lycée disposais d'un système d'information pour lycéens à coté du bvs, voila comment tout cela fonctionnait :

Une partie client composée de :
  1. Un ordinateur relié à une télévision
  2. Un programme flash / AS2 diffusé sur la télévision par le PC
  3. Une interface d'administration intranet en HTML sans aucune norme, à base de frames, et bourrée de javascript :o avec une touche de PHP pour communiquer avec le serveur.
Une partie serveur composée de :
  1. Un serveur sous Windows 2000 avec XAMPP
  2. Une base de donnée MySQL

Mon travail

Modifier le système pour le rendre plus "sexy" et surtout trouver une autre solution que cette vielle télévision qui commence de lâcher... Mon tuteur de stage (et chef de projet), m'a conseillé deux solutions :
  1. Utiliser une télévision LCD
  2. Utiliser un vidéo-projecteur
J'ai proposé en plus d'utiliser une écran de PC grand format (30 pouces par exemple).

Nous avons donc essayer toutes les solutions (ou du moins, simuler) et nous en sommes venus aux résultats suivant :
  • Un vidéo-projecteur chauffe beaucoup, et le fait de l'utiliser tout le temps va poser des problèmes d'ampoules (il faudra les changer souvent, cela correspond donc à un certain budget). De plus il faudrait que le système soit bien ventilé et bien protégé, ce qui est incompatible avec la pièce (un couloir où il y a beaucoup de passage...).
  • Un écran de PC grand format a de bon avantages, mais sa taille reste trop petite, et les prix sont élevés
  • Une télévision LCD 108 cm propose une surface d'affichage excellente, par contre, il faut la protéger pour que d'une part, personne ne la vol, et d'autre part, que personne ne la dégrade en lançant des choses dessus.
Le choix a été d'utiliser un écran LCD 108 cm avec connexion HDMI. Après plusieurs recherches sur le net, nous avons fait une réunion où j'ai pu exposer des prix (des devis) et d'autres choses plus techniques comme les évolutions du système. Ce qui est amusant, c'est que quand j'ai commencer mon stage, il y avait un gros doutes quant à l'achat d'une télévision (ou d'un autre système) par le lycée, et bien figurez vous que le proviseur à proposé d'acheter deux TV 108 cm ! Une pour les lycéens (à coté du bvs) et une autre dans la salle des profs ! (qui afficherais en plus des informations administratives). Tout cela devenais fou pour nous, et j'ai du revoir beaucoup de choses sur le cahier des charges.

Niveau hardware le future système serait composé (en double donc) :
  • Un PC récent avec une carte graphique GeForce 9500 GT avec sortie HDMI
  • Une télévision LCD 108 cm Large 1080p avec une résolution de 1920x1080 (pour jouer à des jeux en fullHD)
  • Un câble HDMI de 10 m plaqué or (c'est vendu comme ça, je n'ai pas cherché à faire de chichis)
  • Un kit de fixation murale vissé et enchainé (peut être)
Comme vous le voyez, ça ne rigole pas ! Actuellement ce matériel est en place :)

Je vous dit à bientôt (ou pas) pour un autre billet sur la partie développement du système avec au programme :
  • Analyse des besoins (oui c'est vraiment hyper important !)
  • Développement xHTML/CSS/JavaScript
  • Développement PHP/MySQL/XML
  • Développement Flash ActionScript 3
  • Le point sur les logiciels que j'ai pu utiliser en production
  • Et encore bien d'autres choses !
Contrat Creative Commons

dimanche 26 avril 2009

Stage au lycée Camille Claudel

Je profite d'un moment de temps libre pour vous parler de mon stage qui commence lundi 4 mai. Je le fait au lycée Camille Claudel de Digoin (71) qui est mon ancien Lycée, où, j'y est passé de super moment avec de super personnes :-) (souvenez vous des répétitions, on pouvait nous entendre jouer jusqu'à l'entrée !). Je reviens à la charge mais cette fois ci en qualité de stagiaire, et pour y travailler (mais si j'y travaillais aussi avant, mais pas de la même manière :-D ).

De quoi suis-je chargé ? et bien laissons donc parler quelques photos :



Elle n'est pas très net (je ferais des photo quand je serais sur place), mais c'est la télévision qui affiche les informations relatives à la vie du lycée, comme par exemple, les manifestations sportives, les absences des professeurs et j'en passe. Cette télévision est relier à un ordinateur dans le bureau de la vie scolaire qui lui même communique via l'intranet du lycée à une base de donnée MySQL.





Sur cette photo (toujours aussi net), vous pouvez voir le PC qui contrôle l'affichage de la télévision. Vous pourrez notez que le PC et la télévision affichent en même temps les informations. En fait la télévision est branchée sur la sortie vidéo du PC.




Sur cette capture d'écran vous pouvez voir la partie logiciel, qui est réalisée avec Flash/ActionScript 2.0 . Bien sur elle n'affiche pas grand chose depuis mon PC et c'est normal je ne suis pas connecté aux serveurs du lycée. Cette application est lancée dans un navigateur internet (Internet Explorer) et communique avec la base de donnée via une page PHP.



De nouveaux besoins, de nouvelles technologies et... un stagiaire en informatique...

Les télévision à tube cathodique commencent de se faire rare (en neuf je parle hein ^^'), et de plus elles n'offrent pas une super résolution d'image, plus vous augmentez la résolution, plus l'image est moche.


C'est ici que j'interviens !

On me demande dans un premier temps de chercher une solution de remplacement pour la télévision. Soit une télévision LCD (elles permettent d'obtenir des résolutions plus grande), soit un vidéo projecteur. J'aurais donc dans un premier temps des tests à faire avec des vidéos projecteurs pour voir si cette solution est valable ou pas (rapport lumière/taille de l'image, etc...). Une fois que j'aurais fait ces choix je devrais faire des devis dans divers entreprises de vente, et pour finir proposer ces devis à la direction.
Je devrais aussi changer le PC, pour une version à jours, et qui permettra d'obtenir un affichage optimal avec la nouvelle solution.

Vous l'aurez compris, l'objectif est donc d'avoir un programme qui prend toute la surface de l'écran (voila pourquoi nous voulons une résolution plus grande), qui soit lisible (en effet le changement de résolution ne doit pas impacter la visibilité) et qui permette d'avoir un maximum d'informations.

Une fois la solution choisie, je devrais m'occuper de la partie logicielle, c'est à dire, modifier l'application pour que celle ci soit plus esthétique, mais surtout plus facile à utiliser pour les divers intervenants qui l'utilisent. J'aurais à ma disposition divers outils dont Flash MX 2004 et peut être Flash CS4 ainsi que Dreamweaver.

Le lycée est présent sur internet à cette adresse, le site repose sur le Système de Gestion de Contenu (CMS) Joomla! 1.0, on me demande aussi de mettre les informations de la télévision en direct sur le site. Il est aussi possible que si la version 1.6 de Joomla! sorte durant ma période de stage, qu'on me demande de faire la migration de la version 1.0 à 1.6 (attention à la casse ;-) ).

Voila les bases de mon stage sont posées, les compétences requises pour mener à bien ce projet sont :
  • Connaissance de Flash/AS 2.0
  • Connaissance xHTML(css/js)/PHP/MySQL/Apache
Comme vous le constatez, je ne risque pas de m'ennuyer ! De plus, on pourra me demander de faire des interventions ponctuelles dans des salles de classes ou au CDI pour dépanner les ordinateurs (que ces vilains élèves auront plantés en allant sur facebook). Je devrais aussi m'occuper de sécuriser la/les ? connexion wifi du lycée, car certains élèves se connectent dessus et leurs trafic n'est pas contrôlé (cela pose problème dans un lycée, vous comprenez pourquoi non ?).



Et la bas ce se passe comment ?

Mon tuteur de stage est Mr Eric Matras, professeur d'électronique et administrateur du réseau informatique. Il a été mon prof. en 1er STI et Terminal STI génie électronique, je le connais donc bien et il me connais bien aussi, c'est déjà un bon point (ça serais con autrement).

Je me rendrais au lycée en voiture (cette bonne vielle polo va faire un peut de bornes finalement, vive le gasoil !). Concernant mes horaires, j'ai de la chance, je fait les même que mon frère, qui lui est en seconde dans le lycée (deux fils Comte dans le lycée Camille Claudel Muhahaha.... è_é ), ça me fait des horaire assez bancale en fait, mais ce n'est pas si mal finalement car je pourrais emmener mon frère le matin et le soir (plus de car pour lui, la chance :-D ). Concernant les repas de midi, le chef de travaux m'a dit qu'il prenait en charge la restauration, donc je mangerais au self comme tout le monde ;-) (mon frère trouve que la nourriture y est trop bonne, car ils ont changés de cuisinier depuis que je suis parti ; Nous verrons bien ^_^' ).

Voila qui clôture ma présentation "pré" stage, je vous laisse imaginer qu'au bout d'une semaine de stage j'aurais surement plus de choses à dire (quoi que je n'en ai pas écrit assez vous trouvez ?).

Contrat Creative Commons

lundi 20 avril 2009

No time no see

Ça fait un moment que je n'est rien poster sur mon blog. En effet mes études m'ont pries beaucoup de temps, et la motivation pour écrire n'était pas au rendez vous. Alors si j'écris la motivation est-elle revenue ? et bien disons que j'ai plus de temps donc oui et je ne voulais pas me lancer dans la rédaction d'un billet avant d'avoir achever certaines "phases".


Au niveau des études

Comme je l'ai précisé dans un billet plus vieux, je suis inscrit en BTS IRIS via le CNED. J'ai 28 devoirs à rendre, et au moins 75% de ces 28 devoirs à rendre obligatoirement ! (bien que rendre les 28 soit conseillé) pour être déclaré assidu. Au jours d'aujourd'hui (le 20 avril 2009), j'en ai rendu 20, soit à peut prêt 71.43 % des devoirs, il m'en reste donc un à envoyer pour être déclaré assidu :-) . Mon objectif n'est pas d'en envoyer 21 mais un maximum (bien qu'en envoyer 28 soit impossible pour des raisons que j'évoquerais plus bas).


Alors comment ça ce passe ? tu en ai où ?

Et bien, j'ai fini le programme dans toutes les matières sauf (oui vous le savez) les math et la physique. Parlons donc de ces deux matières... Au sujet des maths, je me suis amélioré, au niveau de la physique c'est la catastrophe... faire la parallèle entre le cours et le devoir relève de l'exploit (et je ne suis pas le seul à le dire...). J'ai pour le moment envoyé deux devoirs de math et deux devoirs de physique et j'ai eu deux résultats : 16/20 en math et 12/20 en physique. Je remercie d'ailleurs William, un "friends of misery" (c'est comme ça que j'appelle les inscrits au CNED avec qui je parle), qui m'a fait comprendre beaucoup de choses en math. Concernant la physique je remercie Raph (un autre friends of misery) qui m'a beaucoup aider sur le deuxième devoir. Bien sur le sujet n'est pas encore aux remerciements mais je tenais à remercier ces deux "Friends of misery" tout de suite.


Voici un récapitulatif de mes notes actuelles :
  • Anglais : 16, 15, 15, 16
  • Expression et Culture Générale : 14, 10, 12, en attente (*13)
  • Économie et Gestion des entreprises : 16, 16
  • Mathématiques : 16, en attente (*12, 10)
  • Physique : 12, en attente (*10)
  • Informatique : 17, 18, 20, 20, 20, 20
* Mise à jour (et oui je n'aurais envoyé que 21 devoirs haha)
    Comme vous pouvez le constater les résultats ne sont pas mauvais, mais il ne faut pas se reposer sur ses lauriers ! Il reste des devoirs en math et en physique. De plus le stage arrive dans deux semaines (du Lundi 4 mai 2009 au 12 juin 2009 soit 6 semaines !).


    Le stage parlons en

    Je fait ma période obligatoire de stage en entreprise au Lycée Camille Claudel de Digoin (71160). Je parlerais du stage dans un autre billet, car il y a beaucoup de choses à dire. Pour l'instant j'abrègerais en disant que je vais travailler sur le système d'affichage d'informations à coté du Bureau de la vie scolaire (c'est un système qui affiche sur une télévision via un PC des informations sur la vie du lycée comme les manifestations sportives, les absences de professeurs, etc...). Les compétences requises pour effectuer cette tâche sont :
    • Connaissance de la technologie Flash (AS 2.0)
    • Connaissance HTML/CSS/PHP/MySQL/Apache
    Je suis en train d'apprendre Flash et Action Script 2, car je ne connais pas cette technologie, pour le reste je suis OK :-)

    Contrat Creative Commons

    vendredi 10 octobre 2008

    Mes études par correspondance

    Suite à quelques soucis l'année dernière j'entame cette année des études par correspondance. Pour rappel l'année dernière j'étais en 1ère année à l'IUT de Dijon au département informatique (que ça fait sérieux quand même...), et cette année je "suis" en BTS Iris (Informatique et Réseaux pour l'industrie et les Services) par correspondance via le CNED (un organisme de formation à distance reconnu par le ministère de l'éducation national français).

    L'inscription, les frais...

    C'est simple, une année en BTS Iris coûte 421 € (pour une personne qui ne travail pas et qui autofinance sa formation) où tout est compris (tarif de base) ; Avec ce tarif vous recevez en plusieurs envois vos cours et devoirs à renvoyer. Il est à noter qu'il faut payer la sécurité social étudiante (sauf si on a notre propre sécu, cf. les gens qui travaillent en même temps), le montant de cette dernière s'élève à 195 €. A partir d'ici deux solutions : payer les 195 € en plus des 421 € ou demander à notre "ami ?" le Crous de la payer pour nous ! Et bien c'est ce que j'ai fait, mon dossier social étudiant envoyé (avec du retard... au mois de juillet...), j'ai reçu ma réponse en septembre (oui ils mettent longtemps quand on est hors date), j'étais donc considéré comme boursier à l'échelon 0, ce qui veut dire que je ne touche pas de bourse, mais que dans tout les cas je suis exonéré des frais d'inscription à la sécurité social étudiante ! et bien temps mieux c'est ce que je voulais. Le CNED propose aussi des rencontres avec des prof en payant un peu plus, ainsi que des "extras" comme un CD de simulation physique et un CD d'anglais technique à 30 € pièce, ce qui fait quand même chère pour la qualité des logiciels, ils ne fonctionnent que sur windows 95 à XP (en 640x480 la honte) et uniquement en 32 bits... Un essai avec wine n'a rien de donné de concluant mais je ne lâche pas espoir de les faire fonctionner sous Linux.

    Que dire après une semaine de "cours" ?

    C'est un sacré changement par rapport aux cours dit "en école", car si vous voulez vous ne faites rien (les cours dit "en écoles" n'empêche pas certains de ne rien faire, mais c'est autre chose ;-) ). Le point essentiel est comme vous l'aurez deviné : la concentration ! En effet, il faut apprendre à s'isoler dans un coin (espacé de préférence) et à travailler tout seul. Je vous vois venir, que faire en cas de non compréhension d'un sujet ? Le CNED propose quatre solutions :
    • Les rencontres (payantes : comptez environ 100 € la journée je crois O_o)
    • Le tutorat téléphonique (non surtaxé)
    • Le tutorat en ligne (un email très structuré au tuteur de la matière concernée)
    • Le forum ou tout les inscrits peuvent échanger leurs problèmes, leurs solutions (en ce moment il est un peu mort, car les gens cherchent leurs rythme de travail)
    Maintenant je vais vous dire franchement, après une semaine, je m'aperçois que c'est vraiment très dur, mais pas impossible et loin de la :-) bien sur le 1er jour vous êtes trop motivés car vous avez reçu un carton de cours et de devoir à renvoyer et vous avez hâte de commencer, mais après quelques jours, vous comprenez ce que vous avez vraiment à faire : travailler, et travailler dur !
    Je n'ai pour l'instant pas rencontré de problèmes de dissipation, car les cours m'intéressent beaucoup et de plus je n'ai pas trop de matières (6 pour être précis, que je détaillerais plus bas).


    Quelques difficultés ?

    En effet, je doit l'avouer, les math et la physique sont dur ! Mais c'est quand même fou tout ça. En terminal STI j'avais une moyenne de 11 en physique et 9 en mathématique, certes ce n'est pas énorme, c'est moyen (vu mon parcours ne me jetez pas la pierre hein ^_^), au Bac j'ai réussi à avoir 10/20 en math et 12/20 en physique, preuve que je connaissais et savais appliquer un minimum mes cours dans des cas concrets. Cette année la physique que l'on fait est comme celle que l'on faisais en terminal STI avec Mr Hillal (le meilleur prof. que j'ai pu avoir), sauf qu'on y ajoute des démonstrations mathématique, en fait, on ne fait plus de physique appliquée, mais de la physique tout cours ! Un exemple : vous vous souvenez surement (ou alors vous l'apprendrez) que pour calculer la valeur moyenne d'un signal périodique (disons un signal rectangulaire), il faut utiliser l'aire de ce dernier divisé par la période T (en ms), ce qui nous donne au final Umoy = Aire / T et bien figurez vous que là on utilise des intégrales pour faire la même chose ! alors au début sa fait peur, mais quand on y réfléchie, une intégration permet le calcul d'une aire et, en utilisant les deux bornes de l'intégrale on obtiens en réalité la bonne vielle formule de Mr Hillal qui est Umoy = Aire / T. En gros 1/3 du programme de terminal est revue en 1 chapitre (lois fondamental, théorèmes de norton, thevenin, diviseur de tension, etc...).

    Pour les math, c'est autre chose, car je doit bien avouer que je m'étais laisser vivre l'année dernière à l'IUT sur le sujet, car mise à par le chapitre sur la logique le reste m'était passé au dessus de la tête. C'est bien dommage que je n'ai pas ré-ouvert mon cahier de math de terminal STI, car au programme ... (des intégrales ?) calcul vectoriels (d'ailleurs à l'IUT on a appris à faire des résolution avec les tableau de Gauss, ça va bien mieux que leur technique de merde...), dérivées, primitives, limites, équations différentiels, oufff, en gros c'est la suite du Bac en plus compliqué, ce que ne m'arrange pas étant à l'époque un peu largué en math (je dit un peu car j'avais quand même fait de gros efforts pour rattraper mon faible niveau). Donc me voila en pleine révision de choses que je ne maitrises plus (les ai-je vraiment maitrisées un jour ?).

    C'est assez démoralisant je doit l'avouer, mais il n'y a pas que les maths et la physique (quoi qu'il faut quand même voir que j'ai 6 devoirs de math et 6 de physiques sur un total de 28 ! ça fait presque la moitié des devoirs O_o ). Je travail actuellement sur des révisions qui me permettrons de ré-attaquer ces deux nouvelles matière dans de meilleurs conditions.


    Le programme parlons en !

    J'ai 6 matières à étudier cette année :
    • Économie et gestion des entreprises
    • Culture général et Expression
    • Anglais
    Ces matières ne m'ont posées aucun soucis et je doit bien avouer que je prend du plaisir à faire de l'anglais ou de l'expression. Je me suis aussi réconcilié avec l'économie, matière que je trouve vraiment sympa maintenant, c'est surement la manière dont est présenté le cours qui est bien, tout est découpé en modules puis en chapitres, on s'y retrouve assez bien. On passe à la suite avec :
    • Les mathématiques
    • La physique
    J'ai fait un commentaire sur ses deux matières plus haut donc je n'y reviens pas. Je fini donc pas le meilleur ? l'informatique : découpé en 4 modules (eux même découpés en séquences...)
    • Analyse UML appliqué à C++
    • Technologies internet
    • Programmation en C et Orienté Objet en C++
    • Système d'exploitation et réseau : Linux, Windows
    Première surprise, l'apprentissage d'UML avec C++. Je pense que l'apprentissage d'UML aurais été plus simple avec Java, mais bon, ce n'est pas moi qui choisi ! Ce module me permet de découvrir cette méthode d'analyse que je connaissais peut. En réalité à l'IUT on utilisait UML pour représenter les objets mais c'est tout, nous n'allions pas plus loin, et c'est ce que me propose ce module : apprendre UML pour faire de l'analyse (à l'IUT ont utilisaient la méthode Mérise pour l'analyse).

    Au niveau des technologies internet c'est assez basic, on étudie le HTML et son histoire (je ne comprend pas pourquoi on ne vois pas le xHTML par contre) ainsi que PHP, les CGI, Apache et XML, mais je n'est pas entamé ce module donc je ne peux pas vous en dire plus pour l'instant (j'en oublie peut être).

    Pour ce qui est du C/C++ le livre est assez mal fait, les personnes n'ayant jamais programmés, prendrons peut être peur sur certaines pages... le programme est lui aussi basic : les bases, l'algorithmique (avec les algorithmes de tris et tout ce qui va avec), puis utilisation de la STL, je regrette simplement qu'ils nous demandent d'utiliser DevC++ pour programmer en C++ (bien sur c'est facultatif, mais conseillé), en effet un outils multiplatforme tel que code::blocks aurais été plus adapté et surtout : plus à jours !

    Le module de système d'exploitation est complet, c'est un mix entre l'architecture système et le système que l'on faisais à l'IUT. Il est basé sur Linux principalement et un dernier chapitre sur les réseaux Microsoft (il me faudra une machine virtuelle avec windows 2000 xD), sinon en 1er chapitre c'est de l'architecture système plus poussé qu'en DUT (ce que j'apprécie grandement).


    Voila qui clôture mon "feedback" après une semaine d'étude par correspondance. J'en laisserais d'autres dans quelques temps, histoire de voir mes évolutions. Vous aurez sans doutes remarqué toutes les comparaisons que j'ai pu faire entre le DUT informatique et le BTS Iris, elles sont là pour montrer que le BTS Iris n'est pas un BTS poubelle en informatique (cela doit dépendre des écoles aussi), car on y apprend tout autant de choses qu'a l'IUT (enfin celui de Dijon en tout cas).

    Et pour finir quelques photos :

    Voila mon espace de travail...


    quelques fascicules avec les CD

    Contrat Creative Commons