Nous avons mis au propre pas mal de choses, et notamment l'aspect des résultats de la recherche sur le Web, et la présentation des détails sur chaque morceau. Un classement des résultats selon divers critères a été mis en place. Il fonctionne déjà dans Harmony Assistant, et fonctionnera dans la version Web dès que nous aurons permis à l'utilisateur de sélectionner l'ordre de tri. En parallèle, nous avons commencé à créer le formulaire qui permettra aux ayant-droits de signaler à notre attention les oeuvres non libres de droits qui pourraient avoir été indexées par le moteur. Une loi (la LCEN quelque chose) impose aux hébergeurs de supprimer les contenus litigieux dans les plus brefs délais après signalement. Bien que n'étant pas hébergeur, mais simple collecteur de liens sur des fichiers hébergés ailleurs, nous nous sentons moralement tenus de faire le ménage dans notre base de données, aussi appliquerons-nous le même principe à Kooplet. |
|
|
by Olivier Guillion | | | |
|
La structuration des données stockées dans les bases a été reprise. Nous avons pas mal réfléchi aux nouvelles options qui seraient intéressantes pour l'utilisateur, et nous nous posons encore quelques questions. Tout d'abord, la date et l'heure à laquelle le fichier a été découvert par Kooplet sera stockée. Bien entendu, à la première construction de la base, cela n'aura que peu d'intérêt, puisque tous les fichiers seront mis en base dans un intervalle de quelques jours. Mais par la suite, les fichiers musicaux nouvellement trouvés pourront être mis graphiquement en évidence, et les recherches pourront être limitées à un intervalle de temps, afin de ne montrer que les nouveaux fichiers. Une option possible, qui pourrait être mise en place avec peu de difficultés technique serait un système d'alerte par mail. Par exemple, vous cherchez un morceau dont le texte contient le mot "Beethoven" et qui contient une certaine séquence de notes (par exemple, Pom pom pom pom ). Si vous ne trouvez pas votre bonheur, vous pouvez poser une alerte sur cette recherche. Lorsque Kooplet trouve un nouveau morceau qui correspond à vos critères, il vous previent par e-mail. Mais cela serait-il bien utile? Si on ne trouve pas tout de suite le morceau qui nous intéresse, aura-t-on envie d'être prévenu la semaine suivante s'il est enfin trouvé ? Zatizecouechtion. Nous avons également mis en place la structure générale permettant de gérer une note de qualité attribuée à chaque morceau. Les utilisateurs pourraient évaluer la qualité des morceaux et ainsi modifier l'ordre d'apparition lors d'une recherche, ou permettre de restreindre la recherche aux morceaux au-dessus d'une certaine valeur de qualité. Mais nous hésitons également. Par expérience, il y a toujours un petit malin qui essaie de truquer le système pour voter plusieurs fois et faire monter artificiellement la note de tel ou tel morceau. Techniquement, nous pouvons difficilement mettre en place un système efficace pour contrer ces pratiques. Faut-il pour autant présenter les résultats dans un ordre indéterminé? Ici également, on est un peu dans le flou... |
|
|
by Olivier Guillion | | |
| |
|
Le stockage les aperçus graphiques des partitions collectées par Kooplet risquant de demander pas mal de place sur le disque coté serveur, nous avions besoin d'un compactage/décompactage efficace de ces images. Cet algorithme devait être disponible aussi bien en C, pour créer l'aperçu lors du traitement des fichiers collectés par notre version d'Harmony/PDFtoMusic qu'en Perl, pour afficher l'aperçu dans la recherche Kooplet sur le Web. Nous avons donc mis au point un algorithme de compactage spécifique combinant un RLE (run-length encoding, encodage des répétitions d'une même couleur) et un encodage de résidu, inspiré du codage de Rice. Ce compactage non destructif semble plus efficace que d'utiliser le format PNG ou que de ZIPper des données brutes. Il a été testé en Perl, et est en cours d'implémentation en C. |
|
|
by Olivier Guillion | | |
| |
|
L'intégration de la recherche Kooplet dans Harmony Assistant commence à fonctionner. Coté serveur, les scripts ont été adaptés de manière à accepter des requêtes de la part d'Harmony, et fournir en retour les résultats sous une forme facilement traitable par le programme. Nous en avons profité également pour mettre en place un système de popularité, qui altèrera l'ordre des résultats de recherche. Coté Harmony, la boîte de recherche est fonctionnelle : L'aspect graphique et l'organisation peuvent encore changer, mais la logique est déjà là. Le clic sur "Rechercher" fait apparaître les résultats dans la liste, et il est possible d'en sélectionner une ligne puis cliquer sur un des boutons du bas pour soit visiter la page du site original qui propose le fichier, soit directement télécharger la partition et l'éditer dans Harmony. La zone de droite, pour l'instant blanche, est destinée à accueillir l'aperçu du fichier sélectionné, si nous parvenons à mettre cela en place. Cela supposerait alors de recommencer la collecte de la base depuis le début. |
|
|
by Olivier Guillion | | |
| |
|
Nous avons quasiment terminé (mais cela peut-il être complètement terminé ?) la partie de Kooplet qui tourne sur le serveur distant. Nos bases de données se défragmentent en tâche de fond afin de conserver en permanence des performances optimales. Il nous reste maintenant à reprendre la partie "administration", qui nous permettra facilement d'ajouter ou enlever des sites, supprimer des partitions signalées comme non conformes aux droits d'auteur, et surveiller tous les processus. En parallèle, nous avons réfléchi à ce que Kooplet pourrait apporter aux utilisateurs de nos produits. Par exemple, pourquoi ne pas pouvoir sélectionner une séquence de notes dans Harmony Assistant, et la rechercher dans Kooplet grâce à un navigateur ? De là, l'utilisateur pourrait télécharger les fichiers trouvés et les visualiser dans Harmony Assistant. Mais alors, pourquoi ne pas lui simplifier la tâche et intégrer la recherche Kooplet dans Harmony ? Ainsi plus besoin de navigateur, et les fichiers seraient téléchargés de manière transparente, pour apparaître directement dans Harmony... Ce principe pourrait s'appliquer également à PDFtoMusic, avec une recherche sur le contenu des PDFs. Cela se présenterait ainsi : Une boîte, avec des boutons de configuration de la recherche, un champ de texte et une zone de saisie de notes. Cette zone serait automatiquement pré-remplie avec le contenu de la sélection lors de l'ouverture de la boîte. Après appui sur le bouton de recherche, les partitions trouvées apparaîtraient dans la zone du bas (avec, pourquoi pas, un aperçu graphique de leur première page). Il suffirait de cliquer sur la partition pour la télécharger et la voir apparaître dans Harmony Assistant. On pourrait également cliquer sur un lien au-dessous de la partition pour ouvrir dans un navigateur la page du site sur laquelle la partition avait été trouvée. A notre connaissance, nos produits deviendraient alors les premiers logiciels de musique à accéder directement à la gigantesque bibliothèque de fichiers musicaux disponibles sur Internet. Combien d'heure de travail économisées lorsqu'il suffira d'un clic pour choisir sa version de l'Ave Verum plutôt que de devenir la dix millième personne à l'avoir saisie en intégralité ! |
|
|
by Olivier Guillion | | |
| |
|
La recherche de fichiers musicaux sur Internet a plutôt bien tourné ce week-end, sous une surveillance constante. Le nombre rond de 65536 partitions a été dépassé dimanche, et nous en sommes maintenant à environ 76000. Quelques fichiers font encore "planter" Harmony Assistant, nous les avons conservés, et nous tenterons de corriger ça dès que possible. Il semble y avoir quelques petits problèmes dans la recherche, les séquences entrées ne semblent pas toujours être retrouvées dans les morceaux. Nous y travaillons, à partir de plusieurs cas-test. Dès que tout ceci sera corrigé et validé, nous remettrons en ligne une version beta de Kooplet. |
|
|
by Olivier Guillion | | | |
|
Quelques problèmes dans Harmony Assistant, pouvant entraîner une instabilité et des crashs inopinés ont été mis en évidence par le traitement des fichiers extraits par Kooplet. Il reste encore un crash, qui se produit très rarement, mais nous ne désespérons pas de le localiser. D'une manière générale, toutes les étapes de Kooplet, de la collecte à la mise en base de recherche, sont maintenant beaucoup plus solides. Des traitements longs, permettant l'indexation des morceaux et donc leur recherche ultérieure, bloquaient le traitement pendant plusieurs secondes, et ralentissaient l'ensemble. Nous expérimentons une nouvelle méthode pour gérer cela, le lancement d'un "daemon" sur notre serveur Web. Ce daemon tourne en permanence sur le serveur, et traite en tâche de fond les opérations de mise à jour de la base. La mise en oeuvre est très simple (une seule ligne de Perl), et ce principe pourrait être utilisé ultérieurement pour d'autres tâches que Kooplet. Il faudra que nous réfléchissions aux autres applications possibles d'un tel système. |
|
|
by Olivier Guillion | | | |
|
Alors que l'indexation se poursuit tranquillement, nous mettons au point quelques algorithmes permettant de mieux répartir la charge de travail sur notre serveur. En effet, lorsqu'un script utilisant une base de données est lancé, il se réserve l'accès à cette base, empêchant d'autres scripts (ou une autre instance du même script) d'y accéder en écriture dans le même temps. Si l'opération est longue, on risque d'obtenir un effet d'accordéon avec quelques secondes de calme entre deux afflux de demandes. Nous sommes donc en train d'implémenter un système permettant de lisser tout cela, afin que le fonctionnement du serveur et donc de notre site ne puisse pas être perturbé par le moteur d'indexation de Kooplet. |
|
|
by Olivier Guillion | | | |
|
Nous avons fait tourner le crawler ce week-end, en l'interrompant assez souvent pour vérifier l'intégrité des différentes bases. Aucun problème majeur à signaler. Nous n'avons pas vraiment collecté à la vitesse maximale, car il nous a fallu quelques fois renvoyer la totalité des bases de données vers le serveur, et 300 Mo avec une liaison montante à 1 Mbits/seconde, ça prend un peu de temps (je vous laisse le soin de calculer). Vivement la fibre ! De plus, certains fichiers téléchargés faisaient planter Harmony Assistant. Nous avons corrigé la majorité de ces problèmes. Entre autres effets de bord, Kooplet nous aura donc permis d'améliorer notre connaissance du langage Perl, et de corriger quelques sources possibles de plantage dans Harmony et PDFtoMusic. |
|
|
by Olivier Guillion | | | |
|
|