Category Archives: News

Projet news and general announcements.

Git master branch update v0.22

Some bug corrections and lightweight improvements:

  • Create User Preferences API in JS side (#275)
  • Get and display in CLI the Git history from the last tag (#272)
  • Correct error message log for ExecBinaryPath API (#274)

Bugs

  • BroadcastAutomation Engine (BCA) don’t catch correctly events (#276)
  • Play dev mode shouldn’t remove privileges at start (#273)

No changes for configuration and not upgrade notes. Download this version from the specific page.

Git master branch update v0.21

This new version debug and improve some points.

New functions:

Improvements:

  • Can delete an User in auth view (#257)
  • Change the Search Box behavior in website (#254)
  • Change font for website titles (#260)
  • Babel processing in parallel (#261)
  • Add revision query string for static http items (#266)
  • Remove InternalTaskQueue API (#267)
  • Add regular refresh (propertycatch) for BCA (#268)
  • Add Exit for all static class block where exception are fatal, like db init (#269)
  • Correct ThreadPoolExecutor init with start pool size > 1 (#271)

Bug corrections:

  • Remove the unwanted “Background services” label name in manager (#253)
  • Add new forbidden chars for search (#256)
  • JSX transpiler driver stacktraces are not correctly created and displayed in webpages (#258)
  • In Dev mode, display Refresh and Go to login buttons (#263)
  • In build.xml, (in setup) Java JRE linux overwrite Windows JRE (#264)
  • Before start file analysis, check if it can be analysed (read/write) else warn + ignore it (#270)

Upgrade notes:

#252 You should set a login and a password for all AD backends (in play.yml).
#268 Remove CLI bca -propertycatch
#268 Remove configuration key broadcast_automation.catch_playlist_to_parse

Prochains objectifs pour MyDMAM

Il est important de définir de temps en temps un objectif clair pour savoir dans quelle direction avancer. MyDMAM évolue lentement mais sûrement, et j’ai toujours fait attention à ne pas enfermer son développement vers des objectifs trop éloignés ou hors de mon champ de besoin actuel.

Voici la roadmap que je prévois de suivre :

  • Finir la nouvelle fonctionnalité de Rapport d’activité quotidien (j’en parlerais avec plus de détails plus tard)
  • Corriger les quelques bugs en suspends
  • Implémenter un processus de mise à jour simplifiée
  • Implémenter les Préférences utilisateur, afin de donner des paramètres que l’utilisateur de l’interface web puisse changer et qui soient conservés en base (c’est à dire persistant entre les sessions)
  • Implémenter un vrai navigateur de médias, avec l’affichage des vignettes, métadonnées et autres. Une vue qui soit la plus personnalisable possible, avec le choix des champs à afficher, de la taille, et un choix de thèmes de couleur. Il s’agit-là d’une vraie refonte graphique avec une réflexion sur l’UX (user experience) de MyDMAM.

Il y aura sûrement des bugs à corriger côté analyse de métadonnées. Notamment au niveau de l’analyse d’images que j’ai encore assez peu fait fonctionner.

Une fois tout ceci fait, MyDMAM sera en beta. La v1 sortira une fois que les derniers bugs connus seront corrigés. Le cycle de développement sera plus linéaire car il y aura une distinction entre les versions majeures, mineures, et les patchs. Les bugs pourront être corrigés au fil de l’eau car le processus de release sera simplifié.

Il n’y a pas de dates prévues car cela dépends de beaucoup de paramètres indépendant de ma volonté.

Git master branch update v0.20

A new version with some improvements and refactoring:

  • Upgrade React lib to a newer version (#171) and adapt the JSX current code
  • Ends the works on Playlist/Asrun watcher (broadcast automation) (#201)
  • Refactor OP ATOM to OP1A Wrapper XML based (#208) (stupid MXF OPAtom files)
  • Remove H2 db tools in CLI (#244)
  • Add a CLI option for can truncate watchfolder founded file list in database (#245)
  • An high-tech new function : Ends log files with a message before rolling (#246)
  • Remove old java reflexion tools from AppManager and replace it by Factory (#247)
  • Add the possibility of being able to stop/start watchfolder via Instance Action (#250)

And the classic bug corrections:

  • FTP Deleted user can’t be re-added (#239) and  an other silly bug
  • Play bootstrap can’t init in dev mode (#240)
  • Play warn an invalid error during Dev mod startup (#249)
  • Web page don’t display personalized messages (#241)
  • Sometimes Task-require-error-closer engine in Queue found false positive Job to close (#243)
  • Correct i18n personalized messages for static pages (#248)
  • Instance status engine don’t display current instance (web server) real status (#251)

And add a new wonderful function:

  • Add a background picture (#242) in login page !

Upgrade notes:

#239 FTP server admin (in Play side) can create FTP account user directories. Just add some ftpservergroups/group name/base_working_dir keys in configuration.
#246 Set MyRollingFileAppender for new log appender if you want display an end-of-file message before rolling. Useful with a tail option.
#208 Add watchfolderopts.max_founded_items and dontkeepdone configuration entry for limit big watchfolders job explosion
#208 Add ffprobe-jaxb-1.0.jar to classpath

Git master branch update v0.19

A big update.

Not some bigger newer tools, but a real build process with downloadable packages. A big refactoring with the end of old-style Groovy pages, a new access to for code Gson, new dynamic class instantiations…

In changes:

  • Refactor UI (remove Groovy for React) and remove Module API (#199) and Big code cleaning for prepare beta version (#234)
  • A very specific tool, BCA: Create Playlist/Asrun watcher (broadcast automation) (#201)
  • Correct some bugs: #236, #237#238.

For update information, please read the UPGRADE.txt provided with the code.

Nouveaux articles sur le site

…et mise à jour d’anciens articles.

Le plus important, c’est la réécriture du process de téléchargement de MyDMAM, celui des bases de donnée, et du process d’installation.

Nouveautés

Mises à jour

 

Git master branch update v0.17

A new version, after a long time.

Some big refactoring:

  • Refactor User API and ACLs (#173)
  • Prepare User refactoring with an on-the-fly db export (#194)
  • Remove old school Publish function (#200)
  • Remove deprecated JS engines and use Babel JS (#156)
  • Refactor UI and remove Groovy for React (#199)

Some bug correction / security improvements:

  • Play server can’t start with Windows (#195)
  • Troubles during metadata analyst if the file is locked (#196)
  • Enable mkv (Matroska) and WebM file type for ffmpeg processing (#197)
  • Password API and generator should not manipulate/validate weak passwords (#198)
  • Manage domains with SMB client (#202)
  • Add option for ignore all activity trace in some FTP accounts (#203)
  • Correct bug with NodeJS execution and OSX (#207)
  • Correct Windows Media Audio detection probe (#204)
  • Correct bug with ffprobe and dates (#216 and #217)

And some new functions;

  • Use BBC BMX Tools for wrap OP ATOM to OP1A (#17 8)
  • Enhancements for watchfolders (#186)
  • Create Archive Circle API helper (#206)
  • Re-open the bug correction #7 and add an option for remove all metadatas from empty storages and removed storages

MyDMAM a 4 ans

Déjà 4 ans. Un petit anniversaire compte tenu qu’il n’y a pas eu beaucoup de changement en un an. Je n’ai pas eu le temps que j’eusse souhaité cette année pour progresser autant que je l’aurai voulu. Mais j’ai quasiment rempli mes estimations de 2015.

Mais MyDMAM a tout de même évolué, et on peut notamment relever comme nouveauté :

  • Un serveur FTP intégré à MyDMAM, avec une vraie interface de configuration, un suivi d’activité, une gestion de compte, etc… J’ai assez de recul en prod pour dire qu’il est parfaitement stable. Il repose sur Apache FTP Server en interne.
  • Un moteur de watchfolder pour du transcodage via ffmpeg, et distribué. J’ai ajouté une API pour faire traiter un fichier détecté par Java (en y ajoutant le code métier que l’on veut : ProcessingKit). J’ai prévu un moteur pour wrapper des MXF OPAtoms en OP1A, via un XML dans un watchfolder.
  • Le calcul et l’affichage du loudness aux normes broadcast EBU/UER R128, via la libebur128 de fichiers audio et vidéo, sur tous les canaux audio. Ce traitement est une analyse (ainsi qu’un rendu, pour être précis) de Metadatas, au sens MyDMAM. Cela veut dire qu’il peut être appliqué sur l’ensemble des fichiers d’un dossier, en arrière-plan, automatiquement au fur et à mesure qu’il y a des fichiers.
  • La localisation d’un fichier archivé sur bande LTO en utilisant l’API HTTP REST/Json d’Active Circle (l’utilisation est bien sûr facultative mais nécessite une installation Active Circle et l’option ACAPI).

Et de façon plus technique :

  • Une présence de React encore plus forte dans le code du front-end web : les pages en Groovy de Play ont quasiment disparues. La navigation est devenue beaucoup plus fluide. On peut noter la présence, en full React :
    • Du navigateur de fichiers (ainsi que la consultation des fichiers image, audio, video et loudness)
    • Du moteur de recherche
    • Du suivi des watchfolders
    • Du suivi des taches et des instances. Ces nouvelles pages sont beaucoup plus pratiques et rapides que les anciennes
    • De la gestion des utilisateurs et de leurs droits
    • De suivi FTP
  • Le remplacement de JSXTransformer ainsi que la suppression de YUICompressor (et sa dépendance à Rhino) pour l’utilisation de Babel via Node JS. L’intégration de Babel est transparente (MyDMAM Server va s’occuper de le télécharger et de l’installer tout seul avec le pilotage de Node JS) et facultative, car la version transpilée, réduite et compressée de toutes les sources JS est fournie dans le code. Les opérations sur les JSX sont toujours transparentes et dynamiques, mais faites avec Babel. On peut même imaginer écrire dans d’autres langages des fonctions pour l’interface Web de MyDMAM, du moment ou Babel les transpilent en JS compatible.
  • MyDMAM Server lance… Play dans la même JVM. Plus simple pour de l’admin car jusqu’à présent : bash lance Java qui lance MyDMAM qui lance Python qui lance Java qui lance Play. On aura donc bash lance Java qui lance MyDMAM qui lance Play.
  • Pleins de bugs avec Windows ont été corrigés, la plupart portent sur l’utilisation du “/” au lieu du “\” et du “;” au lieu du “:”.

Tout ceci pour préparer la fin de Play v1, de Groovy, de Bootstrap v2.

Dans la course à obsolescence, on en est actuellement à ce point :

  • Play 1 : il reste quelques pages en Groovy, et certaines fonctions comme le Basket ou les préférences utilisateur n’ont pas été refaites en React. Ce n’est pas le plus urgent car le développement autour de Play 1 est toujours actif (correction de bugs) est n’est pas encore abandonné.
  • Bootstrap 2 : c’est à tester et à adapter. C’est, à mon sens, le moins urgent de tous.
  • JSXTransformer : terminé, remplacé par Babel.
  • YUICompressor : terminé, remplacé par Babel. Son jar et celui de Rhino peuvent être retirés.
  • Cassandra 1 : est réclamé par Astyanax, cependant :
  • Astyanax a été déclaré par Netflix comme étant déprécié. Astyanax est le moteur historique de MyDMAM sur tout un tas de points comme la gestion des taches ou les comptes utilisateur. D’autre part, Cassandra 2 et 3 et leurs approches CQL, vont demander un gros travail de R&D juste pour déterminer si c’est viable de basculer vers la version 3 de Cassandra dans MyDMAM, puis le travail pour l’adaptation dans MyDMAM pour remplacer les appels à Astyanax en CQL. La solution serait donc de penser hors Cassandra, et cela va peut-être revenir à une solution maison.
  • Elasticsearch 1 : des tests sont nécessaires pour l’upgrade v2 et plus, et il y aura de toute façon un refactoring avec la nouvelle API. L’urgence est moyenne.
  • Java 8 : MyDMAM ne fonctionne qu’avec Java 8. Je n’ai pas vu d’obsolescence à problème coté Java 9 pas-encore-sorti.
  • React 0.13.2 : l’évolution devra être faite rapidement. Je sais déjà que je vais devoir faire quelques corrections, mais rien de très méchant normalement. La transition sera facilitée dans le sens ou les versions de dev. de React affichent des warning sur tout ce qui ne devrai plus être fait. Quand il n’y a plus de warning qui s’affiche, on monte d’une version !

Ces points sont plus les prioritaires par rapport à de nouvelles fonctions. De ce côté, les idées ne manque pas :

  • Intégration API Telestream Vantage, et aller-retours entre Vantage et MyDMAM (Metadatas et ffmpeg)
  • Intégration API Interplay, avec check-ins, import-export de master clips et d’Atoms, delivery, locators…
  • Réduire la masse de code en static, afin d’avoir des Factories en Java et la possibilité de faire des tests unitaires. Bref, augmenter la qualité du code et permettre une configuration globale plutôt que limitée à des fichiers textes et un reboot de l’appli à chaque modification. L’idée aussi serai de permettre d’ajout de code personnalisé un peu n’importe où plutôt que d’utiliser une API de Modules limitée.
  • Remonter et Afficher une playlist venant d’une automation TV broadcast (SAM Morpheus en l’occurrence). Oui, c’est spécifique, mais j’en ai besoin…
  • Ajouter des filtres conditionnels dans le moteur de Transcodage afin que MyDMAM propose des fonctionnalités plus avancés (comme la gestion des pistes audio, le format de l’image, la correction de l’entrelacement, l’ajout d’un logo) que ffmpeg permet et qu’il faut juste lui demander.
  • Et bien d’autres choses ! Et peut-être même une vue en vignette dans la navigation de fichiers !