Myriad Blog 1.3.0 Wednesday, Jun 29th, 2016 at 06:28pm 

Dev News Thursday, Jun 2nd, 2016 at 05:01pm
Harmony 9.6 étape 902 / MUSL

 
Nous avons commencé à convertir les accès au MUSL vers le nouveau format d'export de partitions, le format myrweb.
 
Nous avons mis en place une version "bac à sable" du site sur nos machines locales afin de pouvoir travailler sans crainte de casser des pages visibles publiquement.
 
Coté serveur, les script qui s'occupent de la génération des pages Web ont été repris, ainsi que les modèles de pages. Globalement, il y a eu très peu de modifications à faire.
 
Coté Harmony Assistant, c'est à peine plus compliqué. Il a fallu, plutôt que d'envoyer directement le fichier MYR, le convertir d'abord en format myrweb.  
 
Mais deux problèmes demeurent :  
 
- Comment convertir l'intégralité des fichiers déjà publiés par chaque utilisateur ?  
Une procédure automatique effectuera-t-elle cette conversion à la première connexion de l'utilisateur sur son espace avec la nouvelle version d'Harmony ? Que se passera-t-il si la place occupée dépasse le quota attribué (pour l'instant, 20Mo)?
Ou bien doit-on se charger nous-mêmes de la conversion de l'ensemble du MUSL ? Avec ses centaines d'heures de musique cumulées, cela va alors probablement prendre au moins une journée complète (probablement plusieurs jours) !
 
- Comment faire tester le nouveau MUSL dans la prochaine beta, sans altérer les pages Web existantes ? Cela va probablement nous obliger à mettre en place un bac à sable, public cette fois, qui permettra aux beta-testeurs de procéder sans crainte à leurs essais.
by Olivier Guillion
 1 comment.

Dev News Monday, Jun 6th, 2016 at 04:53pm
Harmony 9.6 étape 904

 
Comme entamé la semaine dernière, nous traitons, par le Jukebox, des listes de plusieurs milliers de documents musicaux que nous lisons, exportons, et dont nous récupérons toutes les informations possibles.
 
Sur Windows, en phase de développement, nous avons créé un outil de gestion mémoire qui protège physiquement de tous les accès illégaux (lecture ou écriture qui dépasse une zone mémoire normalement allouée). Alors qu'une version publique pourrait fonctionner, et ne planter qu'une fois sur 100, cette gestion mémoire est hypersensible, et génèrera un crash à la moindre irrégularité.  
Sur un traitement de plusieurs milliers de fichiers, il y a donc de bonnes chances que, s'il y a un bug quelque part, il soit mis en évidence. Ceci nous a d'ailleurs d'ores et déjà permis d'en trouver et corriger quelques-uns.
 
Seule ombre au tableau : les opérations très demandeuses en mémoire deviennent de 5 à 10 fois plus lentes, ce qui, pour des traitements en masse, signifie que nous devons attendre le résultat de l'opération 1/4h au lieu de 2 mn.
by Olivier Guillion

Dev News Thursday, Jun 9th, 2016 at 05:07pm
Harmony 9.6 étape 906 / MUSL

 
Nous avons pu établir quelques statistiques sur l'état actuel des espaces utilisateur, et projeter ce que cela pourra donner après conversion des partitions au format Myrweb.
 
L'espace actuellement réservé à chaque compte d'utilisateur est de 20Mo. Inutile de dire qu'avec le nouveau format, qui inclut les données MP3 de l'ensemble du morceau, une capacité aussi faible poserait quelques problèmes.
 
Nous avons donc fait des projections sur les comptes existants.  
Si on fixe la limite à :
  • 100 Mo, 25% des comptes dépassent
  • 200 Mo, 20% des comptes dépassent
  • 500 Mo, 10% des comptes dépassent
  • 1 Go, 5% des comptes dépassent
     
    Si on analyse ces gros, gros comptes, on se rend compte que plusieurs d'entre eux parviennent à une telle taille parce que certaines partitions durent plusieurs heures, et un MP3 de plusieurs heures, ça occupe de la place. Il s'agit de partitions bouclées de manière infinie par un saut inconditionnel au début lorsqu'on atteint la fin.  Ainsi la palme revient à un utilisateur, qui cumule ainsi 260 heures de musique (14 Go) !
    Nous cherchons un moyen de détecter et de traiter particulièrement ces morceaux pour éviter qu'ils n'explosent tous les quotas.
     
    Malgré cela, l'ensemble des morceaux du MUSL va tout de même occuper plusieurs dizaines de Go, trop pour être supportable sur notre hébergement actuel.
     
    Nous allons donc probablement:
     
    - Fixer un quota assez élevé, entre 300 Mo et 1 Go
     
    - Prendre un autre hébergement pour stocker les fichiers myrweb
     
    - Proposer une option "premium" payante (peut-être par un abonnement annuel très peu cher), avec par exemple un quota de 10 Go, qui nous aidera à payer le nouvel hébergement.
     
    L'avantage est que plus il y aura d'abonnements premium au MUSL, plus nous aurons besoin d'espace, mais plus nous aurons de sous pour le payer
     
    Reste enfin le problème de l'espace privé, qui permet d'avoir une section accessible seulement par mot de passe. Lorsque les pages Web et les fichiers étaient au même endroit, la même authentification protégeait les deux. Mais si les données sont délocalisées ailleurs, ça devient plus compliqué de protéger les .myrweb eux-mêmes. Pour l'instant, trois options :  
    - soit ils ne sont pas protégés, et quelqu'un qui connaît leur URL peut alors les récupérer,  
     
    - soit les fichiers de l'espace privé restent sur le même serveur que les pages, mais on doit en limiter drastiquement la taille  
     
    - soit on supprime la fonctionnalité d'espace privé
  • by Olivier Guillion
     6 comments.

    Dev News Monday, Jun 13th, 2016 at 05:19pm
    Harmony 9.6 étape 908

     
     
    Correction d'une saturation mémoire lors de l'export en MusicXML d'images incluses dans une partition :
    Harmony Assistant gère les formats d'image vectoriels ou compressés. Ces images peuvent être extrêmement grandes, mais être gérées sans avoir besoin d'une place mémoire importante.
     
    En export MusicXML, nous sommes obligés de tracer ces images sur une zone mémoire non compressés, pour ensuite les inclure dans le fichier.
    Imaginons une image de 12000 par 10000 pixels. La zone mémoire de tracé devra faire 12000x10000 = 120 000 000 (120 millions) de pixels. A raison de 3 composantes (rouge, vert, bleu) par pixel, la zone mémoire devra faire 120x2= 360 Mo. S'il y a 10 images comme ça dans la partition, on atteint les 3.6 Go. Lourd. La mémoire sature, et la gestion de cette zone énorme prend un temps tout aussi énorme.  
     
    Nous avons donc modifié l'export afin de limiter la taille des grandes images, en dégradant un peu leur qualité, et minimisant ainsi l'empreinte mémoire (ainsi que la taille du fichier MusicXML résultat, par la même occasion)
    by Olivier Guillion

    Dev News Thursday, Jun 16th, 2016 at 04:47pm
    Harmony 9.6 étape 910, format Myrweb

     
    Nous avons beaucoup réfléchi à la manière la plus simple de présenter le format Myrweb, qui permet de proposer des partitions visibles dans un navigateur Internet. Ces réflexions nous ont amené à quelques changements d'optique.
     
    Comment ça marche ?
     
    Techniquement, la partition est exportée sous forme d'un bloc binaire (métafichier) contenant toutes les informations nécessaire à son affichage et à son jeu. Nous avions baptisé ce format binaire "myrweb"
     
    Pour lire ces informations et les traduire en une page de musique à l'écran, ou faire entendre l'audio depuis un navigateur Internet, on a besoin d'une app, écrite en Javascript, qui ne nécessite pas que l'utilisateur installe un quelconque programme ou plug-in sur son ordinateur.
     
    On a alors deux possibilités:
     
    - Soit les données des partitions sont stockées à part, et on a alors d'un coté des pages Web, contenant les textes explicatifs et autres habillage, et de l'autre les  fichiers de données, un par partition. La page Web, lorsqu'elle est visualisée, lit alors les données de la partition et les présent à l'écran ou les joue
     
    - Soit les données binaires des partitions sont stockées à l'intérieur de la page Web elle-même. On obtient alors un fichier totalement autonome. Un double-clic dessus ouvre un navigateur et montre la partition jouable. Ce fichier peut facilement être transmis par mail, sur une clé USB, etc.
     
    Ce que nous avions prévu de faire
     
    Nous comptions donc proposer à l'utilisateur deux exports de partition:
     
    - Un export du bloc binaire Myrweb, qui nécessitait ensuite d'être chargé par une page Web distincte pour être visualisé
     
    - Un export de la page Web autonome, contenant les données Myrweb, et destinée à être échangée, transmise par mail, etc
     
    Mais les deux notions étaient un peu trop complexes, difficiles à expliquer, et l'export binaire n'était utile qu'aux Webmasters.
     
    Ce que nous allons faire à la place
     
    Un seul format d'export sera disponible, le format en page Web autonome. Les fichiers de ce format porteront l'extension .myrweb.html et seront double-cliquables pour être visualisées dans un navigateur, sans rien nécessiter de plus.
    C'est ce format qui prendra, dans Harmony Assistant, le nom d'export "myrweb"
     
    L'export sous forme de bloc binaire disparaîtra, et ne sera plus proposé.
     
    Les webmasters qui désirent séparer les pages Web des partitions qu'elles présentent pourront toujours le faire. Dans ce cas, l'app lira le fichier .myrweb.html, récupèrera à l'intérieur les données du bloc binaire qui y sont stockées, et utilisera ces données comme avant.
    Du point de vue du webmaster, il n'y aura donc aucune difficulté supplémentaire par rapport à la solution que nous envisagions précédemment.
     
    En conclusion
     
    Mis à part une légère augmentation de la taille des fichiers exportés, cette nouvelle manière d'envisager l'export n'aura que des avantages, le principal étant que l'utilisateur de base n'aura pas à se soucier de la technologie employée. Il exportera sa partition, et pourra la transmettre à n'importe qui, en étant certain que le morceau sera visible et jouable par son correspondant, par simple double-clic.
    by Olivier Guillion
     4 comments.

    Dev News Monday, Jun 20th, 2016 at 04:59pm
    Harmony 9.6 et autre étape 912

     
    Dans l'export SVG et Myrweb, des irrégularités ont été détectées dans la gestion de certaines images. Un problème ainsi repéré sur les images en couleurs directes 15/16 bits (5 bits par composante) nous a fait remarquer que ces images n'étaient pas affichées, à l'écran, avec les bonnes couleurs sur Windows et Linux. Le problème date probablement des origines de notre librairie de compatibilité "ACAM", dans les années 90-91. Preuve que ce format d'image n'est pas si courant !
     
    Les instruments utilisateurs de certains très vieux fichiers refusaient de se charger. Un contournement nous permet maintenant de les lire sans crash, mais leurs données semblent abîmées, dans les premiers dixièmes de seconde. Nous ne savons pas si les données sont réellement abîmées ou si nous les lisons mal, et nous ne savons pas non plus combien de fichiers sont ainsi affectés.
    by Olivier Guillion
     Leave a comment.

    Dev News Wednesday, Jun 22nd, 2016 at 05:02pm
    Harmony 9.6 étape 914

     
  • Correction de l'export SVG/Myrweb de petites images noir et blanc
     
  • Correction de la gestion de la palette "Altérations", en palette individuelle et dans le Dock
     
  • Correction d'un crash du dock lorsque le dernier document était fermé
     
     
    Enfin, autre registre, la base GOLD s'installait difficilement lorsqu'elle était téléchargée avec Edge depuis Windows 10. Ce dernier semble extrèmement sensible à la moindre irrégularité dans les signatures électroniques. La base GOLD a donc été re-signée, et la nouvelle version a été mise à disposition.
  • by Olivier Guillion
     Leave a comment.

    Dev News Friday, Jun 24th, 2016 at 04:59pm
    Harmony 9.6 étape 916

     
    Pour rendre la gestion des espaces utilisateurs beaucoup plus souple, nous avons écrit un module en Perl qui permet au serveur principal du MUSL de communiquer avec des serveurs secondaires, et d'échanger des fichiers.
    Ceci va nous permettre de répartir sur plusieurs sites les fichiers de données, qui peuvent être très volumineux. Cette répartition nous permettra :
     
    - d'offrir par défaut aux utilisateurs un espace plus confortable pour loger leurs partitions
     
    - d'augmenter plus facilement l'espace total disponible lorsque cela devient nécessaire, par l'adjonction de nouveaux serveurs
     
    Mais la mise au point de tout cela s'avère difficile, car les opérations de gestion du MUSL étaient déjà assez compliquées, et, étant intimement liées à Harmony, ne peuvent pas être testées en dehors du programme. Mais on avance...
     
    Bon week-end !
    by Olivier Guillion
     1 comment.

    Dev News Tuesday, Jun 28th, 2016 at 05:03pm
    Harmony 9.6 étape 918 / MUSL

     
    Dans la prochaine version beta, nous voulons permettre aux testeurs d'essayer la procédure de conversion de leur espace MUSL vers les nouveaux formats de fichiers en ligne.
     
    Mais nous voulons à tout prix préserver leur espace d'origine, pour éviter que s'il y a un grain de sable dans les rouages, ils ne se retrouvent pas avec un espace Web à moitié fonctionnel.
     
    Il faut donc que la version beta travaille sur une copie du MUSL. Cela nécessite de recopier les quelques gigaoctets de données sur un serveur à part, de permettre d'y travailler comme s'il s'agissait du serveur public, et d'en vérifier les résultats.
     
    Après mûre réflexion, nous avons opté pour une copie hébergée directement ici, dans nos bureaux. Les avantages sont multiples:
  • La place n'est pas un souci (on a de gros disques dur)
  • Il nous est facile de recopier l'intégralité du MUSL pour tout remettre au propre, puisqu'il s'agit alors de copies de fichiers en local, beaucoup plus rapide qu'un upload
  • Nous avons plus de contrôle sur ce qui se passe
  • La mise à jour des scripts et des données est instantanée, puisque le serveur utilise directement les fichiers et les scripts en cours de développement
     
    Il y a cependant aussi quelques inconvénients qu'il faudra prendre en compte:
     
  • Notre accès Internet ADSL n'est pas un gros tuyau de datacenter. Si beaucoup d'utilisateurs transfèrent leurs fichiers en même temps, ce ne sera pas rapide, et ça réduira le débit  de nos accès Internet, ici.
  • Le serveur est localisé sur une machine toujours allumée, mais moins fiable et moins tolérante aux pannes qu'un serveur dédié
  • Lorsque nous travaillerons sur les scripts, il se peut qu'ils se trouvent momentanément dans un état instable, empêchant les utilisateurs d'y accéder correctement. Il nous faut trouver une procédure pour éviter au maximum ces désagréments.  
     
    Il est cependant à noter qu'il s'agit d'une première, jamais auparavant nous n'avions mis en place un accès Web public vers une de nos machines locales. Si la fibre free était arrivée jusqu'à nous, cela aurait peut-être été fait depuis longtemps...
  • by Olivier Guillion
     Leave a comment.


    Full view
    Reduced view
    Most recent first
    Oldest first
    All
    Didier Guillion
    Olivier Guillion
    Sylvie Ricard
    All
    Dev News
    Technical
    Mood
    Memories
    Myriad Life
    To be seen
    30 previous days
    Apr 2006
    May 2006
    Jun 2006
    Jul 2006
    Aug 2006
    Sep 2006
    Oct 2006
    Nov 2006
    Dec 2006
    Jan 2007
    Feb 2007
    Mar 2007
    Apr 2007
    May 2007
    Jun 2007
    Jul 2007
    Aug 2007
    Sep 2007
    Oct 2007
    Nov 2007
    Dec 2007
    Jan 2008
    Feb 2008
    Mar 2008
    Apr 2008
    May 2008
    Jun 2008
    Jul 2008
    Aug 2008
    Sep 2008
    Oct 2008
    Nov 2008
    Dec 2008
    Jan 2009
    Feb 2009
    Mar 2009
    Apr 2009
    May 2009
    Jun 2009
    Jul 2009
    Aug 2009
    Sep 2009
    Oct 2009
    Nov 2009
    Dec 2009
    Jan 2010
    Feb 2010
    Mar 2010
    Apr 2010
    May 2010
    Jun 2010
    Jul 2010
    Aug 2010
    Sep 2010
    Oct 2010
    Nov 2010
    Dec 2010
    Jan 2011
    Feb 2011
    Mar 2011
    Apr 2011
    May 2011
    Jun 2011
    Jul 2011
    Aug 2011
    Sep 2011
    Oct 2011
    Nov 2011
    Dec 2011
    Jan 2012
    Feb 2012
    Mar 2012
    Apr 2012
    May 2012
    Jun 2012
    Jul 2012
    Aug 2012
    Sep 2012
    Oct 2012
    Nov 2012
    Dec 2012
    Jan 2013
    Feb 2013
    Mar 2013
    Apr 2013
    May 2013
    Jun 2013
    Jul 2013
    Aug 2013
    Sep 2013
    Oct 2013
    Nov 2013
    Dec 2013
    Jan 2014
    Feb 2014
    Mar 2014
    Apr 2014
    May 2014
    Jun 2014
    Jul 2014
    Aug 2014
    Sep 2014
    Oct 2014
    Nov 2014
    Dec 2014
    Jan 2015
    Feb 2015
    Mar 2015
    Apr 2015
    May 2015
    Jun 2015
    Jul 2015
    Aug 2015
    Sep 2015
    Oct 2015
    Nov 2015
    Dec 2015
    Jan 2016
    Feb 2016
    Mar 2016
    Apr 2016
    May 2016
    Jun 2016
    Jun 29th, 2016 at 05:03pm 
    Article from Didier Guillion
    Harmony 9.6 étape 919
    Jun 28th, 2016 at 05:03pm 
    Article from Olivier Guillion
    Harmony 9.6 étape 918 / MUSL
    Jun 27th, 2016 at 04:58pm 
    Article from Didier Guillion
    Harmony 9.6 étape 917
    Jun 25th, 2016 at 10:18am 
    Comment from Pascal P.
    Merci !
    Jun 24th, 2016 at 04:59pm 
    Article from Olivier Guillion
    Harmony 9.6 étape 916
    Jun 24th, 2016 at 04:59pm 
    Article from Olivier Guillion
    Harmony 9.6 étape 916
    Jun 23rd, 2016 at 04:58pm 
    Article from Didier Guillion
    Harmony 9.6 étape 915
    Jun 22nd, 2016 at 05:02pm 
    Article from Olivier Guillion
    Harmony 9.6 étape 914
    Jun 21st, 2016 at 05:00pm 
    Article from Didier Guillion
    Harmony 9.6 étape 913
    Jun 20th, 2016 at 06:52pm 
    Article from Didier Guillion
    Harmony 9.6 étape 912 (suite)

    Top of page
    Legal information Last update:  (c) Myriad