Myriad Blog 1.3.0 Monday, Jan 26th, 2015 at 05:35am 

Dev News Monday, May 30th, 2011 at 05:03pm
Acam III, version Ubuntu, tape 32

 
Nous nous sommes mis ALSA, une librairie permettant d'accder la carte son sur Linux. ALSA est installe automatiquement avec Ubuntu, ce qui est pour nous une condition sine qua non, car nous ne voulons pas demander l'utilisateur d'installer un module tiers sur son systme (du coup, nous n'avons pas utilis, par exemple, la librairie Jack).
 
Ce matin, le premier son tait mis par Melody Assistant lors du jeu de la musique. Une simple onde sinusodale, qui nous a permis de vrifier qu'ALSA tait fonctionnel et que tout tait bien en place.
Il nous a suffi ensuite de remplacer ce calcul de courbe sinus par l'interprtation de la musique, et nous avons obtenu la sortie sonore compltement fonctionnelle, avec la barre de progression, les effets, Virtual Singer, etc.
 
Du point de vue performances, il nous est difficile de juger, car nous travaillons sur une machine virtuelle. Mais en l'tat, la latence, bien qu'assez longue, est comparable celle qu'on obtient sur Windows avec les paramtres standards.
 
Nous avons lu qu'ALSA gre aussi la MIDI. Nous allons voir ce que nous pouvons faire de ce cot-l, mais nous ne sommes pas encore srs que notre machine virtuelle gre les entres-sorties MIDI.
by Olivier Guillion

Dev News Friday, May 27th, 2011 at 05:02pm
Acam III, version Ubuntu, tape 31

 
Nous nous heurtons depuis plusieurs jours des difficults dans la gestion des fentres sous Ubuntu/GTK.
Contrairement aux autres systmes sur lesquels nous avons pu travailler jusqu'ici, la gestion de l'interfaces, et donc des fentres, est organise en couches logicielles spares, empiles les unes sur les autres, et ne communiquant entre elles que par un nombre rduit d'entres (GTK utilise le systme de fentres de X11 sur Ubuntu, mais existe aussi sur Windows ou Macintosh, utilisant alors ces systmes en couche basse)  
En pratique, une application sur Linux doit utiliser les entres de plus haut niveau (GTK).
En effet, utiliser directement X11 est difficilement envisageable, car cela court-circuite le systme de plus haut niveau, qui gre par exemple la liste des fentres ouvertes sur le bureau, leur nom dans la barre de tches, l'empilage des fentres des diverses applications ouvertes en mme temps, le click sur une des fentres qui remet l'application au premier plan, etc.
 
Malheureusement, ce systme de couches rduit au plus petit dnominateur commun les possibilits offertes l'application, afin que GTK reste compatible avec les divers OS sur lesquels il est cens tourner.  
Ce qui fait que des fonctions de relativement bas niveau sont compltement absentes, et des mcanismes de haut niveau ne sont pas dbrayables.
 
Par exemple, ACAM a besoin de grer lui-mme l'ordre d'empilage des fentres (Z-Order). Sous Acam, l'utilisateur peut trs bien cliquer sur une fentre sans que celle-ci passe ncessairement au premier plan (devant, il peut y avoir des palettes d'outils, d'autres fentres diverses, les menus contextuels ou les bulles d'aide).
 
GTK s'obstine vouloir trop en faire, et essayer de grer cela tout seul, passant les fentres cliques l'avant-plan sans qu'il soit apparemment possible de l'en empcher, rorganisant l'ordre des fentres de l'application selon sa logique propre, etc.
 
On bataille donc pour reproduire les fonctions de base dont on dispose sur Mac et PC, mais pour l'instant, la bataille n'est pas gagne.
by Olivier Guillion

Dev News Tuesday, May 24th, 2011 at 05:04pm
Acam III tape 28

 
Ca y est, nous avons pu lancer la premire version pr-pr-alpha de Melody sur Linux.
Tout n'est pas fonctionnel, mais nous avons:
 
- Les menus, avec la fentre d'aide contextuelle
 

 
- La bote de nouveau document. Malheureusement le clic ne fonctionne pas, ce qui nous empche de choisir un modle et de le visualiser
 

 
 
- Le jukebox, vide car l'ajout de fichier plante
 

 
- Les prfrences, avec tous les onglets. Par exemple, l'onglet "Jeu d'icnes"...
 

 
... ou l'onglet "Ornements"
 

 
Pour aller un peu plus loin, il faut maintenant implmenter la prise en compte de la fonte "Stoccata" et l'ouverture d'une fentre document. On s'y attaque demain.
by Olivier Guillion
 2 comments.

Dev News Friday, May 20th, 2011 at 04:57pm
Acam III tape 26

 
Le portage de Melody Assistant a bien avanc, et a inclus une phase de nettoyage des fichiers sources qui nous a permis de dtecter et corriger quelques irrgularits potentielles dans le programme (versions Windows et Mac).
 
La sparation des fonctions dpendantes du systme a continu, ce qui a eu pour effet de rendre momentanment le projet non compilable sur Mac et Windows.
C'est maintenant rsolu, mais un problme dans une nouvelle fonction fait planter la version Windows au dmarrage, alors qu'il manque encore quelques librairies (OGG, ZIP) la version Linux pour pouvoir se lancer.
 
Contrairement ce qu'il peut sembler, a avance dans le bon sens, et en thorie, ds que les librairies manquantes auront pu tre cres, nous devrions avoir une version native Linux de Melody, sans sortie sonore, mais avec toutes les options d'dition du document.  
 
Avec un peu de chance, nous esprons obtenir cette premire mouture en dbut de semaine prochaine. Nous pourrons alors poster quelques copies d'cran pour vous montrer.
 
Bon week-end tous !
by Olivier Guillion
 2 comments.

Dev News Thursday, May 19th, 2011 at 04:54pm
Acam III tape 25

 
Aprs pas mal d'efforts, les fichiers sources de Melody Assistant indpendants du systme se compilent correctement. La compilation totale est trs, trs longue, mme aprs avoir mis en place le systme d'en-ttes prcompiles, censes acclrer cette tche.
 
Mais bon, l'essentiel est que cela fonctionne, nous verrons plus tard s'il est possible d'amliorer ce point.
 
Il nous reste donc mettre en place toutes les fonctions spcifiques au systme, et il y en a beaucoup : accs l'Internet, au matriel d'enregistrement et de restitution sonore, aux entres et sorties MIDI, et j'en passe.
 
Nous en sommes actuellement crer des mannequins (fonctions vides permettant au programme d'tre gnr jusqu'au bout), et avons ainsi trait environ une soixantaine d'entres. A vue de nez, il nous en reste encore plusieurs centaines, sans compter les librairies annexes (ZIP, encodage/dcodage MP3 et OGG,...) que nous aurons besoin de crer avant d'obtenir un premier excutable de Melody pour Linux.
by Olivier Guillion

Dev News Tuesday, May 17th, 2011 at 04:58pm
Acam III tape 23

Depuis le dbut du portage sur Linux, nous craignons deux choses dans le domaine technique :  
1- que le systme de dveloppement fasse apparatre des lacunes nous empchant de travailler confortablement, et  
2- que le systme lui-mme ne propose pas toutes les fonctionnalits dont nous avons besoin pour ce portage.

1- L'environnement de dveloppement

 
Nous avons cr nos projets l'aide d'une interface de dveloppement (IDE) qui semblait, sur le papier, rpondre nos attentes : Code:Blocks.
Aprs quelque temps d'utilisation, il s'avre que ce produit semble assez limit. Des problmes gnants d'dition et d'organisation se sont poss:
- impossibilit d'organiser les fichiers sources sa guise dans des rpertoires virtuels
- problmes de reconnaissance de nos types C, ne permettant pas de retrouver facilement la dfinition de ces types dans nos fichiers sources
 
Ensuite, le dbogueur pose de gros problmes:
- Impossible d'arrter le programme si on n'a pas pos un point d'arrt avant
- visualisation des variables trs ... variable, avec des oublis de certaines d'entre elles, impossibilit d'explorer le contenu de certains types, etc
- Impossible de quitter proprement une session de dbogage, ce qui nous oblige faire des "kill" tour de bras dans un terminal pour s'en sortir
 
Nous avons donc essay plusieurs autres environnements, qui se sont avrs encore plus problmatiques. Sans entrer dans le dtail :
 
- Codelite: prometteur mais ergonomie parfois trange (par exemple, n'accepte pas les espaces dans les noms de dossiers), et ne semble pas apporter grand-chose de plus
 
- KDevelop: nous n'avons pas russi construire un projet GTK+ complet et fonctionnel. On y travaille, sans grand espoir.
 
- NetBeans: lourd et lent, ne contenant pas les outils de dveloppement en C par dfaut
 
- Anjuta: prometteur galement, mais la prise en main est droutante, nous n'avons mme pas russi compiler un fichier source (ou alors, nous l'avons fait mais ne nous en sommes pas aperus)
 
- Eclipse: un seul mot: lourd. Le dmarrer est dj une preuve, le configurer pour compiler quelques-uns de nos sources C, n'en parlons mme pas.
 
Nous sommes donc revenus Code:Blocks, faisant fi des conseils aviss sur Internet expliquant qu'un environnement graphique est inutile, puisqu'il y a vim, gcc et gdb (80's revival rules!)
 
 
2- Les limites du systme
 
Un exemple: Acam a besoin de connatre tout moment les positions exactes de ses fentres sur l'cran, et doit pouvoir positionner une fentre o il le veut.  
 
Or, sur Linux, les deux oprations ne sont pas rflexives ! On peut ouvrir une fentre un endroit donn, mais si on lit sa position juste aprs, on obtient (0,0), c'est--dire le coin suprieur gauche de l'cran. Il faut attendre un certain temps (dfinition, SVP) avant de la relire. Et l, la documentation est on ne peut plus claire. La position retourne est une approximation, il n'est pas possible de la connatre avec certitude. Il est d'ailleurs fortement dconseill une application de sauvegarder ces positions pour rouvrir les fentres au mme endroit au prochain lancement !
 
Ceci est probablement li aux communications entre les diverses couches logicielles grant les fentres. Mais pour nous, cela devient un problme majeur. Nous y rflchissons depuis plus d'une journe, mais n'avons pas encore dcouvert de solution absolue pour contourner cette incongruit.
by Olivier Guillion
 2 comments.

Dev News Friday, May 13th, 2011 at 05:00pm
Acam III tape 21

 
Nous avons mis en place la gestion de la barre de menus sous Linux/GTK. Ceci nous a permis d'essayer les diffrentes options de Myredit, telles que l'ouverture de fichier ou le changement de style de texte.
 
Pour l'instant, nous avons implment la gestion "bas niveau" des menus d'Acam : une barre de menus apparat en haut de l'cran, ici sous la barre d'Ubuntu, et les menus sont tracs et grs par notre librairie.
 

 
Par la suite, nous essaierons de passer par les menus standards de Linux, grs par le systme. Ceci permettra d'obtenir un aspect identique celui rencontr habituellement, avec en prime la gestion automatique des "bonus" apports par Unity, ou la lecture des options pour les malvoyants.
 
Nous avons activ la gestion des cartes graphiques 3D sur nos machines virtuelles Linux, ce qui nous a permis d'avoir accs Unity.  
Cet aspect du bureau nous avait chapp jusqu' maintenant. C'est intressant, bien qu'il soit encore un peu tt pour envisager en tirer parti.
by Olivier Guillion

Dev News Thursday, May 12th, 2011 at 04:58pm
Acam III tape 20

 
Le projet avance, lentement mais srement.
Nous avons implment la prise en compte des thmes graphiques, les slecteurs de fichiers, ainsi que quelques botes outils qui permettront une meilleure compatibilit avec les applications dj crites (notamment, une ouverture de fichier avec un nom insensible la casse).
 
Voici donc la fentre en look "Ubuntu", que nous avions dvelopp au dpart pour la version Wine. L, plus question de Wine, c'est une fentre native Linux :

 
Nous travaillons maintenant sur la gestion de la barre de menus, qui n'apparat toujours pas correctement. A un moment, un "panneau" de la barre de menu est apparu, avec toutes les options, les icnes, et le marquage de l'option sous le pointeur souris, mais nous n'avons pas russi reproduire ce miracle depuis lors.
 
Ds que nous aurons les menus, nous pourrons tester beaucoup plus de choses, et progresser plus vite.
by Olivier Guillion
 2 comments.

Technical Monday, May 9th, 2011 at 05:03pm
Linux : Gnome ou KDE?

 
Cette question est devenu un troll aussi fameux que "Mac ou PC", ou pour les Linuxiens "vi ou emacs". Pour les novices que nous sommes, le principe de dveloppement sur Linux apparat d'une complexit affligeante, avant mme de commencer.
 
Etat des lieux
 
Il existe de nombreuses distributions de Linux (Ubuntu, Mandriva, Debian, etc.), elles-mme sur plusieurs environnements (Gnome, KDE,..), chaque environnement utilisant une librairie graphique diffrente (GTK, QT..) intgrant des librairies spcifiques (Cairo, Glib, Pango, ATK...).
Sachant que chacun de ces modules est distribu sous une licence qui peut limiter ce que vous avez le droit de faire (GPL, LGPL, commerciale...), il est quasiment impossible pour un programmeur novice sous Linux de savoir ce qui est le mieux adapt son cas, sans se plonger dans des pages et des pages de jargon juridique indigeste et le plus souvent incomprhensible.
 
N'ayant pas le temps d'entamer des tudes de droit pendant notre temps libre, nous avons essay de comprendre tout de mme de quoi il s'agit, et de faire un peu de tri dans cet embrouillamini. Il est probable que nous ayons au final mal digr toutes ces informations, et que des erreurs grossires se soient glisses dans ce qui va suivre. Tant pis, on y va quand mme.
 
Nos programmes sont des applications commerciales, en sources ferms. Cela signifie que nous ne dsirons pas offrir "librement" sur Internet le rsultat de 20 ans de travail quotidien. D'aucuns objecteront que le fait de fournir le code source ne veut pas dire que n'importe qui a le droit de l'utiliser comme il le veut. Mais nous ne sommes pas (encore) juristes, et, rencontrant dj suffisamment de problmes dans le domaine qui est le ntre, la programmation, nous ne souhaitons absolument pas nous engager dans un procs international lorsqu'une socit l'autre bout du monde aura pill notre travail pour proposer moindre frais une application clone concurrente.
 
Le choix
 
Ce principe tabli, quel choix nous reste-t-il ?
Les deux principaux environnements graphiques sont Gnome et KDE.
 
Gnome est bas sur la librairie graphique GTK+, apparemment distribue sous licence LGPL, ainsi que toutes ses librairies annexes. La licence LGPL est l'une des plus souples, et nous permet de crer des programmes commerciaux sources ferms sans contrainte. Le point ngatif semble tre que les changements de version du systme s'accompagnent de changements d'orientation, obligeant les programmeurs rcrire certaines parties pour rester la page. Ainsi, mme si les anciennes fonctions restent probablement disponibles, puisqu'elle font partie des couches "basses", la gestion des graphismes est successivement passe par les accs GLib, Pango et maintenant Cairo, les anciennes entres tant marques comme obsoltes dans la documentation.
 
Le concurrent srieux de Gnome est KDE, bas sur la librairie graphique QT. L, ds le dpart, mauvaise surprise. QT est sous licence GPL, ce qui interdit la cration de programmes commerciaux sources ferms. Il faut donc acqurir une licence pour avoir le droit de faire cela. Deuxime mauvaise surprise : la licence la plus simple (Linux uniquement) est vendue au prix de ... 2995 euros !! (soit l'quivalent brut de  150 licences pour Melody Assistant)
Plus que rticents l'ide de nous saigner blanc pour acqurir la possibilit de dvelopper sur un systme, nous n'avons pas pouss plus loin nos recherches dans ce sens.
 
En guise de conclusion
 
Nous devrons donc nous cantonner aux configurations i386/Linux/Gnome (GTK), ce qui est l'environnement offert par une des distributions les plus rpandues, Ubuntu. Ceux qui utilisent KDE devront pralablement installer les librairies GTK pour pouvoir faire fonctionner nos programmes.
 
Et l va se poser le dernier problme pineux, celui de l'assistance technique. Nous n'aurons ni le temps, ni les moyens (ni l'envie) de devenir des pros de Linux. Quoiqu'en disent certains, ce systme n'est pas assez abouti pour permettre un utilisateur lambda de s'en sortir sans mettre les mains dans le cambouis, matriser les commandes textuelles sous terminal ou, de temps en temps, compiler un ou deux modules. Ce qui fait que, pour la premire fois, nous devrons assurer une assistance technique sur un systme que la majorit des utilisateurs connatront mieux que nous.  
De plus, la disparit dans les configurations matrielles et logicielles est source d'incompatibilits, de plantages et donc de graves prises de tte. C'est en partie ce qui a fait la force du Macintosh ses dbuts, le faible nombre de configurations possibles tant un gage de stabilit.
 
Or, l, nous aurons affaire des machines encore plus diverses que sur Windows, et avec un nombre quasi infini de combinaisons de distribution / systme graphique / librairies annexes / personnalisation. C'est, d'aprs les pro-Linux, ce qui fait la force de ce systme, mais c'est notre avis sa plus grande faiblesse.
by Olivier Guillion
 2 comments.

Dev News Wednesday, May 4th, 2011 at 05:02pm
Acam III tape 15

 
La mise au propre de la couche dpendante du systme a bien avanc. Si ce n'est pas encore termin, nous en voyons le bout.
 
Ds que possible, nous retournons sur Linux pour un essai en vrai grandeur de la portabilit, et l'criture des fonctions spcifiques au systme. Nous aurions d commencer ds aujourd'hui, mais une petite erreur de manipulation sur notre machine Linux nous a fait perdre quelques heures.
Lors de la mise en place de rpertoires partags entre nos diffrentes machines, nous avons tent d'ajouter l'utilisateur courant un groupe. Une erreur de frappe, probablement, a eu pour effet de supprimer l'utilisateur de tous les groupes, lui enlevant ainsi tous les droits.  
 
L a commenc la boucle infinie de type "poule et oeuf":
Etant donn qu'il n'y avait qu'un seul utilisateur, que celui-ci avait perdu les droits d'administrateur, et qu'il faut les droits d'administrateur pour pouvoir justement modifier les droits, nous ne pouvions plus rtablir la situation. Aprs quelques essais aussi divers qu'infructueux ds notre mconnaissance de ce systme, il a finalement fallu passer par des redmarrages en mode de rcupration pour viter d'avoir rinstaller Ubuntu et la totalit des outils de dveloppement.
by Olivier Guillion


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
Jan 23rd, 2015 at 04:53pm 
Article from Didier Guillion
ACAM sur Mac tape 18
Jan 22nd, 2015 at 04:53pm 
Article from Olivier Guillion
Acam Winter tape 32
Jan 21st, 2015 at 04:54pm 
Article from Didier Guillion
ACAM sur Mac tape 17
Jan 20th, 2015 at 04:58pm 
Article from Olivier Guillion
Acam Winter tape 31
Jan 19th, 2015 at 04:55pm 
Article from Didier Guillion
ACAM sur Mac tape 16
Jan 16th, 2015 at 05:49pm 
Comment from dheo
Keyboard Input
Jan 16th, 2015 at 05:49pm 
Comment from dheo
Keyboard Input
Jan 16th, 2015 at 05:49pm 
Comment from dheo
Keyboard Input
Jan 16th, 2015 at 05:49pm 
Comment from dheo
Keyboard Input
Jan 16th, 2015 at 05:49pm 
Comment from dheo
Keyboard Input

Top of page
Last update:  (c) Myriad