Ca y est, Harmony Assistant a été recompilé entièrement, y compris le module gérant la synchronisation de la musique avec une vidéo. Ceci nous a demandé pas mal de circonvolutions, mais nous évite d'avoir à utiliser un système très compliqué alors que ce que nous pouvons nous procurer gratuitement semble combler amplement nos besoins. La gamme de produits à destination des développeurs proposée par Microsoft est très confuse, et comprendre ce qu'offre chaque produit est aussi simple que de comparer les forfait pour les téléphones portables : impossible de savoir clairement ce qui est dans le produit, et quelle est la différence avec le produit voisin. Dans l'opération de migration vers ce nouveau compilateur, beaucoup de fichiers "source" ont été modifiés, et des corrections, mineures mais nombreuses, ont été appliquées. Nous avons donc recompilé les projets avec l'ancien compilateur afin de vérifier que nous n'avions pas introduit de nouvelles irrégularités, puis nous l'avons également fait sur Macintosh (avec XCode). Cela a nécessité également la recompilation de modules "satellites" d'Harmony, dont certains n'avaient pas été touchés depuis quelques années. Ce soir, tout se compile et s'exécute. Une semaine après le début de l'opération, nous nous retrouvons donc prêts à travailler à nouveau. |
|
|
by Olivier Guillion | | |
| |
|
Une version "release" d'Harmony Assistant a été générée avec le nouveau compilateur. Ce type de version n'est pas destiné à facilité le débogage, mais est optimisé pour la vitesse d'exécution. Harmony Assistant tel qu'il est proposé aux utilisateurs en téléchargement est en mode "release". Nous avons donc pu réaliser des comparaisons entre le programme tel qu'il était généré par notre ancien compilateur et par le nouveau. Conclusion: aucune différence décelable. Par contre, l'opération nous a permis de trouver de nouvelles petites irrégularités, qui, cette fois-ci, pouvaient avoir une influence sur le fonctionnement de l'application. Rien de très grave cependant. Du coté des traductions de la nouvelle version d'Harmony, ça y est, les ressources sont "à plat" il nous reste maiintenant à contacter nos gentils traducteurs pour voir s'ils ont un peu de temps à nous consacrer... |
|
|
by Olivier Guillion | | |
| |
|
Nous avons pu effectuer les premiers essais d'Harmony Assistant recompilé avec Visual C++ express. Pour l'instant, il s'agit d'une version "debug", c'est-à-dire que le programme n'est pas optimisé pour aller vite, mais plutôt pour nous permettre de trouver facilement les erreurs. Une bonne dizaine d'irrégularités mineures ont ainsi été détectées et corrigées. A priori, aucune d'entre elles ne pouvait entraîner de crash ou de dysfonctionnement. Pour l'instant, Myrscript ne fonctionne pas, nous en cherchons la cause. Pour la partie "synchronisation vidéo" offerte avec Myrscript, cela promet d'être compliqué. Avec la version gratuite du compilateur de Microsoft, il ne semble pas prévu de pouvoir gérer ce genre de projets, qui utilisent DirectX et les objets fournis par le système. Il faudrait passer à une version pro, payante (environ 1000 euros!) qui apporte des fonctionnalités de gestion de projet et d'équipe de développement qui vont plus nous compliquer la vie qu'autre chose. Nous allons donc essayer de nous débrouiller avec les moyens du bord avant de considérer un investissement pareil. Sinon, un utilisateur néerlandais nous à proposé de traduire Melody Player. Nous avons donc implementé cette langue et nous lui avons soumis les textes à traduire. Parallèlement à ceci nous continuons de mettre les ressources d'Harmony "à niveau" entre les différents langages pour pouvoir commencer à contacter les traducteurs. |
|
|
by Olivier Guillion | | | |
|
Rien de bien passionnant aujourd'hui. Nous avons continué notre prise en main du compilateur C Visual C/C++ Express. Cela ne va pas vite, mais on progresse. Ce matin, première compilation réussie de notre librairie ACAM, plateforme de travail "maison" compatible PC/Mac. Dans la foulée, nous avons compilé une toute petite application qui utilise ACAM pour afficher une fenêtre avec du texte. Dans la catégorie des bonnes surprises, le compilateur Visual C n'est pas sensible aux mêmes irrégularités que notre ancien Codewarrior. Cela permet de découvrir des problèmes potentiels qui nous avaient échappés auparavant. Par contre, la compilation reste très lente, et les petites différences entre les deux outils nous obligent à appliquer de menues corrections à pas mal de nos fichiers source. Nous avons entamé une tentative de compilation d'une application plus conséquente, Harmony Assistant. Avec ses 622 fichiers source C, sans compter les petits projets annexes qui viennent s'y greffer, inutile de vous dire que cela prendra du temps pour aller au bout. L'après-midi entière a été passée à modifier nos fichiers C au fur et à mesure que les erreurs et avertissements de compilation nous étaient communiqués. Nous n'en sommes pour l'instant qu'aux 3/4. Et lorsque tous les modules se compileront correctement, rien ne nous dit que l'application fonctionnera... Bon week-end à tous! |
|
|
by Olivier Guillion | | |
| |
|
Ce qui devait arriver est arrivé. Notre fidèle compilateur C pour Windows, Codewarrior, abandonné par l'éditeur depuis près de 4 ans, atteint maintenant ses limites : il n'est plus possible d'utiliser le débogueur sur Windows 7. Vous me direz, cette nouvelle version de Windows ne sort qu'aujourd'hui dans les bacs, donc cela nous laisse une certaine marge. Mais avant de se retrouver coincés, nous avons décidé d'examiner (à nouveau) les divers remplaçants possibles. Nous avons donc essayé les environnements de développement C pour Windows issus du monde du libre. Dans les années 90, nous travaillions avec le compilateur Watcom C. Il est abandonné depuis longtemps, mais ses programmeurs ont eu la bonne idée d'ouvrir les sources afin que le produit puisse continuer à évoluer. Ainsi est né OpenWatcom. Malheureusement, ici s'arrête la bonne nouvelle. A l'essai, le projet semble souffrir de grosses lacunes. Apparemment, les noms de fichiers comportant des espaces ne sont pas gérés. Nous n'avons pas osé pousser plus loin dans la bancalitude. Très vite, nous avons éliminés un à un les projets open source, parfois basés sur le module de compilation gcc. Il y en a des tonnes, mais nous n'avons pas pu en trouver un pour rattraper l'autre. Dans le meilleur des cas, nous sommes parvenus à faire apparaître un "Hello world" en moins d'une demi-heure sans crash, mais la compilation d'un projet sérieux d'une centaine de modules semble largement hors de la portée de ces assemblages à la Frankenstein. En désespoir de cause, nous sommes allés cherchés du coté de chez Microsoft, et avons installé Visual C/C++ Express 2008 (gratuit). Même s'il semble très en dessous de notre bon vieux Codewarrior pour ce qui est de l'ergonomie et de la rapidité de compilation, l'ensemble est utilisable. Nous allons essayer d'aller jusqu'au bout de la compilation d'un gros projet (comme Harmony Assistant) avant de nous décider définitivement. Cela risque de prendre un peu de temps. Le C est censé être portable, mais à condition de l'avoir prévu dès la première ligne écrite, c'est-à-dire il y a près de 15 ans. C'est plus ou moins ce qui a été fait, parfois plutôt plus, mais parfois plutôt moins. |
|
|
by Olivier Guillion | | | |
|
Eh oui, ceci est l'étape 1 d'Harmony 9.5. Bien que MUSL (Myriad User Score Library) soit une fonctionnalité de cette future version d'Harmony, et en soit déjà à l'étape 52 sur ce blog, nous nous sommes attachés aujourd'hui à des corrections de problèmes sans rapport avec MUSL. Voici donc ce que nous avons fait : - Lorsque plusieurs notes liées de longueur différentes étaient en accord, le positionnement des diverses notes liées était faux en mode gravure. - Sur Windows, lors de la sélection d'un (très) grand nombre d'objets sur la partition, un crash pouvait survenir. Ce problème était la source d'un nombre important de rapports de crash qui nous avaient été envoyés. - Correction d'un problème de tracé des graphisme de type "ligne" - Dans PDFToMusic, correction d'un problème de localisation des pointés (confusion avec les têtes d'appogiatures) |
|
|
by Olivier Guillion | | | |
|
Nous avons travaillé sur pas mal de choses différentes aujourd'hui: - Sur PDFtoMusic, les tiges d'appoggiatures étaient parfois mal reconnues. Cela a été corrigé. - La nouvelle application Wordreference sur iPhone commence à fonctionner, en tout cas dans l'émulateur. Il faudrait maintenant commencer les tests sur le vrai périphérique, mais la gestion des droits pour les développeurs est un vrai casse-tête. Lancer sur son propre iPhone une application qu'on vient juste de développer devient plus compliqué que de programmer l'application elle-même. - Nous avons de plus en plus de demandes quant à la compatibilité de nos applications avec Windows 7. Apparemment, cela fonctionne, donc nous avons ajouté sur notre site Windows 7 à la liste des versions de Windows supportées. Par contre, un utilisateur a un crash (non lié à 7) qui ne nous fournit pas le rapport habituel mais donne celui de Windows. Ce type de rapport est inutilisable. Nous avons testé sur notre machine virtuelle sous W7RC, et cela fonctionne. Doit-on acheter une version de Windows 7, uniquement pour l'installer sur une machine virtuellle de test qui servira au mieux une fois par an? En attendant, j'invite ceux qui sont sous Windows 7 et qui seraient disposés à effectuer quelques tests simples à me contacter. Merci! |
|
|
by Olivier Guillion | | |
| |
|
Dans la lutte contre le spam, on a connu le système de liste noire, qui bloquait les messages provenant de sources réputées douteuses et stockées dans une liste. Avec la multiplication des spam-bots, réseaux de PC zombies envoyant des tonnes de spam à l'insu de leur propriétaire, ce système est devenu complètement inefficace. Il y a eu ensuite le système de liste blanche, qui ne laissait passer que les messages provenant d'expéditeurs connus et inscrits dans la liste. Mais si un nouveau contact désirait vous joindre, il était alors contraint de s'identifier en cliquant sur un lien pour que son message puisse vous parvenir. Contraignant, et netiquement questionnable (peut-on demander aux autres d'effectuer gratuitement le travail de tri et de sécurisation de sa propre boîte à lettres, en invoquant que c'est plus simple pour nous?) Nous avons adopté, pour notre part, un filtrage de contenu (voir ce billet), procédé qui fonctionne bien et demande peu de maintenance. Depuis plusieurs années, il trie consciencieusement plus de 2000 e-mails par jour, avec un taux de fiabilité supérieur à 99,96% Sur ces 2000 messages quotidiens, 90 à 95% sont du spam. Cela fait une masse de données inutiles, qui surchargent le serveur de mail et notre classifieur. Et, malgré tout, plus nous recevons de messages, et plus le système de classification risque de commettre des erreurs. 99,96% de réussite sur 2000 mails, cela fait tout de même près d'une erreur par jour ! Notre hébergeur a donc mis en place, il y a maintenant un mois, un système de "liste grise". En voici le principe. Imaginez que vous nous envoyez un e-mail pour la première fois. Votre courrier part vers votre serveur de mail sortant (SMTP) appartenant généralement à votre Fournisseur d'Accès Internet (FAI). Ce serveur contacte le nôtre, et lui transmet votre message. Au lieu de recevoir le message et d'en accuser bonne réception, notre serveur de mail répond "désolé, je suis temporairement indisponible". Votre serveur, sans rien dire à personne, range donc votre message au chaud et réessaie de l'envoyer 5 à 15 minutes plus tard. Il est à ce moment-là accepté par notre serveur et transmis à notre boîte aux lettres. Une fois ce premier e-mail transmis avec succès, vous êtes marqués définitivement dans une liste blanche, et vos prochains messages passeront sans délai. A quoi cela sert-il, me demanderez-vous, à part ralentir la transmission du premier message de chacun de nos contacts? La plupart des spams sont envoyés depuis des PC zombies, par un malware qui contient une version très, très simple de serveur SMTP. Ces programmes se contentent généralement d'envoyer le plus rapidement possible un très grand nombre d'e-mails, sans même vérifier la réponse qui leur est retournée. Il ne se rendent donc pas compte que leur envoi a été refusé, et ils n'essaient pas de nous renvoyer le spam. Ce dernier n'atteint donc jamais véritablement le serveur, et ne nous est jamais transmis. Résultat? Une baisse spectaculaire du nombre de spams, réduit à environ un dizième de ce que nous recevions auparavant. De 2000 mails par jour, nous sommes passés instantanément à moins de 300. Nous sommes donc assez content de ce système, jusqu'à ce qu'il se généralise et que les petits malins de spammeurs trouvent une parade... |
|
|
by Olivier Guillion | | | |
|
Nous avons continué à travailler sur PDFtoMusic, en corrigeant quelques crashs, et notamment en gérant certains types de fontes de caractères embarquées qui n'étaient pas décodées correctement et pouvaient faire "planter" l'application inopinément (fontes CID type 2). Nous avons recalculé la base de données de la reconnaissance optique des caractères alphanumériques (lettres et chiffres) en l'alimentant avec les caractères qui étaient jusqu'ici mal reconnus dans les partitions qu'on nous avait envoyées. Nous avons ensuite débusqué les irrégularités dans la gestion mémoire, en repérant les zones qui n'étaient pas correctement libérées par l'application. En parallèle, nous avons commencé à travailler sur une nouvelle version de l'application WordReference pour l'iPhone. |
|
|
by Olivier Guillion | | | |
|
Chose promise, chose due : une version beta (1.2.1 Beta 2) de PDFtoMusic Pro vient d'être mise à la disposition des personnes intéressées. L'annonce est ici. En dernière minute, nous avons corrigé sur la version en ligne de commande quelques problèmes de chemins d'accès et de répertoire de travail, et avons ajouté une option "verbeuse" qui donne des information sur les tâches effectuées par PDFtoMusic pendant le traitement du PDF. Enfin, nous avons essayé cette version en ligne de commande avec les synthèses vocales que nous possédons, soit VoiceOver sur Macintosh et JAWS sur Windows. Le résultat est souvent un peu trop verbeux, et nous aurons donc encore quelques réglages à effectuer dans les prochaines beta. Mais ce dont nous aurions le plus besoin, maintenant, c'est d'un ou plusieurs mal- ou non-voyants disposés à nous aider à peaufiner cette fonctionnalité. |
|
|
by Olivier Guillion | | | |
|
Le script de MUSL a été modifié, pour corriger des problèmes de compteurs de visites, et de représentation de l'arborescence des fichiers dans certains cas. - PDFtoMusic en ligne de commande a été finalisé sur PC. L'interruption de la tâche par l'utilisateur (Ctrl Break) est maintenant gérée. Une version beta devrait être disponible prochainement, afin de vous permettre de tester cette nouvelle façon d'utiliser le programme. - Harmony/Melody, correction d'un crash dans la boîte de sélection du type de portée - Harmony/Melody, correction d'un problème graphique dans les listes hiérarchiques. - Harmony: lorsqu'on insérait un objet texte sur une portée fraîchement ajoutée à la partition, celui-ci n'apparaissait pas. |
|
|
by Olivier Guillion | | | |
|
La gestion des accès à PDFtoMusic Pro au travers d'une ligne de commande, sans aucune interface graphique, a été portée sur PC. Parallèlement, la ligne de commande s'est vue dotée d'une option supplémentaire permettant de jouer la musique au lieu de l'exporter dans un fichier. La syntaxe de la ligne de commande peut devenir assez complexe si on utilise beaucoup d'options, et elle nécessite d'entrer le chemin et nom complet du fichier PDF à traiter. Pas toujours aisé. Mais notre idée est de considérer PDFtoMusic comme un moteur de conversion, qui pourra ensuite être interfacé assez facilement. Ainsi, pour les mal-voyants, on peut imaginer un programme assez simple, pouvant être écrit en n'importe quel langage de haut niveau et compatible avec les claviers brailles, les synthèses vocales, affichant l'interface en fort contraste et en gros caractères. En fonction des actions de l'utilisateur (choix du fichier PDF et des options de traitement), il appellerait PDFtoMusic Pro en ligne de commande, ce dernier réaliserant le traitement demandé. Ce programme, nous ne l'écrirons probablement pas, mais laisserons plutôt des bénévoles intéressés le réaliser en collaboration avec les personnes demandeuses. Techniquement, la programmation de ce genre de chose devrait être à la portée de la plupart des étudiants en informatique. |
|
|
by Olivier Guillion | | | |
|
C'est à l'occasion des tests de la beta-version d'Harmony qu'on nous a fait remarquer que, dans la version Windows, les options de menu contextuel contenant des caractères non latins, par exemple des caractères grecs ou d'Europe de l'Est, s'affichaient mal. Sur Maintosh, par contre, ces mêmes options apparaissaient correctement. Nous avons donc recherché la différence entre les deux plate-formes, et nous sommes aperçus que les routines d'affichage des options de menus sur Windows dataient d'avant le passage en Unicode et n'avaient jamais été réécrites. Ce type de menu est utilisé dans le menu contextuel de la portée, la liste des courbes, les options en clic droit sur une note, sur une partie de piste numérique sélectionnée, dans l'édition des instruments, etc, etc. Nous avons donc maintenant deux solutions: 1- Réécrire ces fonctions pour conserver le même aspect mais permettre l'affichage de tous les caractères non-latins 2- Utiliser des panneaux de menu standards, c'est-à-dire sur fond blanc. La première solution présente l'avantage, en conservant un aspect strictement identique de ne pas perturber ceux qui sont habitués aux menus actuels, mais doit être développée et testée La deuxième ne nécessite aucun travail de notre part, est plus standard, possède une meilleure adaptativité aux cas limites (ouverture en bord d'écran, etc) mais fait apparaître les options sur fond blanc et ne sépare pas les options en plusieurs colonnes de la même façon. Nous allons tester cela et décider, à moins que nous ne le proposions dans la prochaine version beta afin que vous puissiez juger par vous-même. |
|
|
by Olivier Guillion | | | |
|
|