Myriad Blog 1.3.0 Monday, Jan 26th, 2015 at 03:38am 

To be seen Friday, May 5th, 2006 at 04:35pm
Dbranche, dbranche tout
Ne vous tes-vous jamais demand quelle puissance lectrique consomme votre ordinateur lorsque vous vous en servez ?
Et lorsque vous ne vous en servez pas ?
 
On nous rabat en permanence les oreilles avec la consommation des appareils en veille, mais jamais personne ne donne de valeur fiable, mesure, et peu de gens ont eu l'occasion de le vrifier sur leurs propres appareils, chez eux.
 
Cela faisait longtemps que je pensais me fabriquer une prise gigogne, connecte un ampremtre, qui me permettrait de faire cela. Trop longtemps. On trouve maintenant un peu partout des petits machins tout faits de ce genre. Outre la consommation instantane, ils permettent de calculer la consommation cumule sur une priode, et mme de donner le prix que cela a cot.
 
Je vous livre donc les valeurs que j'ai pu collecter sur du matriel informatique, titre d'info. Pour vous donner une ide, une puissance de 1W consomme jour et nuit pendant un an correspond approximativement 1 euro sur la facture annuelle.
 
AppareilEteint (W)En veille (W)En marche (W)(1)
Ordinateur PC P-IV 3 GHz 2,34,190 160 (100)
Barebone PC AMD 2 GHz 2-70 90 (80)
Ordinateur PC P-III 1.6GHz4,3-60 110 (70)
Ordinateur Mac G4 Bipro 1.2GHz7,312,6130 150 (135)
Moniteur 19" cathodique Samsung 04,2580 100 (85)(2)
Moniteur 19" plat Viewsonic0022,3 24 (23)(2)
Freebox V4-9,49,4

(1) Les valeurs donnes sont : minumum, maximum et moyenne entre parenthses
(2) La consommation varie en fonction de la luminosit de l'image.
 
Chose amusante, la consommation d'un ordinateur est dpendante du travail qu'il fournit. Un gros calcul peut lui faire consommer jusqu' 40 60 W de plus que lorsqu'il attend simplement que vous bougiez la souris.
 
Encore plus surprenant, un ordinateur teint (grce au bouton de la face avant) continue consommer pas mal d'nergie. Est-ce parce que le circuit primaire de l'alimentation reste sous tension ?
 
Et titre de comparaison, quelques autres consommations d'appareils hi-fi ou vido courants:
 
AppareilEn veille (W)En marche (W)(1)
Tlviseur cathodique 70cm (annes 90) 1680 130 (100)(2)
Graveur DVD de salon disque dur328
Dcodeur satellite413
Magntoscope VHS29
Chaine Hifi Sony (annes 90)9,720 24

 
En faisant la somme des consommations des appareils en veille, on arrive rapidement un rsultat non ngligeable, mme si les constructeurs ont fait de gros progrs en ce sens ces dernires annes ( l'exception d'Apple, apparemment...). Cependant, je n'irai pas jusqu' conseiller de dbrancher tous les appareils lorsque vous ne vous en servez pas. Les magntoscopes, par exemple, sont connus pour avoir des alimentations fragiles qui ne supportent pas bien ce traitement. Et la rparation de l'appareil risque de vous coter plus que ce que vous auriez conomis...
by Olivier Guillion
 3 comments.

Dev News Sunday, May 7th, 2006 at 10:35am
Les mystres du "crash.log"
Si vous tes utilisateurs de nos produits sur PC, vous avez peut-tre eu la malchance de voir apparatre un jour, avant que le programme ne se ferme inopinment, une petite bote d'alerte vous demandant de nous renvoyer un fichier appel "crash.log".
De quoi s'agit-il exactement, et quels renseignements peut-il nous apporter?
Je vais tenter d'y rpondre, sans trop entrer dans les dtails techniques.
 
Le microprocesseur de votre ordinateur, lorsqu'il est en train d'excuter une application, utilise, pour stocker les valeurs intermdiaires de ses oprations, une srie de mmoires internes appeles "registres".
Il sait tout moment, grce ces registres, quel endroit il est dans le programme (donc quelle sera la prochaine instruction effectuer), quelles sont les zones de mmoire auxquelles il va accder, en un mot tout ce qui dfinit son tat un instant donn.
 
Lorsqu'une erreur survient (division par zro, tentative d'excuter une instruction inconnue pour ce microprocesseur, tentative de lire ou d'crire dans une zone de mmoire non valide), le programme s'arrte et gnre une "exception".
Ces exceptions, donc la plus connue est numrote "C0000005" (justement, lecture ou criture dans une zone de mmoire non valide) sont traites par dfaut par Windows, et provoquent l'apparition d'une bote disant qu'un problme a t rencontr, et qu'un rapport d'erreur peut tre envoy Microsoft.
 
Aux dernires nouvelles, ces rapports d'erreur, leur arrive chez Bill, s'ils ne concernent pas des produits Microsoft (et mme!), sont envoys directement dans un dossier spcial, appel poubelle, corbeille, ou classement vertical selon les jours. Ils ne sont donc d'aucun intrt pour nous, ni pour personne d'autre, d'ailleurs.
 
Dans nos produits, nous avons donc remplac ce traitement inutile par la gnration d'un fichier "crash.log", qui contient tous les renseignements nous permettant de savoir ce qui s'est pass:
 
- Nom et version de l'application
- Date de cration de l'application
- Version de Windows de l'utilisateur
- Date et heure du crash (GMT)
- Type d'erreur rencontre
- Liste des registres du microprocesseur
- Instructions en cours d'excution lors du crash
- Et enfin, contenu de la "pile", zone mmoire permettant de connatre le sous-programme ayant appel la fonction en cause, ainsi que le sous-programme ayant appel ce sous-programme, etc.
 
A partir de cela, nous pouvons gnralement savoir:
- l'application ayant subi le crash, ainsi que sa version,
- la version de Windows,  
- approximativement quelle tait l'opration effectue lorsque le crash est survenu (mais pas toujours).
 
En aucun cas nous ne pouvons connatre le dtail de ce que faisait l'utilisateur ce moment-l, sur quel fichier il travaillait, ce qu'il voyait l'cran, quelle tte il a fait en voyant apparatre la fentre d'erreur (quoique, s'il avait sa webcam branche...), donc une explication, mme succinte, des conditions dans lesquelles cela s'est produit, le fichier en cause, bref tout ce qui nous permet de reproduire le problme chez nous, est absolument indispensable.
 
Ds que nous pouvons reproduire une erreur volont, 99% (ou mme plus) du travail est dj fait, et c'est donc l'assurance d'une correction rapide.  
Alors, en pensant nous, vous pensez aussi vous...
by Olivier Guillion

Myriad Life Tuesday, May 9th, 2006 at 07:15pm
B.A.T.
Les nouvelles versions d'Harmony Assistant (9.2), Melody Assistant (7.2), Myriad plug-in (5.2) et Melody Player (4.2) ont t mises disposition aujourd'hui.
Cela concrtise une session de beta-test de quatre mois (la plus longue de notre histoire), accompagne de centaines de corrections et amliorations diverses.
 
Une journe de sortie de nouvelle version n'est pas une journe habituelle. C'est un peu comme lorsqu'on part en voyage en emmenant tout un lot de valises : on fait attention penser tout, et lorsqu'on est enfin parti, on a toujours l'impression d'avoir oubli quelque chose, ce qui s'avre gnralement tre le cas, d'ailleurs.
 
Mme chose ici : une dernire compilation, quelques tests pour voir si tout fonctionne, puis vrification des fichiers de donnes (o est donc pass le fichier d'accordage du dulcimer bretelles ? Tu ne me l'as pas pass ?), et cration des archives installables compactes.
Ici, nous appelons a les B.A.T. (de Bon A Tirer), d'o les nologismes Myriadien "un bat" (prononcer "batt") et "bater":
"- C'est aujourd'hui qu'on bate
ou
- Quoi, t'as pas bat le plugin ? Ane bt!"
 
Avec 4 plateformes diffrentes (Windows, Mac OS X Intel, Mac OS X powerPC et Mac OS 9) pour 4 produits, a en fait un paquet, de "bats".  
 
J'ouvre alors ma "to do list", pour essayer de ne rien oublier.
 
Une dernire vrification " blanc" de l'intgrit de ces archives en tlchargeant sur notre intranet et en les essayant, puis il faut les poster sur notre site externe. C'est gros et a prend du temps, dont on profite pour prparer la mise jour des numros de version sur les pages Web, ainsi que les "quoi de neuf".
 
Suit la cration des archives monobloc pour nos sites miroir. Il y en a une trentaine, et elles permettront de dporter une partie du trafic de tlchargement hors de notre site principal.  
 
C'est gnralement aux alentours de ce moment qu'on reoit un mail disant qu'il y a un gros problme dans la version beta, ce qui nous oblige corriger en vitesse, et tout recommencer depuis le dbut.
 
Ensuite, pour changer, vrification des archives postes: tlchargement et essai de chacun des produits (ce n'est jamais que la troisime fois).
 
Enfin, on poste les pages Web, on l'annonce dans le forum de discussion et on envoie les lettres d'information par e-mail.  
Et c'est alors qu'on s'aperoit que la journe est finie, et qu'il est temps d'aller manger un sandwitch, prendre une bonne dose d'aspirine et aller au lit.
 
Le reste, ce sera pour les jours suivants. D'exprience, je peux vous dire qu'il y en aura toujours au moins un qui attend patiemment que la session de beta-test soit termine pour entamer des essais en profondeur de la nouvelle version et dnicher les problmes. Quand il ne se contente pas d'envoyer un message du type "l'import de fichier Finalius ne fonctionne toujours pas", alors qu'il ne nous en avait jamais averti auparavant...
 
On s'attend donc toujours devoir sortir une sous-version dans la semaine qui suit. Une autre belle journe en perspective...
by Olivier Guillion
 1 comment.

Mood Friday, May 12th, 2006 at 07:54pm
Du sang, de la sueur et du code
Depuis quelque temps dj, Metrowerks a abandonn sa version du compilateur C/C++ Codewarrior sur Windows et Mac OS.
C'tait un produit excellent, tant en terme d'ergonomie que de performances, et qui n'est gal par aucun des produits restant sur le march.
 
Car le choix des compilateurs C (outils permettant de dvelopper des programmes dans ce langage) s'est fortement rduit ces dernires annes, ceci tant probablement li la complexit grandissante des "couches" propritaires des systmes d'exploitation (.NET, Cocoa...), et des langages spcifiques (C#, Objective C...) qui sont apparus.
Ces langages plus ou moins "propritaires", s'ils ne sont pas mauvais en eux-mmes, posent cependant le problme de la portabilit des applications d'une plateforme l'autre. Alors qu'avec un bon vieux source C bien crit, ce problme ne se posait -presque- pas.
 
Basiquement, sur PC il ne reste plus que Microsoft Visual C/C++, bien adapt de gros projets, mais l'ergonomie contestable, truff de gadgets microsoftiens permettant de crer des objets trs spcifiques, destins fonctionner uniquement sur Windows.
Quelques essais de portage d'interface graphique autour de compilateurs issus du monde du libre (GCC) on bien t tents, mais jamais transforms.  
 
Sur Macintosh, cet essai a galement t tent, et a abouti XCode, qui est bien meilleur que les timides tentatives sous Windows, mais malgr tout largement au-dessous de ce qu'avait ralis Metrowerks en son temps, et qui pose la question cruciale du dveloppement de gros projets sous Mac OS X. Le compilateur est extrmement lent, ne gnre pas un code trs optimis, et on sent bien le "raboutage" de parties disparates qui a t effectu pour crer ce produit.
Pour ce qui est de la rapidit et de l'optimisation, au moins sur MacTel, la solution pourrait passer par Intel, qui propose un compilateur utilisable dans XCode. Le prix semble cependant plutt prohibitif ($400) pour un simple module de compilation. Nous n'avons pas encore eu l'occasion de tester cette solution.
 
Ce que je n'arrive pas m'expliquer, c'est pourquoi, lorsqu'un diteur de logiciels abandonne un produit sans esprer un jour le reprendre, il ne rend pas public le code source de l'application, laissant une communaut d'utilisateur (qui, de plus, sont ici tous des programmeurs) continuer son dveloppement en "libre". Quelle perte financire cela entranerait-il?
 
Et Metrowerks n'est pas le seul exemple. Apple a abandonn purement et simplement le dveloppement de ses outils de dveloppement Macintosh Programmer Worskhop. Pourtant, l'quipe Apple charge de MPW tait d'accord pour passer le logiciel en OpenSource et ne pas trancher la gorge aux dveloppeurs qui avaient navement suivi leurs recommandations. C'est la division "juridique" qui a mis son vto au dernier moment. Apple semble vouloir agir de mme avec son diteur de ressources Resedit, prfrant, pour des raisons obscures de copyright, laisser les programmeurs dans la mouise plutt que de leur permettre de continuer dvelopper confortablement (sur des machines Apple, qui plus est).
 
Malheureusement, beaucoup de dcisions de ce type sont plus politiques que diriges par le bon sens, et, pour ces socits, le respect de leurs propres clients semble tre le cadet de leurs soucis.
by Olivier Guillion

Dev News Saturday, May 20th, 2006 at 07:51pm
Du glyphe l'Unicode (1)
Dans le cadre du projet "PDFToMusic" (voir les autres articles), nous avons t amens tudier les divers moyens d'effectuer une reconnaissance simple de caractres. Ceci permettrait, lorsqu'on trouve dans un fichier PDF un caractre dessinant par exemple une cl de sol, de savoir qu'il s'agit bien d'une cl de sol et pas d'autre chose.
 
Dans ce projet, contrairement une vritable reconnaissance de textes scanns, nous avons seulement besoin de diffrencier les caractres individuels au sein d'une fonte, ce qui supprime d'un coup plusieurs problmes inhrents aux reconnaissances optiques conventionnelles :  
 
1- Les caractres sont "propres", c'est--dire que tous les pixels sont leur place, qu'il n'y a pas de possibilit de poussire, ou dfaut de numrisation qui pourraient perturber la reconnaissance
 
2- Les caractres sont isols. On connait exactement la taille et la position du caractre analyser. Impossible d'avoir malencontreusement deux caractres conscutifs confondus avec un seul (notamment avec des paires commes "ff" ou "ft" dont les constituants se touchent graphiquement), ou un caractre coup en morceaux comme par exemple avec les deux points de la cl de fa.
 
Une premire tape, de pr-analyse, consiste voir s'il n'y aurait pas des valeurs et paramtres quantifiables, indiscutables, permettant de se passer d'intelligence artificielle ou de calculs statistiques complexes pour identifier le caractre.
 
Une premire maquette est crite en MyrScript.
 
Le caractre est affich, puis le nombre de pixels "noirs" sur chaque ligne et sur chaque colonne est calcul. Un double histogramme est alors trac, avec des couleurs dpendant du nombre de "trous" dtects lors du balayage de la ligne ou de la colonne.
 
Ensuite, divers traitements sont essays.
 
Le premier combine les histogrammes horizontaux et verticaux afin d'obtenir une "empreinte" du caractre. Nous la calculons avec le mme caractre dans diverses fontes musicales, mais malgr d'assez importantes similitudes, cela ne semble pas tre suffisamment "stable" pour permettre une reconnaissance.
 
Deuxime essai. L'aspect du caractre est analys, et les "directions" des tracs sont extraites. Le graphe obtenu montre en rouge les lignes "plutt verticales", en vert les lignes "plutt horizontales" et en bleu les lignes "plutt diagonales". Une comparaison directe de ces paramtres un jeu-type semble difficile, mais les rsultats sont suffisamment significatifs pour garder ceci dans un coin et ne pas le jeter tout de suite.
 
Troisime essai. Afin de s'abstraire de l'paisseur des traits constituant le caractre, le script tente de le "fildefriser", de rduire tous les traits un seul pixel d'paisseur. Si cela ne permet pas de dterminer ce qu'est le caractre, cela pourrait au moins tre utilis pour simplifier une comparaison ultrieure.
 
Beaucoup des programmes que nous crivons sont seulement des tests destins finir la corbeille. C'est probablement le cas de ce petit outil d'analyse, qui nous a permis d'exprimenter quelques techniques, et d'essayer d'extraire des paramtres quantifiables du graphisme d'un caractre.
 
La reconnaissance du caractre s'avre cependant complexe (nous nous y attendions), et doit probablement passer par des algorithmes de discrimination un peu plus volus qu'une simple srie de comparaisons.  
 
Nous nous penchons donc sur les rseaux de neurones, qui semblent souvent employs dans les programmes d'OCR (Optical Character Recognition)...
by Olivier Guillion
 2 comments.

Dev News Wednesday, May 24th, 2006 at 04:55pm
Du glyphe l'Unicode (2)
Le cerveau humain, partir des informations visuelles qui lui sont transmises, distingue assez facilement (aprs un petit apprentissage), une cl de sol d'une cl de fa, un "M" d'un "T", etc.
L'ide de simuler le fonctionnement des neurones dans un programme coulait donc de source.  
 
Concrtement, un rseau de neurones "informatique" se prsente en couches, comme un plat de lasagnes:
 
- Une srie de neurones dits "d'entre", chacun d'entre eux recevant une valeur quantifiable dpendant de l'objet analyser. Ce peut tre la luminosit d'un point, mais aussi un rapport largeur/hauteur du caractre,  l'paisseur moyenne de ses traits, en fait tout paramtre pouvant avoir une utilit dans la discrimination.  
 
- Une srie de neurones dits "de sortie", chaque neurone correspondant une valeur possible dterminer. Par exemple, si on veut que le rseau de neurones soit capable de trouver quelle lettre (A-Z) correspond le caractre analys, il faudra 26 neurones de sortie, un par lettre possible
 
- Entre l'entre et la sortie, une ou plusieurs couches de neurones dits "cachs".
 
Chaque neurone de chaque couche est reli chaque neurone de la couche suivante, par une liaison plus ou moins "forte". Au dpart, la force de chacune des liaisons est choisie au hasard, et le rseau est incapable de reconnatre quoi que ce soit.
 
Ensuite, on prsente au rseau des exemples de caractres dterminer. Il essaie (et choue). Il faut alors lui enseigner de quoi il s'agissait. Cet apprentissage affaiblit les liaisons qui ont conduit l'erreur et renforce celles qui favorisent un rsultat correct.
 
Si les valeurs alimentant la couche d'entre sont bien choisies, si le rseau est correctement dimensionn, et si l'apprentissage est bien rgl, le rseau, petit petit, apprend, et au bout de quelques milliers d'exprimentations et d'apprentissages, devient capable de distinguer quelque chose. Aprs 50 100000 apprentissages, il se dbrouille pas mal.
 
Nous avons crit un prototype d'un tel rseau en MyrScript, et l'avons fait travailler sur des exemples de caractres (comme les lettres de A Z crites en diffrentes tailles et diffrentes fontes). Une dizaine de milliers d'apprentissages plus tard, le rseau obtient un taux de fiabilit de 99% sur les exemples qui lui ont dj t fournis, et plus de 90% sur des exemples issus d'autres fontes proches mais pas identiques.
 
Globalement, les rsultats sont donc encourageants. Seul petit bmol : la masse de calculs devient assez consquente. Pour un tout petit rseau de neurones de 3 couches de 26 neurones, il faut effectuer 1352 oprations pour obtenir un rsultat. Si on passe le nombre  de neurones par couche 120, il en faut 28800.
 
MyrScript commence peiner un peu, et nous nous apercevons que le rglage du "taux d'apprentissage" s'avre crucial. Il dtermine si le rseau apprend vite ou lentement de ses erreurs.
Trop vite, et une correction d'une de ses erreurs lui fait "oublier" ses apprentissages prcdents, et trop lentement, il commet inlassablement la mme faute, sans apprendre se corriger.
 
Enfin, si on dsire rduire le nombre de paramtres d'entre pour simplifier le rseau, il faut choisir des critres quantifiables facilement extractibles du dessin du caractre. Quels qu'ils soient, leur choix sera dict seulement par notre propre intuition, et risque de s'avrer moins performant qu'attendu.  
 
Cette mthode fonctionne donc, mais avant de passer l'tape suivante de l'analyse, nous prfrons explorer d'autres voies similaires, bases sur les statistiques de rpartition des pixels dans chaque forme de caractre. Cela permettrait d'allger les calculs et d'obtenir un apprentissage plus rapide qu'avec un rseau neuronal classique...
by Olivier Guillion
 7 comments.


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