Commandité par des laboratoires d`analyses médicales désireux de
Transcription
Commandité par des laboratoires d`analyses médicales désireux de
Présentation générale __________________________________________ - 4 Objectifs et contraintes _________________________________________ - 5 I - Objectif : _______________________________________________________ - 5 II - Contraintes :____________________________________________________ - 5 III - Méthodes ______________________________________________________ - 6 a) b) Au niveau logiciel : ________________________________________________________ - 6 Au niveau matériel :_______________________________________________________ - 6 - Choix matériels________________________________________________ - 7 I - Téléviseurs _____________________________________________________ - 7 II - Les ordinateurs__________________________________________________ - 7 II - Les ordinateurs__________________________________________________ - 8 a) Configuration PCHC__________________________________________________________ - 8 b) Configuration informatique proposée ___________________________________________ - 8 c) A titre d’exemple : Configuration « classique » (boîtier standard) ___________________ - 9 - Choix logiciels ________________________________________________ - 10 I - Le système d’exploitation_________________________________________ - 10 a) Choix de Linux _____________________________________________________________ - 10 b) Choix d’Ubuntu ____________________________________________________________ - 10 c) Installation du système ______________________________________________________ - 11 - II - Vidéo et Diaporama _____________________________________________ - 12 a) Solution Media Center_______________________________________________________ - 12 b) Solution Impress ___________________________________________________________ - 12 c) Solution Firefox & VLC ______________________________________________________ - 16 - II - Création des fichiers ____________________________________________ - 18 a) La solution FCKEditor _______________________________________________________ - 18 b) La solution Impress _________________________________________________________ - 20 - III Transfert de fichiers _____________________________________________ - 21 a) Serveur FTP _______________________________________________________________ - 21 b) Clé USB ___________________________________________________________________ - 22 - A Faire______________________________________________________ - 23 I - Mise en réseau__________________________________________________ - 23 II - Dévelopement d'une application dédié ______________________________ - 24 - Regard Critique_______________________________________________ - 25 I - Un projet orienté informatique ____________________________________ - 25 II - Un suivi chaotique ______________________________________________ - 25 III - Le résultat ____________________________________________________ - 25 - Conclusion ___________________________________________________ - 26 Annexes _____________________________________________________ - 27 - -2- Remerciements : Nous tenons à remercier tout particulièrement Mr. Nicolas Vieville qui s’est toujours tenu disponible pour répondre à nos questions. Nous souhaitons également adresser nos remerciements au personnel du département d’Informatique pour le prêt du matériel ainsi qu’au technicien de Biopaj, Michel, pour son appréciée coopération. -3- Présentation générale Les laboratoires BIOPAJ sont implantés dans cinq sites du département du Nord : Bavay, Le Cateau, Anzin, et Valenciennes par deux fois. Spécialisés dans les analyses médicales, cette société a décidé de commander un film de présentation de ses activités à l’université du Mont Houy, et de doter ses salles d’attente d’écrans permettant la diffusion du produit fini. Le projet BIOPAJ a débuté en Septembre 2004. C’est en début 2005 que nous nous vîmes attribué la mise en place du matériel de diffusion, avec 5 autres de nos camarades de MCAV pour la partie Production. Notre tâche était de concevoir un système de diffusion simple d’utilisation permettant le visionnage d’une vidéo et d’un diaporama personnalisable. Ce dispositif sera installé dans les salles d’attente des laboratoires. La perspective de travailler sous la pression d’un commanditaire, et donc de se projeter dans une situation professionnelle, a fortement motivé notre choix pour ce projet. Dans un premier temps, nous avons rédigé un cahier des charges, disponible ci-après, pour prendre conscience des contraintes et cadrer l’évolution du projet. Très vite la solution du logiciel libre s’est imposée d’elle-même, laissant présager de la part prépondérante qu’allait occuper l’informatique au sein de notre projet. Ce fut ainsi une très bonne occasion pour nous de découvrir un nouvel outil informatique : Linux. Même si les conditions n’ont pas toujours été des plus commodes nous sommes aujourd’hui capables de vous présenter un produit opérationnel qui répond au cahier des charges. -4- Objectifs et contraintes I - Objectif : Installation d’un système de diffusion vidéo multi-site et paramétrable. II - Contraintes : • Niveau utilisateur : • Niveau réseau : • Un seul poste connecté à Internet par site. Les autres postes sont connectés à un VPN (dont le poste de Mise à Jour du système de diffusion). Niveau environnement : • Mise en marche et interruption du système simplifiée. Mise à jour simplifiée (Formation express ; Rapidité de Mise à jour). Esthétisme, discrétion, sobriété. Configuration spatiale différente selon site. Visibilité (Gestion de l’espace et des lumières). Niveau informatique : Hardware : Système capable de lire une vidéo fluide. Software : Solutions libres et évolutives. Coûts (Ecrans + Stations + Logiciels). -5- III - Méthodes a) Au niveau logiciel : Les logiciels sont libres (OS, système de diffusion et de mise à jour). On opte pour un système Linux. Pour l’immunité du système aux coupures de courant et la sécurisation des données, il faut prévoir une installation spéciale ainsi que quelques modifications du système d’exploitation. On prévoira également le démarrage automatique de l’application qui lance la vidéo et enchaîne sur le diaporama. b) Au niveau matériel : Concernant la norme d’affichage de la vidéo, de nombreuses solutions existent. Les deux principales sont le VGA et le DVI. La technologie devra permettre le transport d’un flux vidéo de bonne qualité entre un ordinateur et un téléviseur, et ce sur une distance pouvant dépasser une dizaine de mètres. L’ordinateur devra quant à lui permettre la lecture d’un fichier vidéo a priori faiblement compressé (mpeg2 ?). Pour les tours, il faut trouver un compromis entre esthétisme et coût. Le choix du mini-PC est sérieusement envisagé. La carte réseau permet de connecter le serveur vidéo au poste de mise à jour. Les accès directs au serveur vidéo seront interdits et rendus impossibles en raison de l’absence de clavier et souris. A la suite de la mise en marche du système, on accède le plus rapidement possible au Bureau à partir duquel se lance la vidéo et le diaporama. En ce qui concerne la formation et l’utilisation simplifiée, deux solutions sont envisagées : - Utilisation des pré-requis en Powerpoint pour la mise à jour du diaporama. La solution pourrait alors se présenter sous la forme d’un Impress bridé. - Création d’une interface intuitive en PHP. L’avantage serait la sécurisation mais l’inconvénient serait la mise en place du système. Un manuel d’utilisation reste à prévoir. -6- Choix matériels I - Téléviseurs Le choix des téléviseurs fut conditionné par deux critères : la présence d’une entrée VGA et d’enceintes intégrées. Le souhait du commanditaire était résolument orienté vers les écrans plats. Une TV LCD apporte une stabilité d’image qui offre la possibilité de se placer à des distances variées sans pour autant se fatiguer les yeux. De plus, sa bonne luminosité et son excellente netteté sont deux arguments de poids. Si on ajoute un prix de production raisonnable et un encombrement très réduit, le LCD a de bons atouts. La solution du plasma fut rapidement écartée pour des raisons économiques. La taille des écrans, fonction du budget, a été fixée par le commanditaire. Le choix des supports de télévision fut géré par les responsables de la production. La solution des connecteurs DVI (Digital Visual Interface) fut envisagée mais abandonnée après réflexion. Contrairement au port VGA sur lequel les images sont transmises de façon analogique, le port DVI transmet au moniteur l'affichage sous forme numérique. L’ennui est que les liaisons sont limitées à 5 mètres selon la documentation officielle (on pourrait aller jusqu’à 10 mètres en pratique). Pour le son, la solution simple d’une connectique Jack-RCA fut adoptée. Concernant les câbles réseau, il était prévu à l’origine du projet une installation « en dur » du système de mise à jour via FTP. Aussi cela impliquait l’achat de 5 câbles réseau croisés allant de 10 à 30 mètres. Cette solution coûteuse fut remplacée par l’achat d’une clé USB d’une faible capacité qui sera transportée de site en site. -7- II - Les ordinateurs Pour proposer les configurations informatique du projet, nous nous sommes intéressé à la configuration des « PC Home Cinéma » (PCHC) utilisés comme « Media Center » par les particuliers. a) Configuration PCHC La configuration minimale préconisée sur le site de DivX Inc. pour lire une video DivX profil Home Theater est la suivante : • Cadence du CPU 733Mhz • 64 Mo de RAM • Carte vidéo avec 32Mo de RAM et supportant les couleurs 24-bit b) Configuration informatique proposée Nous allons maintenant étoffer la configuration précédente. Le matériel fut choisi en fonction de notre cahier des charges et d’une éventuelle mise à jour future. • Microprocesseur : D’après les sources fournit par les sites dédiés, les Pentium donneraient de meilleurs résultats graphiques que les AMD, surtout en ce qui concerne les saccades pendant le changement d’applications (surtout avec des grands écrans) et le recodage. Vis-à-vis de la compatibilité Processeur/Carte mère et du budget, on pourra tout de même envisager un processeur de type AMD, celui fournissant un résultat convenable. • Carte mère : La carte de mère devra avoir un contrôleur réseau, et bien sur être compatible avec le reste du matériel. Les sites spécialisés conseillent la marque ASUS. • Carte graphique/Video : La carte vidéo devra comporter une sortie VGA et fonctionner en AGPx8. Notre choix se porte sur la marque NVidia, celle-ci étant mieux pris en compte par les systèmes Linux en ce qui concernent les drivers. • Disque Dur : UDMA133 ou SATA II. -8- Si 7200 tr/min avec 2Mo de buffer, le choisir avec un buffer de 8Mo serait l’idéal. La marque recommandée par les sites dédiés est Seagate. • Mémoire vive : DDR 512 Mo. • Lecteur DVD : Peu importe. Il sert à l’installation (et éventuellement à la ré-installation) du système. • Alimentation et boîtier : Puissance effectif d’environ 250W. Boîtier de type ATX pour une carte mère standard. On pourra envisager une configuration Mini PC. c) A titre d’exemple : Configuration « classique » (boîtier standard) (Les prix sont donnés à titre indicatif) • • CPU AMD Duron 1800 (1.8Ghz). {60€} Carte mère ASUS A7N8X (Deluxe ?) compatible SATA et UDMA. {55€} (On peut aussi envisager une ASUS A8N5X {85€} avec un processeur compatible.) • Mémoire vive : DDR PC3200 de 512Mo. • Carte graphique : NVidia 7300/52200/5500 (toutes AGPx8). • Disque Dur : Maxtor Diamond Max10 de 80Go SATAII, buffer 8 Mo 3.0Gb/s. {70€} Hitachi (parait-il moins fiables) 80Go UDMA133, buffer 2Mo. {50€} + Boîtier +Alimentation + Lecteur DVD +Ventilateur (silencieux selon le degré d’exigence) Afin d’avoir un ordre d’idée des configurations proposées en magasin, des devis de vendeurs informatiques valenciennois (de 320€ à 460 € l’unité) ont été remis à la partie Production qui ont pris en charge la finalisation des achats. Nous sommes conscient d’avoir ici présenté une configuration plutôt large pour la « simple » diffusion de vidéos. Cependant, il faut garder à l’esprit que l’ordinateur sera censé tourner prêt de 8 heures par jour. Les ressources systèmes étant sollicitées sur une certaine durée, une marge assure la pérennité du matériel. Par ailleurs, nos connaissances en informatique étant encore trop superficielles, nos choix sont sans doute très largement perfectibles. Sources : http://perso.wanadoo.fr/nicolas.phil/fr http://www.homemedia.fr http://www.homecinema-fr.com/ -9- Choix logiciels I - Le système d’exploitation a) Choix de Linux Afin de respecter nos objectifs concernant la gratuité des logiciels utilisés, nous avons logiquement éliminé la solution Windows et Mac. Nous avons donc choisi de développer une solution sur une distribution de Linux, ce système étant adapté à une configuration et une administration fortement personnalisée. b) Choix d’Ubuntu Débutants sous Linux, nous nous sommes tournés vers une distribution simple d’accès par son ergonomie et ses nombreuses ressources présentes sur le net. Ubuntu est un système d’exploitation destiné à l’utilisation multimédia, notamment pour la mise en place de PC Home Cinema. Nous avons installés toutes les machines avec la version 5.10 Breezy Badger d’Ubuntu. Note : il est a noté que nous avons essayé une installation sous Fedora 5, qui nous a paru trop instable. Instabilité, qui, nous le savons aujourd’hui, était du à un bug du système de protection de Fedora, facilement corrigeable. - 10 - c) Installation du système Le système ne devant servir qu’à la diffusion et à la mise à jour, il fut essentiel d’alléger l’installation par défaut d’Ubuntu. Nous avons fait une installation en mode serveur puis nous avons personnalisé l'installation par l'ajout de programmes spécifiques à notre installation. Le partitionnement est établi grâce à l’utilitaire Partman. Nous avons partitionné le disque de façon à séparer le système d’exploitation des données temporaires. Nous avons aussi prévu deux partitions, une avec un outil d’administration et l’autre avec une image du système. Nom de la partition Capacité Système de fichiers Point de montage Partition système 10Go ext3 / Données 6Go ext3 /var Swap 1Go [swap] [swap] System Rescue 4Go ext3 /rescue Image Système 10Go ext3 /image Espace non partitionné 9Go - - Après l'installation complète d'Ubuntu nous avons mis à jour le noyau avec la version 686, le noyau d’origine étant en 386. Personnalisation du système (voir annexe pour le détail des commandes) : Nous avons installé le serveur graphique et IceWM, qui est un gestionnaire de fenêtre allégée (plus léger que Gnome, KDE ou Xfce), prenant peu de ressource et étant compatible avec notre utilisation. Des changements dans les fichiers de configurations d’IceWM ont été nécessaires afin de modifier l’aspect du bureau en cachant notamment les barres de titre afin d’obtenir un fond uniforme. Autologin : Il a ensuite fallu modifier la configuration pour que le système se logue automatiquement (rappelons que le système sera installé sans souris ni clavier). Pour cela nous avons mis en place un script en C dans le répertoire qui se lance au démarrage de façon à se loguer et à lancer l’interface graphique sans intervention de l’utilisateur. Lancement d’une application au démarrage : Nous avons aussi créé un script pour lancer une application après le démarrage du serveur graphique. Après toutes ces opérations, dés le démarrage, le système est capable de se loguer automatiquement et de lancer l'application choisie. - 11 - II - Vidéo et Diaporama a) Solution Media Center Un logiciel de Media Center permet d’utiliser un ordinateur comme une station multimédia. La machine peut alors lire les vidéos, la musique, regarder les photos qui sont sur le disque dur ainsi que visionner et enregistrer la télévision. Plusieurs logiciels gratuits sont disponibles tel que myHTCP ou le Media Center de Yahoo. Sous Linux, il existe MythTV, un logiciel libre multiplateformes. La solution Media Center étant développé pour faciliter l’utilisation des personnes non-spécialistes en informatique, elle n’offrait pas assez de possibilité de personnalisation, tant au niveau de l’interface qu’au niveau du pilotage à distance via des commandes scriptées. b) Solution Impress Pourquoi ? La suite bureautique OpenOffice intègre le module de présentation Impress. Equivalent libre de Ms Powerpoint, les fonctionnalités de ce logiciel répondent parfaitement à nos besoins. En effet, ce logiciel est capable de lire des vidéos, et les diaporamas y sont très facilement paramétrables. Impress est multi-plateforme. On peut effectuer la mise à jour des photos depuis un poste sur Windows et lancer le fichier généré sous Linux. Par ailleurs, de nombreux paramètres de lancement en console offre une grande flexibilité dans son utilisation. - 12 - Comment ça marche ? Le projet OpenOffice.org est initialement basé sur les sources offertes par Sun Microsystems, préparées pour une version de StarOffice. Ces sources sont écrites en C++ et proposent des fonctionnalités scriptables ainsi que des APIs pour Java et d'autres langages de programmation. Microsoft DirectX est une suite d'API multimédia intégrée au système d'exploitation Windows permettant d'exploiter les capacités matérielles d'un ordinateur. Sous Windows, l’affichage d’une vidéo intégrée est géré par Direct Show, module gérant l'affichage et la capture de vidéo. Ainsi l’installation des codecs correspondant suffira à l’affichage de la vidéo dans Impress. Sous Linux, le fonctionnement est tout autre. Impress utilise en fait l’API Java Media Framework. La JMF permet l’intégration de son et de vidéo dans des applications et applets basé sur une technologie Java. Ce paquet optionnel, qui peut capturer, lire, streamer et transcoder quelques formats de media. La liste des codecs vidéo compatibles est disponible ci-dessous : Type de média Codecs AVI (*.avi) VCM** Cinepak MJPEG (422) RGB YUV Mpeg1 Video (*.mpg) Flux vidéo multiplexé Flux vidéo unique QuickTime (.mov) Cinepak H.261 H.263 JPEG (420, 422, 444) RGB Nous présentons ci-dessous l’installation de cette API. - 13 - Installation En tout premier lieu, il faut installer ou plutôt mettre à jour l’environnement virtuel Java (JRE). Ubuntu propose d’origine une version 1.4, or une version 1.5 est disponible en libre téléchargement depuis le site de Sun. A ce niveau, il nous a fallu déjà comprendre le concept de variable d’environnement. Il arrive parfois que certaines informations doivent être mise à disposition d'un grand nombre de programme. Java est un programme qui est exécuté ; or ce programme est contenu dans un fichier, qui doit être lu pour que le système puisse exécuter le programme. Mais comment le système fait-il pour trouver le fichier en question ? L'information indiquant à quels endroits chercher les fichiers contenant les programmes des diverses commandes doit donc être aisément accessible, et comme certaines commandes en appellent d'autres, cette information doit également être lisible par tout le monde. Ce genre d'information largement diffusée dans le système est contenu dans ce que l'on appelle des variables d'environnement. Pour ajouter des variables d’environnement, il faut les inscrire dans le fichier /etc/environment. Après mise à jour de la JRE, on peut télécharger la JMF (disponible également sur le site de Sun). L’installation préalable du compilateur GCC est nécessaire. La JMF installée, Les chemins de l’application et des classes restent encore à ajouter à l’environnement. A ce stade, JMStudio ne fonctionne pas et ce, sans que nous puissions en donner les raisons. JMStudio est une application stand-alone Java qui utilise la JMF pour lire, capturer, transcoder et écrire des données média. Nous ne nous démontons pas et continuons l’installation. Pour une raison tout aussi mystique, le fonctionnement de l’application nécessite en plus la copie des libraires de la JMF dans celle de la JRE. On peut alors tester l’API en ligne sur le site de Sun. Au vue de certaines manipulations hasardeuses décrites ci-dessus, inutile de vous préciser que la validation de l'installation nous a procuré une réelle satisfaction. C'était sans savoir ce que nous réservait la suite. La version d'Impress livrée avec Ubuntu est une version 1.9. Nous sommes donc passés à la version 2.0, dernière en date. La reconnaissance de la JFM dans Impress demande quelques réglages concernant les chemins des libraires. Malgré un suivi rigoureux des instructions de Sun et d'OpenOffice pour le fonctionnement du module MediaPlayer, nos premiers essais n'ont pas été concluants. C'est seulement après quelques (dé)installations à répétition que nous avons compris que le paquet d'intégration à l'environnement graphique de Gnome [openoffice-gnome] empêchait l'affichage de vidéos. - 14 - La vidéo enfin affichée, nous nous sommes alors lancés dans les tests de qualité. Le résultat fut vite décevant. La plupart des codecs cités précédemment sont destinés à des applications en réseau. Les vidéos non-compressées sont correctement lues mais une limitation à 2 Go est fixée par la JMF. Nos recherches sur l'ajout de codecs dans la JMF nous conduisent au site d'IBM où un paquet permettant la lecture de Mpeg4 est en libre téléchargement. Nous avions auparavant déjà installé un codec permettant la lecture de MP3. Le codec d'IBM s'avèrait être en fait une version d'essai. L'inconvénient est que la vidéo lue présente un logo d'IBM en bas à droite. Par ailleurs, l'implémentation d'un codec destiné à la JMF est bien au-delà de nos capacités actuelles en programmation. Inconvénients La solution Impress s'avère en fait un nœud de problèmes : installation de la JMF, restriction des formats lus, taille limitée, instabilité. En effet ce dernier point fut le critère qui nous poussa à abandonner définitivement Impress. Une longue vidéo (donc de mauvaise qualité car encodée avec les codecs proposés ci-dessus) de moins de 2 Go enchaînée avec un diaporama a tendance à saccader et les ressources utilisées étant anormalement élevées. - 15 - c) Solution Firefox & VLC Une troisième solution envisagée fut l’utilisation d’une technologie Web permettant ainsi une certaine flexibilité et offrant par la même occasion des moyens faciles de manipuler de la vidéo et des images de manière dynamique. De plus, cette solution devient par la même occasion quasiment indépendante du système d’exploitation. Il s’agit donc ici d’alterner une page diffusant une vidéo avec une page présentant un diaporama chargeant dynamiquement les photos contenues dans un répertoire. Cette solution fut en fait la première à laquelle nous avions pensé avant de la délaisser pour Impress (solution précédemment présentée). Le navigateur Firefox se présente comme l’outil adapté à notre projet, puisqu’il est, condition primordiale, libre. Du plus, il jouit d’une certaine popularité, dont la conséquence est que de nombreux plugins sont continuellement développés. Une aide technique très complète est disponible sur Internet. Les spécifications matérielles minimum correspondent à nos choix de configuration : - Intel Pentium II ou AMD K6-III+ 233 MHz CPU (Recommandé: 500MHz ou mieux) - 64 Mo RAM (Recommandé: 128 Mo RAM ou mieux) - 52 Mo d’espace HD 1- La vidéo Allié à ce navigateur, il nous fallait un logiciel permettant de lire de la vidéo. Quelques essais ont été fait avec Flash™. Cette technologie est payante, mais dans l’éventualité d’une solution parfaitement adaptée à nos besoins, nous nous devions de l’éprouver. L’inconvénient majeur est que ce programme est strictement destiné à des applications Web. Aussi de l’encodage des vidéos au format Flash résulte une qualité d’image plutôt médiocre car destinée au streaming. La solution du plugin VLC est beaucoup plus intéressante. VideoLAN est une solution logicielle de diffusion vidéo, sous licence GNU General Public License (GPL). VideoLAN est conçu pour diffuser des vidéos MPEG. Il existe un plugin VLC pour Firefox qui permet de lire une quinzaine de formats vidéo. L’inconvénient est que l’aide en ligne est médiocre et seules quelques lignes de code en exemple sont censées permettre d’en comprendre le fonctionnement. Ce plugin offre la possibilité grâce à des fonctions Javascript de contrôler la lecture ou récupérer des informations du plugin. On peut donc commander la lecture d’une vidéo, repérer la fin de cette dernière et lancer alors le diaporama. De nombreux tests ont été nécessaires pour faire fonctionner ces contrôles Javascript : on a pu - 16 - constater, entre autres, que le plugin ne démarrait pas sous Firefox 1.5 (Bug répertorié sur Internet). Par ailleurs, quelques contrôles, comme par exemple, l’accès à la durée du média, ne répondent pas avec certaines vidéos. Nous sommes actuellement encore dans l’incapacité de d’expliquer ce dysfonctionnement. Le format DV non compressé (en sortie de Premiere™) s’avère compatible avec les fonctions Javascript du plugin. Le contenu de la page Web, concis et efficace, est disponible en annexe. Au lancement de la page, la vidéo est lue en plein écran, puis on teste régulièrement pour savoir si nous arrivons à la fin de la vidéo. Alors on redirige vers le diaporama. L’inconvénient de cette solution est d’ordre esthétique puisque le passage du diaporama à la vidéo dévoile le dispositif en affichant furtivement la bande blanche correspondant à la barre de titre. 2- Le diaporama Pour le diaporama, nous nous sommes orientés vers une solution en Javascript. Peu d’autres solutions sont sur le Web proposées (notamment en Flash™). 1 : Notre premier diaporama affichait des photos dont les noms de fichiers étaient inscrits dans la page Web. L’affichage était correct mais l’ensemble était statique. 2 : Le second diaporama propose une amélioration. On ajoute au précédent une fonction en PHP qui nous permet de lister le contenu d’un répertoire et d’en afficher les photos. Ces dernières peuvent être ajoutées durant le fonctionnement de l’installation : la liste des photos est réactualisée à chaque lancement de la page. On passe donc à un système dynamique mais en contrepartie ce système requiert l’installation d’un serveur Apache. 3 : La dernière amélioration du diaporama est le preload. On avait constaté dans les versions précédentes que certaines photos étaient affichées de manière progressive du haut vers le bas. Aussi nous avons intégré une fonction permettant de tester la fin du chargement d’une photo avant de l’afficher. Afin d’éprouver cette fonction, nous avons fait tourner le diaporama avec des images allant jusqu’à 5 Mo. Le système affiche le tout sans problème. Nous avons donc finalement opté pour cette solution. Malgré l’utilisation détournée de logiciels orientés Web, la diffusion d’une vidéo et d’un diaporama est ici rendu possible, et ce avec une qualité tout à fait correcte. Nous avions pensé pendant un temps mettre en place un système de calques CSS au-dessus des images pour l’affichage du texte associé. Nous en voyons le fonctionnement ci-après. - 17 - II - Création des fichiers a) La solution FCKEditor La première solution envisagée pour notre projet fut celle d’un système exclusivement en HTML, et PHP allié à une mise en forme via feuille de style. Il s’agissait d’alterner une vidéo sur une page HTML avec un diaporama dynamique sur lequel un calque CSS aurait permis le placement de texte. 1 2 3 4 Une page PHP liste les images contenues dans un répertoire dédié et crée des miniatures. L’utilisateur peut alors choisir l’image qu’il souhaite afficher. Après validation du choix, on passe à une seconde page qui permet de rédiger le texte. FCKeditor est un éditeur de texte HTML qui comporte de nombreuses fonctionnalités à l’instar d’un éditeur de texte tel que MS Word. C’est léger et ne requiert aucun installation du côté client. De plus, ce projet est Open Source. Une occurrence de cet éditeur est alors affichée, et l’utilisateur peut entrer son texte et le mettre en forme à sa convenance. KFCeditor finalise ce stade en générant le code HTML du texte saisi précédemment. A présent, il faut placer correctement le texte sur l’image. Pour ce faire, on utilise une boîte de contenu flottante. Il s’agit de modifier la position d’un calque CSS à l’aide de fonctions Javascript. Lorsque l’utilisateur a validé son image, le choix de la photo, le texte ainsi que la position du calque sont alors stockés dans un fichier structuré XML. L’utilisateur peut alors recommencer pour une autre photo. - 18 - L’avantage de cette solution est son accessibilité et la légèreté des données de mise à jour (fichier texte). La mise à jour peut être fait depuis n’importe où à condition, bien sûr, de rendre ces pages disponibles sur Internet. Le principal désavantage est la restriction sur le choix des photos. Il est en effet impossible de rajouter des photos commodément sans modifier une grande partie du système. Par ailleurs, un second désavantage non-négligeable est la complexité de mise en œuvre du système. Il faut ici avoir des connaissances en HTML, CSS, PHP et Javascript. L’objectif restant la création de photos avec une couche de texte, on s’aperçoit que la complexité du système est disproportionnée par rapport à la tâche effectuée. - 19 - b) La solution Impress Après moult tests, nous sommes arrivés à la conclusion que logiciel d’OpenOffice ne constituait pas une solution adapté à notre système de diffusion. Impress se présente néanmoins comme un outil adéquate pour la génération d’images combinées à du texte. En effet, ce dernier présente toutes les fonctionnalités de mise en forme d’un traitement de texte, offre des possibilités de schémas, et surtout exporte des images JPG à partir de diaporamas. De plus, Impress est un logiciel familier du personnel des Laboratoires Biopaj, qui auront donc aucun mal à le prendre en charge. Le souci d'ergonomie est très important ici, puisque le produit s'adresse à un public de non avertit. Il vaut donc mieux lorsque cela est possible que l'outil s'adapte à l'utilisateur plutôt que le contraire. Nous avons donc décider de créer sur leur poste existant, une session dédié à la création de diapositives pour la diffusion dans laquelle nous avons installer une version alléger d'Impress. En effet, nous avons caché les commandes dont l’utilisateur n'a pas besoin, au profit d'une meilleure visibilité des options essentielles. Ensuite nous avons modifié la taille des diapositives en sorties pour qu'elles correspondent au ratio du téléviseur. Pour finir nous avons créé un script OooBasic pour automatiser l'exportation de toutes les diapos aux formats JPEG et rajouter un bouton lui correspondant dans l'interface d'Impress. (Voir script en annexes). - 20 - III Transfert de fichiers Le systèmes d'échanges de fichiers entre la machine créant le diaporama et le système de diffusion devait fonctionnait sans clavier ni souris. Il sert à modifier le dossier contenant les images à diffuser sur le serveur de diffusion. a) Serveur FTP Au départ, nous avions envisagé la solution du serveur FTP pour la mise à jour du répertoire contenant les images. L'ordinateur de mise à jour étant directement connecté en local sur le système de diffusion, il suffisait d'un glisser déposer de dossiers pour mettre à jour le diaporamas. Cette solution parfaitement opérationnelle nécessitait la mise en place d'une longueur conséquente de câble réseau. Le commanditaire après avoir accepté cette solution, est revenu sur sa décision en décidant d'acheter un seul câble réseau pour la totalité des sites, qu'il faudrait rebrancher et débrancher à chaque fois. Nous avons une fois encore pu constater l'inconstance de notre commanditaire. Cette installation (si l'on peut appeler ça comme ça) nous paraissant ridicule, nous avons décider d'étudier une autre solution d'échange: la clé USB. Même si nous trouvons dommage d'abandonner le système de mise à jour par le réseau qui aurait pu être optimisé pour un fonctionnement centralisé avec un serveur FTP connecté au net et les autres machines accédant aux mises à jour via le réseau. - 21 - b) Clé USB Nous avons donc pensé une solution d'échange via clé USB, qui est plus simple d'utilisation mais qui demande la mise en place d'une solution technique plus complexe. Nous avons donc installé Ivman et configuré Udev et Hotplug qui sont trois logiciels permettant le montage et le lancement automatique de script lors de la détection du matériel USB. Puis nous avons écrit un shell-script permettant la suppression des images contenu dans le répertoire images du système de diffusion puis la recopie des images présentent sur la clé dans le dit répertoire. - 22 - A Faire Le système de diffusion proposé aujourd'hui fonctionne et répond au cahier imposé par le commanditaire. Mais nous pensons qu'il y a encore de grandes améliorations à lui apporter. I - Mise en réseau A terme, la mise en réseau de tous serveurs de diffusion des Laboratoires Biopaj paraît incontournable du fait de la commodité que cela apporterait. Un seul ordinateur (servant aussi de diffuseur) serait mise à jour à distance, via par exemple un FTP et les autres stations iraient y télécharger les mises à jours régulièrement. Cette tâche, très orientée informatique, induira la mise en place d'un système efficace de protection des ordinateurs et des données transitant par le réseaux. Peut-être pourrait-on exploiter le réseau VPN déjà présent sur les sites. - 23 - II - Dévelopement d'une application dédié Le développement d'une application serait un plus tant au niveau de la sécurité que de la facilité d'utilisation. En effet, l'utilisateur aurait entre ces mains un outil parfaitement adapter à sa tâche, qui effectuerais automatiquement les opérations délicates, évitant ainsi les mauvaises manipulations, dangereuses pour la stabilité du système. C'est sans doute la solution la plus adaptée aux besoins d'une entreprise comme les Laboratoires Biopaj. Malheureusement, elle aurait demandée des connaissances en programmation importantes. Connaissances que nous n'avons pas eu la chance d'approfondir durant notre cursus universitaire. - 24 - Regard Critique I - Un projet orienté informatique Ce projet de diffusion vidéo, fut, pour la partie technique, fortement orientée informatique. N'ayant que de légères notions d'informatique et étant débutant sous Linux, ce projet nous a permis de nous familiariser avec un nouveau système d'exploitation et d'aborder l'écriture de shell-scripts simples. Cependant, nous regrettons de ne pas avoir eu plus à étudier le signal vidéo et ses différents traitements, notre formation n'ayant pas pour but de faire de nous des informaticiens. II - Un suivi chaotique Le projet Biopaj est un projet commandité par les laboratoires du même nom en 2004. C'est lors de notre entrevue en Novembre 2005 avec les responsables universitaires du projet, que nous a été remis le rapport de l'équipe précédente. Malheureusement, toute notre équipe a découvert à ces dépens que rien n'avait été signé l'année précédente entre l'université et le commanditaire et qu'une grande partie des écrits du rapport n'était pas validée. Vous n'êtes pas sans savoir tous les retards que ces problèmes purent occasionner. Il est fort dommage que les responsables pédagogiques n'aient pas pris clairement position en réaction aux caprices du commanditaire, nous laissant parfois bien seul face aux dirigeants de Biopaj. Faute d'être entendu, nous en sommes arrivés à user des moyens plus officiels en écrivant une lettre d'alarme à Messieurs Bouchez et Rouzet en Mars 2006. Lettre dont vous trouverez une copie en annexe. Conscients de nos responsabilités au sein de ce projet, nous les avons toujours assumées, mais il ne faut pas oublier qu'en tant qu'élèves nous sommes tributaires de vos règles du jeu. Le constat est malheureusement le suivant: à DREAM, les perspectives économiques d'un projet commandité ou d'un quelconque événement font souvent passer l'intérêt des étudiants au second plan. Ceci n'est en aucun cas un procès, mais la conclusion d'une année d'étude à l'UVHC. Nous tenons d'ailleurs à rappeler notre reconnaissance aux personnes qui nous ont soutenus durant celle-ci. III - Le résultat Le système mise en place aujourd'hui fonctionne et répond aux cahiers des charges. La diffusion s'effectuant grâce à un système Linux et à Firefox, tandis que la mise à jour s'effectue par clé USB. Malheureusement, nos efforts, en vain, pour installer Impress et surtout la Java Media Framework nous ont fait prendre beaucoup de retard dans le projet. De ce fait, nous n'avons pas eu le temps de peaufiner le système et nous le regrettons (voir le chapitre To do). - 25 - Conclusion Au terme de ce projet, nous sommes satisfait d’avoir pu mener la conception de ce dispositif à un stade fonctionnel. Le système répond au cahier des charges (Gratuité de la solution logicielle, mise à jour simplifiée, facilité d’utilisation…) et offre encore de nombreuses possibilités d’évolution. Toutefois, nous regrettons de n’avoir pas toujours su gérer notre temps de manière efficace. Nous nous sommes peut-être trop investi dans la solution qu’offrait le logiciel Impress. Le temps précieux que nous avons ainsi perdu aurait pu être consacré à une meilleure sécurisation du système et à une complète mise en réseau de l’installation. Pour finir, nous avons su tirer profit de cette expérience tant au niveau humain que technique. En effet, nous avons appris à travailler de manière autonome et à s’adapter aux difficultés inhérentes à un projet réunissant élèves, professeurs et client. - 26 - Annexes Installation du système détaillée: codes et commandes Système d'exploitation: Rappelons pour information que la version d'Ubuntu utilisée ici est la 5.10 Breezy Badger. Nous avons fait une installation en mode serveur puis nous avons personnalisé l'installation par l'ajout de programmes spécifiques à notre installation. L'installation en mode serveur se fait par le mot clé [server] à l'invite de commande lors de l'insertion du CDRom d'Ubuntu. Nous avons sélectionné les options par défaut. Avant tout, on modifie le fichier /etc/apt/sources.list. On y décommente tous les dépôts et on met à jour : apt-get update Nous avons mis à jour le noyau en téléchargement la version 686. Pour cela: apt-get install linux-686 linux-headers-686 Installation du serveur X et du gestionnaire de fenêtres: apt-get install x-window-system-core icewm numlockx xterm Numlockx verrouille le pavé numérique au démarrage et xterm permet d'émuler un terminal en mode graphique. L'installation peut être vérifiée en faisant: startx Pour tuer le serveur X et repasser en console: Ctrl + Alt + BackShift - 27 - Autologin : Nous avons mis en place un script en C dans le répertoire qui se lance au démarrage de façon à se loguer et à lancer l’interface graphique sans intervention de l’utilisateur. Pour cela on créer un fichier : sudo nano autologin.c Dans lequel on écrit : int main[] { execlp(« login », « login », « -f », « [monlogin] »,0) ; } Puis on compile : sudo gcc-4.0 –o autologin autologin.c On le déplace : sudo mv autologin /usr/local/sbin Et on supprime la source : rm autologin.c Ensuite on édite le fichier : sudo nano /etc/inittab Et on y remplace : 1 :2345 :repawn:/sbin/getty 38400 tty1 Par : 1 :2345 :repawn:/sbin/getty –n –l [...] [...] /usr/local/sbin/autologin 38400 tty1 Autostart : On édite le .bash_profile : sudo nano ~/ .bash_profile Et on y ajoute : if [-z « $DISPLAY »]&&[$(tty)== /dev/tty1] ; then startx fi Lancement d’une application au démarrage : On crée un fichier startup dans le répertoire IceWM : sudo nano /etc/X11/icewm/startup Dans lequel on écrit : #!bin/sh [Commande de l’application à lancer] Cacher la barre de menu d'IceWM: On édite sudo nano /etc/X11/icewm/preferences On décommente TaskBarAutoHide=1 - 28 - Modification de la résolution Il faudra aussi éditer le fichier /ect/X11/xorg-conf pour adapter la résolution de sortie à celle des écrans. Pour cela on doit éditer un « Modeline » contenant la résolution de l’écran et les fréquences de balayage horizontales et verticales. HorizSync 15-100 VertRefresh 50-100 Modeline "1360x768-50" 84.06 1360 1392 1712 1740 768 771 777 806 -HSync -VSync Solution Impress : Installation de Firefox : apt-get install firefox Installation de Java : Il faut télecharger le fichier jre-1_5_0_06-linux-i586.bin sur le site de Sun (www.java.com/fr/download) On changer les droits : chmod +x jre-1_5_0_06-linux-i586.bin Et on execute : sudo ./jre-1_5_0_06-linux-i586.bin On déplace le dossier résultant : sudo mv -f jre-1.5.0_06/ /opt/ Ajoutons alors les liens vers les binaires : sudo ln -s /opt/jre-1.5.0_06/bin/java /usr/local/bin/java sudo ln -s /opt/jre-1.5.0_06/bin/policytool /usr/local/bin/policytool Ajoutons maintenant la variable d'environnement dans /etc/environment : JAVA_HOME=/opt/jre1.5.0_06 On teste notre installation sur Internet aprés avoir mis les plugins pour Firefox: sudo ln -s /opt/jre1.5.0_06/plugins/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins Dans Firefox, on tape [about:plugins] et on est censé y retrouver les composants Java. On peut effacer le fichier originel. Installation de GCC: GCC est nécessaire à l'installation de la JMF : sudo apt-get install gcc Installation de JavaMediaFramework: Aprés le téléchargement de la JMF sur le site de Sun (java.sun.com/products/javamedia/jmf/2.1.1/download.html) - 29 - On déplace le fichier et on l'installe : sudo mv jmf-2_1_1e-linux-i586.bin /opt/ sudo sh ./jmf-2-1-1e-linux-i586.bin (Il faut répondre Y à toutes les questions.) Le script jmfinit se lance et teste différents modes vidéo de la carte graphique. On change de propriètaire : chown -R biopaj:biopaj JMF-2.1.1e On configure l'environnement : sudo nano ~/.bashrc Pour y ajouter à la fin : [.bashrc] : PATH=${PATH}:$JAVA_HOME PATH=${PATH}:$JMFHOME/bin CLASSPATH=${CLASSPATH}:$JMF_HOME/lib/jmf.jar:$JMF_HOME/lib/mediaplay er.jar:$JMF_HOME/lib/multiplayer.jar LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:JMF_HOME/lib export LD_LIBRARY_PATH CLASSPATH PATH et dans /etc/environment: JFM_HOME=/opt/JMF-2.1.1e A ce stade, jmstudio, l'application stand-alone en Java ne fonctionne pas, et ce, pour une raison qui reste inconnue. Il faut maintenant copier le contenu du dossier /lib de la JMF dans le répertoire /ext de la JRE: sudo cp $JMF_HOME/lib/* $JAVA_HOME/lib/ext On petu tester l'installation java.sun.com/products/javamedia/jmf/2.1.1/jmfdiagnostics.html Faisons un [apt-get upgrade pour mettre à jour notre système. Profitons-en également pour supprimer le fichier d'install. [ rm jmf-2_1_1e-linux-i586.bin] Nous avons la possibilité d'ajouter le support du mp3 à la JMF. Faute d'avoir pu trouver des codecs vidéo libres, nous avons ajouté ce codec audio : Sur le site de Sun (java.sun.com/products/java-media/jmf/mp3/download), on télécharge le fichier javamp3-1_0.zip. Il faut dézipper le fichier [apt-get install unzip] puis [unzip javamp3-1_0.zip -d /home/biopaj/JMFMP3]. On copie les fichiers au bon endroit: [sudo cp ~/JMFMP3/lib/ext/mp3plugin.jar /opt/jre-1.5.0_06/lib/ext] et on execute la ligne de commande suivante: [java com.sun.media.codec.audio.mp3.JavaDecoder] Il en résulte « Registered successfully ». Le test avec un fichier mp3 est également concluant. - 30 - Installation d'OpenOffice Impress 2: Tout d'abord, re-modifions le fichier sources.list, et ajoutons-y un dépôt: sudo nano /etc/apt/sources.list On ajoute : deb http://people.ubuntu.com/~doko/OOo2 ./ Puis: apt-get update apt-get install openoffice.org2-impress On lance Impress [ ooimpress2 ]. On configure correctmeent ce dernier pour utiliser la JFM : Tools → Option → Java → Classpath On ajoute alors le dossier /opt/jmf-2.1.1e/lib et les 3 archives *.jar du même dossier. Afin de rendre possible depuis l'interface l'insertion de medias, on insère le bouton du Mediaplayer permettant le test et l'insertion entre autres des videos (Inutile à terme) : Tools → Customize → Add → Mediaplayer → Add → Ok Nous avons vu précédemment comment lancer une application au démarrage de Linux. Pour automatiser le lancement d'un diaporama sans logo, en plein écran et en évitant l'apparition du système de restauration, on inscrit la ligne suivante dans /etc/X11/icewm/startup: [ooffice2 -nologo -show -norestore /mnt/ftp/biopaj.odp] - 31 - Installation de ProFTPD Installation du serveur ftp Proftpd: On installe proftpd [apt-get install proftpd] et on choisira l'option « indépendamment » (Standalone). Testons l'existence du groupe nobody [ cat /etc/group | grep nobody ] Le groupe n'existe pas, créons-le : groupadd nobody Testons l'existence de l'utilisateur nobody [ cat /etc/passwd | grep nobody ] L'utilisateur n'existe pas, créons-le : useradd nobody -d / -s /bin/false usermod nobody -g nobody On limite l'accès uniquement à un utilisateur que nous créons: useradd biopajftp -s /bin/false Le mot de passe est à définir [ sudo passwd biopajftp] On édite la liste des shells [sudo nano /etc/shells] et on y rajoute [/bin/false] Créons le dossier du ftp : [ mkdir /mnt/ftp ] puis [ chmod -R 777 /mnt/ftp ] Le dossier est accessible à tous et sans restriction. Pour la configuration du serveur, deux fichiers sont à éditer : ftpusers: on crée le fichier ftpusers des utilisateurs exclus du ftp : [ cp /etc/passwd /etc/ftpusers ] et on ne nettoie ce fichier pour ne garder que le nom des users. On efface biopajftp et on y ajoute anonymous. Il faut éditer le fichier proftpd.conf # le nom du serveur ServerName "Serveur Biopaj" # le daemon reste en mémoire et écoute les connections ServerType standalone # Autoriser l'usage de /etc/ftpusers UseFtpUsers on # Répertoire dans lequel arrivent les utilisateurs acceptés DefaultChdir /mnt/ftp # Répertoire racine, les connectés au ftp ne verrons que lui et son contenu DefaultRoot /mnt/ftp # Utile surtout pour les "virtuals hosts" mais laissez ainsi DefaultServer on - 32 - # le daemon écoute sur le port 21 Port 21 # On autorise les reprises des téléchargements interrompus : AllowStoreRestart on # Les logs des connections et transferts SystemLog /var/log/proftpd.log TransferLog /var/log/xferlog # Seul le propriétaire d'un fichier peut le modifier. Umask 022 # Nombre de processus fils maximum que va utiliser proftpd, laissez ainsi. MaxInstances 30 # Proftp sera lancé avec les privilèges (c'est à dire aucun) de nobody User nobody Group nobody # Nombre maximum de clients simultanés (sur ADSL ça fait 5ko/s par utilisateurs) MaxClients 3 # Nombre maximum de clients ayant le même login MaxClientsPerHost 3 # Message d'accueil après une connexion réussie AccessGrantMsg "Connexion reussie pour %u" # Pour ne pas donner d'info sur le serveur DeferWelcome on # Un utilisateur peut écraser ses propres fichiers AllowOverwrite on #Seul l'utilisateur adminftp a le droit d'écrire dans /mnt/ftp #<Directory /mnt/ftp> #<Limit WRITE> #AllowUser adminftp #DenyAll #</Limit> #Si vous souhaitez restreindre le ftp à votre réseau local 192.168.0.x et à #l'adresse 10.0.0.1 décommentez les lignes suivantes : <Limit LOGIN> Allow 10.0.0.1 192.168.0. Deny All #</Limit> </Directory> On supprime proftpd de la liste des deamons d'inetd [sudo nano /etc/inetd.conf] et on commente [ftp stream tcp nowait root /usr/sbin/tcpd proftpd]. On relance [ killall -HUP inetd ]. On va maintenant lancer le daemon [/usr/sbin/proftpd] et on vérifie qu'il est bien lancé [ps ax | grep proftpd]. Si un problème survient, on tue le processus et on relance [sudo killall -HUP proftpd]. Pour tester le ftp, il suffit de taper [ftp localhost] et de se connecter sous l'utilisateur biopajftp. On peut par ailleurs restreindre l'accès au ftp à l'ordinateur connecté « en dur ». Une sélection est faite au niveau de l'adresse IP. - 33 - Solution Firefox & VLC Nom du fichier : video.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="content-type" content="text/html; charset=iso8859-15"> <meta http-equiv="content-language" content="en"> <title>Laboratoire Biopaj</title> </head> <body> <script language="javascript"> function status() { if (document.video1.get_time()>=document.video1.get_length()-1) document.location="http://localhost/biopaj/test.php"; setTimeout("status()", 1000 ); } </script> <embed type="application/x-vlc-plugin" name="video1" fullscreen="yes" autoplay="yes" loop="no" target="file:///var/www/biopaj/video.avi" height="1" width="1"> <script language="javascript"> document.video1.add_item( "file:///var/www/biopaj/video.avi" ); document.video1.play(); setTimeout("status()", 3000 ); </script> </body> </html> La page ci-dessus utilise le plugin VLC avec les contrôles Javascript associés. En fait, on ajoute la vidéo à la liste de lecture de VLC avant d'en demander la lecture en plein écran. Au bout de 3 secondes (plage de temps à redéfinir), on lance un teste qui se rappelle régulièrement et qui une seconde avant la fin de la vidéo redirige vers le diaporama. - 34 - Nom du fichier : diaporama.php <html> <head> <title>Diaporama</title> <script language="JavaScript"> <!-<?php // On ouvre le tableau qui va contenir toutes les images du diaporama echo "src = ["; $a = 0; $imgRep = "images"; $handle = openRep($imgRep); while (($fichier = readdir())!=false) { if($fichier!=".." && $fichier!="." && getimagesize("$imgRep/$fichier")) { if ($a==0) {echo "\"$imgRep/$fichier\"";} else {echo ",\"$imgRep/$fichier\"";} $a++; } } closedir($handle); echo "]"; ?> //fixe la duree de chaque photo duration = 5; image=[]; ct=0; function ChgtImage() { //on fait un modulo avec src.length contient le nombre d'images de la page var n=(ct+1); //test si l'image est totalement chargée (.complete) : alors on affiche //l'image if (image[n] && (image[n].complete || image[n].complete==null)) { document["Ad_Image"].src = image[ct=n].src; } // preparation pour l'image suivante : on cree un nouvel element graphique //avec Image() image[n=(ct+1)] = new Image(); image[n].src = src[n]; // on rapelle la fonction pour l'image suivante if(n==src.length) document.location="http://localhost/biopaj/video.html"; - 35 - else setTimeout("ChgtImage()",duration*1000); } //on test le support du tableau d'images de Javascript par le navigateur (oui...) onload = function() { if (document.images) ChgtImage(); } //--> </script> </head> <body bgcolor="black"> <center><img name="Ad_Image" src="black.gif" border=0 height="1000" width="1200" /></center> </body> </html> - 36 - Création d'images avec Impress Nous avons du écrire une macro pour pouvoir exporter par lots les diapositives au format JPEG. Pour cela, nous nous sommes inspiré d’une macro trouver sur Internet : REM ***** BASIC ***** Sub Main ' On inscrit ci-dessous le nom du document que ' l'on veut exporter en plusieurs JPG cImpressDocAexp = "C:\Documents and Settings\biopaj\Bureau\mise_a_jour.odp" SplitSlides( cImpressDocAexp ) End Sub Sub SplitSlides( cImpressDocAexp ) ' On ouvre le document pour compter le nombre de pages oDoc = StarDesktop.LoadComponentFromURL( ConvertToURL( cImpressDocAexp ), "_blank", 0, Array() ) nNumPages = oDoc.getDrawPages().getCount() ' Maintenant que l'on connait le nb de pages, on ferme oDoc.close( True ) ' On veut le nom du document mais sans le type cImpressDocAexpNoSuffix = Left( cImpressDocAexp, Len( cImpressDocAexp ) - 4 ) ' ' On boucle sur chaque page nHighestPageNumber = nNumPages-1 nPageToSave = 2 For nPageToSave = 0 To nHighestPageNumber ' Ouverture du document oDoc = StarDesktop.LoadComponentFromURL( ConvertToURL( cImpressDocAexp ), "_blank", 0, Array() ) ' On efface toutes les pages excepte celle qui nous ' interesse dans cette boucle DeleteAllPagesExcept( oDoc, nPageToSave ) ' Preparation a la sauvegarde JPG ' Premierement on recupere le nom du fichier cNewName = cImpressDocAexpNoSuffix + " " + CSTR( nPageToSave + 1 ) ' On le sauve en JPG oDoc.storeToUrl( ConvertToURL( cNewName + ".jpg" ), _ Array( MakePropertyValue( "FilterName", "impress_jpg_Export" ) ) ) - 37 - ' On ferme le document sans le sauver oDoc.close( True ) Next End Sub ' Fonction permettant d'effacer toutes les pages ' SAUF une que nous voulons garder Function DeleteAllPagesExcept( oDoc, nPageToKeep ) nNumPages = oDoc.getDrawPages().getCount() nHighestPageNumber = nNumPages-1 ' Efface la dernière page, puis la page d'avant ' puis la page d'avant...jusqu'à la page à garder ' This deletes all pages AFTER the page to keep. ' Ceci efface toutes les pages APRES la bonne page nPageToDelete = nHighestPageNumber Do while nPageToDelete > nPageToKeep ' Numero de la page oPage = oDoc.getDrawPages().getByIndex( nPageToDelete ) ' On enleve la page oDoc.getDrawPages().remove( oPage ) nPageToDelete = nPageToDelete - 1 Loop ' Efface toutes les pages avant celle à conserver For i = 0 To nPageToKeep - 1 ' Efface la premiere page nPageToDelete = 0 ' Numero de la page oPage = oDoc.getDrawPages().getByIndex( nPageToDelete ) ' On enleve la page oDoc.getDrawPages().remove( oPage ) Next End Function Function MakePropertyValue( Optional cName As String, Optional uValue ) As com.sun.star.beans.PropertyValue oPropertyValue = createUnoStruct( "com.sun.star.beans.PropertyValue" ) If Not IsMissing( cName ) Then oPropertyValue.Name = cName EndIf If Not IsMissing( uValue ) Then oPropertyValue.Value = uValue EndIf MakePropertyValue() = oPropertyValue End Function - 38 - - 39 - - 40 - - 41 - - 42 - Le 20 Mars 2006 Par Amélie Chassériaux et Xavier Gruselle A l’attention de nos professeurs Objet : PROJET BIOPAJ Problèmes rencontrés Mesdames, Messieurs, Travaillant sur la partie technique du projet commandité par les laboratoires Biopaj dans le cadre de notre projet de fin d’année, nous tenions à faire part à nos professeurs et encadrants de nos inquiétudes face à l’évolution de celui-ci. Vous n’êtes pas sans savoir les différents problèmes rencontrés par nos camarades de l’option MCAV et nous-mêmes, avec l’entreprise Biopaj et l’université, le projet n’ayant pas été rigoureusement conduit l’année précédente par les deux parties . Aujourd’hui, alors que M. Bartholomé, notre interlocuteur auprès des laboratoires Biopaj, nous avait certifié, en janvier, que les problèmes internes du début de l’année étaient réglés et que tout était mis en œuvre au sein de l’entreprise pour le bon déroulement du projet, nous nous heurtons une fois encore à des complications qui ne sont pas de notre ressort. En effet, nous nous sommes rendu dans 4 des 5 laboratoires (Clemenceau, Vauban, Anzin et Bavais), en vue d’étudier l’installation technique à prévoir et de prendre contact avec le technicien qui « devait » s’en occuper. Nous avons alors pu constater des manquements graves de la part du commanditaire. Il nous est désormais plus que nécessaire de vous en faire part. D’une part, nous constatons que tous les membres de l’entreprise concernés par l’installation n’ont pas été clairement informés, alors que, devons nous le rappeler, ce projet fut commandité l’année 2004/2005 et que l’installation finale fut décidée en Novembre 2005. En effet, le technicien fut surpris d’apprendre que l’installation du matériel et des câbles était à sa charge. Ce travail, comme nous avons pu l’évaluer, étant très important le technicien nous a dit ne pas pouvoir l’accomplir seul. M. Bartholomé ne semble pas avoir prévu de faire appel à une entreprise extérieure. Nous avons aussi appris lors de notre visite, qu’une personne s’occupait de l’installation informatique sur les 5 laboratoires. Malgré notre demande répétée de renseignements sur l’agencement du réseau, M. Bartholomé ne nous avait jamais fait part de cette information. Cette personne, peu au courant du projet, n’a pas semblé disposée à nous aider. D’autre part, il est maintenant évident que ce projet, mis en place par M. Bartholomé, n’est pas soutenu par tous les autres biologistes. Pour exemple, une biologiste s’est ouvertement opposée à l’idée de « voir courir des câbles supplémentaires dans son laboratoire ». - 43 - Autre exemple : alors que nous prenions les mesures d’une des salles de Vauban, un autre biologiste nous a déclaré que celle-ci devait prochainement subir des travaux, et a conclu « Revenez l’année prochaine », sans même daigner nous regarder. Il parait clair que le commanditaire manque de sérieux et de rigueur, et que son comportement met en péril le bon déroulement du projet. Pour conclure, si nous sommes inquiets pour la bonne conduite de notre projet, nous le sommes encore plus pour nos études. Les problèmes rencontrés avec le commanditaire nous ont déjà fait perdre un temps précieux, au dépend de celle-ci et la situation actuelle ne présage pas d’amélioration, bien au contraire. En tout état de cause, nous tenions à vous dire qu’il nous semble inconsidéré d’effectuer la commande du matériel informatique pour l’entreprise Biopaj, n’ayant aucune garantit sur sa bonne installation. Nous vous précisons que l’étude du système technique à mettre en place, nous intéresse vivement et que nous souhaitons amener la partie conception à son terme. A présent, nous continuons notre travail en ignorant le commanditaire, mais soyez assurés que nous déplorons cette situation. Amélie Chassériaux & Xavier Gruselle Master I Audiovisuel – ISIS. - 44 -