Atelier logiciel : Différence entre versions

De fablabo
Aller à : navigation, rechercher
(Organisation et réalisation du projet)
(Communication avec l'hébergeur)
Ligne 252 : Ligne 252 :
 
La communication avec l'hébergeur s'établit avec un outil de gestion de fichier adapté au '''protocole''' [https://fr.wikipedia.org/wiki/File_Transfer_Protocol '''FTP''' (File Transfert Protocol)]. Il se concrétise avec le logiciel [https://en.wikipedia.org/wiki/FileZilla FileZilla]. Deux sites Filezilla coexistent :
 
La communication avec l'hébergeur s'établit avec un outil de gestion de fichier adapté au '''protocole''' [https://fr.wikipedia.org/wiki/File_Transfer_Protocol '''FTP''' (File Transfert Protocol)]. Il se concrétise avec le logiciel [https://en.wikipedia.org/wiki/FileZilla FileZilla]. Deux sites Filezilla coexistent :
 
* un site français non officiel [http://filezilla.fr/ filezilla.fr]
 
* un site français non officiel [http://filezilla.fr/ filezilla.fr]
* un site anglophone ofhttps://github.com/AIREL46/SCAO/blob/master/wiki/site-web-1.odtficiel [https://filezilla-project.org/ filezilla-project.org]
+
* un site anglophone officiel [https://filezilla-project.org/ filezilla-project.org]
 
Pour Ubuntu, le site français met à disposition un [http://filezilla.fr/tutoriel-filezilla-pour-ubuntu/ tutoriel] qui préconise l'installation du logiciel via :
 
Pour Ubuntu, le site français met à disposition un [http://filezilla.fr/tutoriel-filezilla-pour-ubuntu/ tutoriel] qui préconise l'installation du logiciel via :
 
* les dépôts officiels
 
* les dépôts officiels

Version du 27 décembre 2017 à 17:55


Mise en place des moyens informatiques nécessaires au développement du SCAO

Atelier-logiciel.png

Contributeur·ice·s

Statut du projet

Concept

Statut de la publication

Publié

License

CC-by-sa-3.0 - Creative Commons Attribution CC-by-sa-3.0 France

Inspiration

Atelier de génie logiciel

Fichiers source

Machines

Matériaux

Lien




Objet

L'objet est la mise en place et le MCO des moyens informatiques nécessaires au développement des prototypes du SCAO.

Le matériel

L'atelier logiciel utilise les ressources d'un ordinateur fixe, d'un ordinateur portable et d'une clé USB de 15 GO. Cette clé permet le stockage des fichiers de l'application. Ainsi, par une simple manipulation, les fichiers sont mis à disposition d'un ordinateur ou de l'autre.

L'ordinateur fixe de type PC est équipé de :

L'ordinateur portable de type LDLC MB5-15-8-S2H10 sans système d'exploitation, il est équipé de :

  • Processeur Intel Core i5-4210M (2.6 GHZ / 3.2 GHZ Turbo - Cache 3 MO)
  • 8 GO de mémoire DDR3L (2 X 4 GO)
  • Ecran LED de 13.3 pouces à dalle mate, avec résolution full HD (1920 X 1080)
  • Deux disques durs :
    • SSD mSATA de 240 GO
    • ATA ST1000LM024 HN-M de 1 TO
  • Chipset graphique NVIDIA GeForce GTX 960M avec 2 GO de mémoire dédiée
  • Sortie HDMI
  • Connexion Gigabit Ethernet + communication sans fil WI-FI N et Bluetooth 4.0
  • Clavier chiclet avec touches rétro-éclairées
  • 1 port USB 2.0 + 3 ports USB 3.0
  • lecteur de carte intégré
  • Jusqu'à 5h30 d'autonomie
  • Hauts parleurs intégrés
  • Webcam HD 2 Mégapixels
  • Graveur DVD externe.

Les logiciels

Les systèmes d'exploitation

Les systèmes d'exploitation, en anglais operating system, installés sur l'ordinateur fixe sont Windows XP et Linux. Le maintien de Windows XP est nécessaire à l'utilisation de l'application SCAO, du prototype N°2, développée sous Labview. Windows XP pourra être abandonné lors de l'aboutissement du prototype N°3.

Linux

Un noyau de système d'exploitation, ou simplement noyau, ou kernel (de l'anglais), est une des parties fondamentales du système d'exploitation. Il gère les ressources de l'ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux. Une distribution est un ensemble cohérent de logiciels assemblés autour de ce noyau. Le noyau est le noyau Linux, la distribution choisie est Ubuntu.


The Linux Boot Process

La référence au MOOC The Linux Boot Process est nécessaire pour une bonne compréhension des détails de ce process.

En complément :

Les 2 programmes qui sont successivement exécutés sont le BIOS (carte mère) et le Boot loader.

Le BIOS

Le BIOS contenu dans la mémoire EEPROM de la carte mère de l'ordinateur permet d'effectuer des opérations de base lors de la mise sous tension. En particulier, le POST qui consiste à un ensemble de tests. Lors du déroulement du BIOS, l'appui sur la touche Suppr. permet l'entrée dans le BIOS setup utility pour définir ou modifier un ensemble de paramètres de configuration.

Le Boot loader (Grub)

  • le Boot loader qui correspond à l'exécution du fichier grub (/boot/grub/grub.cfg) qui se trouve sur 512 premiers bytes du disque dur concerné par le boot, les étapes sont :
  • un menu apparaît à l'écran qui invite l'utilisateur à choisir le système d'exploitation (Linux ou Windows XP) ou des tests ainsi que le lancement de Linux en mode "recover".

N.B. : En tapant "c", grub affiche une invite de commande, il est alors possible de modifier des paramètres.

  • Après la temporisation ou le choix de l'utilisateur grub effectue les opérations suivantes :
    • chargement du kernel dans la RAM
    • décompression
    • vérification
    • analyse
    • initialisation des drivers des matériels.

Comme le montre la figure ci-dessous, la génération du fichier /boot/grub/grub.cfg se fait à partir de la commande grub-mkconfig qui prend en compte les options indiquées par l'utilisateur dans le fichier /etc/default/grub ainsi que les différentes "templates" contenues sous le répertoire /etc/grub.d.

Génération du fichier /boot/grub/grub.cfg

Le contenu du fichier /etc/default/Grub est :

Contenu du fichier /etc/default/Grub

Les partitions

L'espace de chaque disque dur est divisé en partitions. Le logiciel GParted permet de gérer ces partitions ainsi que les systèmes de fichiers qui s'y rattachent.

Concernant l'ordinateur fixe, la copie d'écran ci-dessous donne le détail des partitions du disque dur 150 GO :
partitions du disque dur 150 GO

Le détail pour /dev/sda organisé en multiboot (Windows XP et Linux) est :

  • Représentation graphique des partitions, en jaune l'espace occupé, en blanc l'espace disponible
  • Dans le tableau de gauche, informations sur le périphérique
  • Dans le tableau de droite :
    • la partition
    • le système de fichier
    • l'étiquette
    • la taille
    • l'espace utilisé
    • l'espace inutilisé
    • Les drapeaux boot ou lba

La première partition /dev/sda1 utilise le système de fichiers ntfs correspondant au système d'exploitation Windows XP de microsoft. La seconde partition /dev/sda2 est "extended", elle se subdivise en :

  • /dev/sda5 - ntfs - Données -
  • non alloué
  • /dev/sda7 - ext4 correspondant au système d'exploitation Linux
  • /dev/sda8 - Linux-swap correspondant au système d'exploitation Linux
  • /dev/sda6 - ext4 correspondant au système d'exploitation Linux. La partition est quasiment pleine et aurait besoin d'être agrandie, un redimensionnement de la cette partition a été tenté mais la tentative a échouée. Pour cette raison, Linux a été également installé sur le second disque de 500 GO.

Les logiciels applicatifs

La modélisation des pièces constitutives du SCAO mets en œuvre trois logiciels :

  • LibreCAD pour les plans en 2D, pour un même plan, un empilement de calques (en anglais layers) est utilisé, chaque calque ayant sa fonction propre. Les fichiers .dxf facilitent l'échange avec les deux autres logiciels.
  • Openscad pour les dessins en 3D, l'importation des fichiers .dxf est utilisé conjointement à une extrusion linéaire pour constituer des objets 3D. En d'autres termes une extrusion linéaire à partir d'un fichier dxf.
  • kicad pour les circuits imprimés, l'importation des fichiers .dxf est utilisé pour les empreintes de circuits intégrés (footprint).

Ces importations apportent souplesse et précision car elles permettent de définir une fois pour toute les valeurs attribuées aux dimensions, longueurs, largeurs, entraxes, positionnement d'un objet,...etc.

En compléments :

  • Les schémas de la documentation sont réalisées à l'aide du logiciel Inkscape, un exemple de son utilisation est traité ci-dessous.
  • La retouche des photos et les animations sont réalisés à l'aide du logiciel Gimp, par exemple pour réduire la taille du fichier d'une photo suivre la procédure :
    • Lancer GIMP puis ouvrir le fichier .JPG et sélectionner le menu image,
    • -> mode -> couleurs indexées -> convertir en couleurs indexées -> utiliser une palette optimisée pour le web
    • finaliser en exportant le fichier en .png
    • vérifier que la taille du fichier a bien diminuée et que l'image est d'une qualité correcte.
  • La bureautique est assurée par la suite bureautique Libre Office

Schéma partiel avec kicad et Inkscape

A partir du schéma électrique du CI CMS e-p-433 établi avec kicad, l'exemple traite du découpage d'un schéma partiel correspondant à l'amplificateur de thermocouple et de de sa récupération dans un fichier PNG. La procédure est la suivante :

  • Kicad :
    • sudo kicad e-p-433.pro
    • cliquer sur le fichier e-p-433.sch (Ouverture du fichier avec Eschema)
    • Génération du fichier e-p-433.pdf : File - Plot - Plot - Format PDF - Plot all pages.
  • Inkscape :
    • sudo inkscape e-p-433.pdf (importation du fichier e-p-433.pdf dans inkscape)
    • Une femêtre s'ouvre "Préférences pour l'importation du fichier pdf" - Cliquer valider
    • Effectuer une sélection à l'aide d'une fenêtre ajustée au schéma partiel
    • Exporter une image PNG, choisir un nom de fichier, e-p-433-amp.png
    • Vérifier l'image avec "Visionneur d'images" (eog).

Les sauvegardes et les restaurations

Les sauvegardes et les restaurations sont effectuées à l'aide du logiciel déjà dup. La sauvegarde est journalière et automatisée.

La restauration de l'intégralité des fichiers est simple mais peut par contre être longue.

La restauration d'un seul fichier est plus délicate car le fichier de sauvegarde est compressé. Par exemple :

duplicity-new-signatures.20170416T090035Z.to.20170418T091639Z.sigtar.gz

Ce fichier .gz

Avec la commande gunzip (compress or expand files) on obtient le fichier :

duplicity-new-signatures.20170416T090035Z.to.20170418T091639Z.sigtar

Avec la commande tar (stores and extracts files from a tape or disk archive), en fonction des attributs utilisés, on obtient :

  • la liste des fichiers contenus dans l'archive avec -tf
  • la restauration d'un ou plusieurs fichier avec -xf et le nom du répertoire ou du fichier après le nom de l'archive .sigtar

Attention : cette restauration se fait avec toute l'arborescence sous un répertoire nommé "signature".

Les plate-formes

Plate-forme Arduino UNO

Elle est constituée de la carte Arduino UNO complétée du logiciel et de la documentation

Plate-forme Microchip

Elle est traitée en un projet séparé accessible par le lien PIC.

Gestion de versions

Un logiciel de gestion de versions est un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. Il permet notamment de retrouver les différentes versions d'un lot de fichiers connexes.

Il en existe de nombreux, Git est le logiciel créé par Linus Torvald, auteur du Kernel Linux. Il utilise des commandes comme commit, branches, merge...L'hébergement des fichiers sources s'effectue sur GitHub, ce qui permet de collaborer facilement sur des projets qui utilisent des logiciels libres.

La formation recommandé est Gérer son code avec git et github sur Openclassroom.

Les différents étapes pour créer une copie du projet sur le site github :

  • sur le site github créer un nouveau projet baptisé SCAO.
  • Dans un terminal, avec la commande sudo git clone https://github.com/AIREL46/SCAO importer ce nouveau projet.
  • A partir du contenu de la clé USB /media/leruste/SAUVEGARDE1/Données/SCAO, faire une copie du répertoire Ping qui contient les 2 sous répertoires LibreCAD et openscad ainsi que le fichier Thumbs.db en utilisant  :
    • sudo git add "nom du répertoire ou du fichier"
    • sudo git commit -am "message du commit"
    • Quand la même séquence est répétée pour les 2 répertoires et le fichier, taper la commande sudo git push origin master pour envoyer sur le site github.
  • Répéter la même procédure pour tous les sous-répertoires de SCAO.

Un message de warning est affiché :

File Plan-de-management/plan de management.odt is 53.71 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB

La préconisation est :

You may want to try Git Large File Storage - https://git-lfs.github.com.

Après l'installation du paquet, lors de l'exécution de la commande :

  • sudo git lfs install

une erreur survient :

/usr/local/bin/git-lfs: 1: /usr/local/bin/git-lfs: Syntax error: Unterminated quoted string

Malgré l'erreur, je teste :

  • sudo git add Plan-de-management/plan-de-management.odt
  • sudo git commit "Ajouter fichier > 50MO plan-de-management.odt"
  • sudo git push origin master

Dans Github, je retouve le fichier avec les commentaires : View raw (Sorry about that, but we can’t show files that are this big right now.)

Je clique sur View raw, la fenêtre suivante s'ouvre :

Ouvrir en lecture seule un fichier de plus de 50MO

Si :

  • je choisi Ouvrir avec LibreOffice Writer, le fichier est visualisé.
  • je choisi Enregistrer le fichier, le fichier est téléchargé et disponible dans le répertoire Téléchargements.

Je fais le même test avec le fichier plan de management_old.doc qui n'a pas fait l'objet d'un nouveau "push", le résultat est le même. Conclusion : les fichiers de plus de 50 MO sont mémorisés, par contre, ils sont visualisables qu'après un téléchargement. Donc, le paquet git-lfs n'est pas opérationnel.

Je laisse tomber git-lfs et j'en profite pour faire un peu de nettoyage.

Je supprime des fichiers inutiles, le premier :

Plan-de-management/plan de management.odt avec la commande :

  • sudo git rm Plan-de-management/plan de management.odt

ça ne marche pas parce que Ubuntu n'aime pas les espaces, je contourne la difficulté avec :

  • sudo git rm Plan-de-management/"plan de management.odt"

Les suivants :

  • Plan-de-management/plan de management_old.doc
  • BOINC/BOINC.odt.

Site web

Objet

L'objet du site web est de constituer une vitrine qui permette la promotion et la communication du concept culinaire Quiet cook et du SCAO qui lui est attaché.

Contexte de travail

Organisation et réalisation du projet

L'organisation d'un projet web repose sur les différentes étapes de conduite du projet, lancement, conception, réalisation, production et exploitation.

La réalisation consiste à :

  • choisir un hébergeur web dont les prestations sont :
    • la réservation et gestion d'un nom de domaine
    • la mise en œuvre d'une infrastructure d'hébergement permettant la publication du site
  • communiquer avec l'hébergeur
  • développer l'interface utilisateur (frontend), la partie visible dans le navigateur
  • développer l'arrière plan (backend), la partie qui fonctionne côté serveur.

Choix de l'hébergeur web

Icann

liste registrar

liste hébergeur linux

Communication avec l'hébergeur

La communication avec l'hébergeur s'établit avec un outil de gestion de fichier adapté au protocole FTP (File Transfert Protocol). Il se concrétise avec le logiciel FileZilla. Deux sites Filezilla coexistent :

Pour Ubuntu, le site français met à disposition un tutoriel qui préconise l'installation du logiciel via :

  • les dépôts officiels
  • l'archive du site filezilla
  • un PPA.

J'ai exploré les 3 possibilités :

  • Via les dépots officiels, c'est la méthode la plus sûre, la version installée fin décembre 2017 est la 3.15.0.2, compiled on 2016-02-25
  • Via l'archive du site filezilla, la version escomptée à la même date que ci-dessus et la 3.29.0, la tentative effectuée sur l'ordinateur portable s'est soldé par un échec, ci-dessous le message d'erreur lors du lancement puis l'explication du forum :
    • "filezilla: error while loading shared libraries: libpng16.so.16: cannot open shared object file: No such file or directory"
    • "The official binaries are built for Debian 9 or compatible. Please upgrade to Debian 9 or a compatible Linux distribution or compile FileZilla from source."
  • Via un PPA, cette possibilité laisse espérer une version intermédiaire entre les 2 citées ci-dessus. Je n'ai pas réussi à finaliser cette possibilité.

Conclusion :

  • sur l'ordinateur fixe, je garde la version des dépôts officiels
  • sur l'ordinateur portable, j'ai supprimé la version de l'archive du site filezilla et je l'ai replacé par la version des dépôts officiels.

Développement de l'interface utilisateur (frontend)

Le développement de l'interface utilisateur est réalisé à partir :

  • l'édition du html et du css avec l'éditeur gedit en tapant dans un premier terminal :
    • gedit SCAO/wiki/tp_quiet-cook/index.html SCAO/wiki/tp_quiet-cook/style.css
  • l'affichage du rendu à l'écran à l'aide du navigateur firefox en tapant dans un deuxième terminal :
    • firefox SCAO/wiki/tp_quiet-cook/index.html

Les fichiers du répertoire tp_quit-cook sont disponibles sur le site Github

Pour déclarer la langue dans le fichier html.

Développer l'arrière plan (backend)