URL: https://linuxfr.org/users/hdsdi3g/journaux/evolution-et-maturation-de-mydmam Title: Évolution et maturation de MyDMAM Authors: Media ex Machina Date: 2017年03月21日T23:18:39+01:00 License: CC By-SA Tags: mydmam et debian Score: 15> MyDMAM est système de gestion de médias centralisé que je développe seul depuis quelques années. J'avais déjà [écrit ici](https://linuxfr.org/users/hdsdi3g/journaux/presentation-de-mon-projet-perso-de-dmam-libre-mydmam) il y a quelque temps un article de présentation. Voici des nouvelles fraiches. # Les changements depuis un an # - L'ajout d'un [système de watchfolder distribué](http://mydmam.org/setup/watchfolder-distribue), pour transcoder des médias depuis un dossier via plusieurs machines sans qu'elles se marchent sur les pieds. - L'intégration d'un [serveur FTP](http://mydmam.org/setup/serveur-ftp-integre) (Apache Mina / FTPd) (protocole encore utilisé dans le monde des médias) qui permet de suivre facilement l'activité des comptes depuis une page web. - L'[analyse du loudness audio](http://mydmam.org/2016/04/git-master-branch-update-v0-16), transparent et applicable massivement sur des dossiers contenant des fichiers vidéo et audio. En utilisant la libebur128, via ffmpeg, je récupère et remonte en base de donnée des statistiques de LUFS, de niveaux audio et de courbes de loudness. - L'analyse plus poussée des fichiers MXF via la BMX BBC MXF. - La prise en charge du système archivage sur bandes (propriétaire) Active Circle dans la navigation de fichiers et la recherche intégrée. - Quelques corrections de bug, du refactoring, beaucoup de refactoring : la stabilité étant ma première préoccupation. # Et une nouvelle version vient d'être publiée # Cette nouvelle version est la première à proposer des [archives téléchargeables](http://mydmam.org/downloads/) depuis le site, et comportant un script de préparation à lancer après l'extraction. Pour ce faire, un gros travail a été fourni pour créer une méthode de build permettant la génération et de téléchargement d'archives zip/tar.gz prêtes à l'emploi, téléchargeables. Ce nouveau mode de package dispense de l'installation préalable d'une JVM et du déploiement de Play ! Framework car ils sont inclus dans les archives. Il n'y a plus non plus de dépendance avec Git pour l’installation. Il facilite aussi le déploiement de zéro car il y a aussi un package pour les bases de données testé et prêt à l’emploi. Tous les packages sont préparés pour Windows, macOS et Linux, mais n'ont été testé que sous Linux Debian 8 pour le moment. L'ancienne approche basée sur le code, via git, et reposant toujours sur Play 1 reste possible, notamment dans un cadre de développement (votre IDE compilera). Plus techniquement, cette version marque d'abord la fin de la refonte de du moteur de l'interface web. L'objectif était de passer d'une façon de générer des pages à une autre. Plus précisément ? de passer à un mode ou les pages web étaient générés côté serveur tout en ayant une petite interactivité côté client avec jQuery, vers un mode ou l'ensemble de l'interface est téléchargée et générée côté client, avec React JS, et l'interaction avec le serveur ne se fait plus que grâce à des échanges dynamiques de données les plus petits et les plus rapides possibles. Visuellement, ce que ça change ? Pas grand-chose, l'interface reste la même. Mais elle est devenue beaucoup plus rapide dans la navigation entre les éléments et les pages. Cette transition permet beaucoup de choses : - l'utilisation ici de React facilite beaucoup le développement d'interfaces complexes, et accélère la réactivité des pages pour l'utilisateur. - comme toutes les infos échangées par le serveur passent par des données optimisées pour cela (messages json), il sera facile de bâtir une API HTTP REST plus tard. - l'ancien mode reste disponible pour d'autres besoins, soit en injectant du contenu html dans React, soit en générant des pages de 0 sans React (mais toujours sous la protection des sessions) avec Groovy. Enfin, une correction et amélioration de la méthode de session utilisée dans Play, avec un contrôle stricte de la durée d'une session, et la gestion de la déconnexion côté client/javascript. Pas de révolution, juste de l'évolution. Je dispose maintenant d'un socle fonctionnel, évolutif et stable. A moi maintenant d'ajouter plus de fonctions et de possibilités _renversantes_ ; ce ne sont pas les idées qui manquent ! Enfin, il y a quand même une révolution : on peut quand même déployer MyDMAM en quelques minutes (testé sur Debian 8) ! Et même s'il y en aura jamais assez, j'ai écrit un peu de doc, notamment sur la [performance](http://mydmam.org/setup/performance-tips-for-production/) et la [sécurité](http://mydmam.org/setup/security-recommendations/).