Résultats de la recherche

Mot clé : ‘logiciel’

Back to code : MPR

Si vous me connaissez, le titre vous a peut-être mis la puce à l’oreille.

En effet je me suis remis à coder, après des mois et des mois d’abstinence, alors que je faisais principalement de la photo. Non je ne vais pas devenir photographe pro : ma vocation est dans l’informatique, mes compétences principales aussi.

Bien évidemment je continue la photo comme hobby, mais j’ai recentré mes priorités. J’ai des rêves, j’ai des idées. Je rêve un jour de pouvoir les concrétiser. Hélas, ca demande du temps, beaucoup de temps. Je suis intraitable sur la partie « réalisation technique » et je ne supporte pas le travail mal fait, instable et peu fiable. Je suis un maniaque de la complétion et je ne peux pas imaginer qu’une de mes réalisations ne fasse pas au moins le café (les geeks comprendront).

Je me suis donc remis sur un projet fondamental qui végétait depuis trop longtemps, la brique de base de tous mes projets rêvés, celle qui selon moi est indispensable : MPR. MPR pour Meta-Portable Runtime (et non pas multi-purpose room) se veut être une couche d’abstraction pas simplement au dessus du système, mais carrément au dessus des bibliothèques system-dependant ou simplement fondamentales.

Prenons un exemple. Il est selon moi inconcevable de développer un logiciel quelconque s’il n’est pas multilingue dès le  départ. Qui dit « multilingue » dit « utilisation de strings Unicode ». Quelle implémentation de strings Unicode semble solide et multi-plateforme ? Celle d’IBM peut-être : ICU. Oui mais voilà, si un jour ICU n’est plus supporté ? Si un jour ICU pose fondamentalement un problème dans son utilisation ? Si un jour sa licence change et qu’ICU devient proprio ? Si je veux porter mon appli sur une plateforme totalement exotique (prenons la PlayStation 1 pas exemple) alors qu’ICU ne la prend pas en charge ?

Dans ce cas, je vais devoir utiliser autre chose qu’ICU pour cette plateforme, voire me désolidariser entièrement d’ICU. La première solution semble être la moins douloureuse, mais quid des interfaces de cette bibliothèque qui sont utilisées partout dans le projet à porter ? Il faut repasser sur tout ? Tout modifier ?

C’est la que se situe MPR. Si l’application est développée au dessus de MPR, celle-ci fait office de couche d’abstraction et dissocie le code important (le logiciel) des interfaces des bibliothèques utilisées (les bibliothèques système, les strings Unicode, etc…).

Une fois que l’on a compris ca, on se rend compte de l’immensité du projet MPR, mais surtout du nombre incroyable d’interfaces à écrire pour tout abstraire. Ne parlons même pas de la documentation. C’est beaucoup trop long, surtout compte tenue de la verbosité du C++. Je travaille donc actuellement sur un générateur de C++ qui parse en entrée un fichier ayant une syntaxe plus simple et bien moins verbeuse pour en sortir du beau C++ bien rangé, optimisé et documenté.

MPR devrait (je pense) être rendue publique dans quelques temps sous une première forme ne gérant que quelques fonctionnalités indispensables (strings Unicode, fichiers et streams, interfaçage avec Python, threads), et ce sous une licence permissive (genre BSD ou quelque chose de proche).

Je mettrai surement de temps en temps des bouts de code ici, histoire d’avoir des avis. Stay tuned ;)

Categories: Informatique, Programmation Tags: ,

Windows 7

J’en avais marre de ce vieux XP qui traînait sur mon ordi fixe, qui bugguait toujours, dont les applications lançaient toujours ces énervantes fenêtres avec la grosse croix rouge qui fait « Bong ! », qui refusait une fois sur deux de s’éteindre après que je le lui aie demandé… Bref après presque neuf ans de (presque) bons et loyaux (hum…) services, j’ai fini par dire au revoir au dinosaure.

Vista avait été une catastrophe chez moi. A peine installé, j’étais revenu sur ce bon vieil XP qui tournait à peu près et ne me demandait pas 20 confirmations pour installer Visual Studio.

_Vous êtes sur ?

_ Oui !

_ Sur de vrai sur ?

_ OUI !!

_ Nan mais y’a ptet quelqu’un qui signe son document « Petit Mou Corp. » qui veut vous faire du mal ! Vous voulez vraiment installer « Petit Mou Studio Visuel 2008 » ? Ca semble louche…

_ OUI !! Bordel !

_ Et cet outil de « Petit Mou Inc. » qui doit s’installer avec ?

_ Raaaah !!

Maintenant Seven est sorti, et il faut bien le dire, Seven est quand même bien plus abouti que Vista (qui a dit « on sort enfin de la bêta ? »).

Le nouveau thème est beau, plein de petits trucs pratiques ont été rajoutés à l’UI pour que ca soit agréable à utiliser. Ca rame pas trop, on se paye même le luxe que ca soit a peu près fluide ! Incroyable.

M’enfin, depuis deux jours que je tourne dessus je peux déjà poser quelques griefs (le monde n’est pas parfait, ou plutôt si il était parfait alors que Windows existait, je me poserais de vraies questions…) :

  • Ca a ramé/freezé quelques fois, mais pas plus qu’XP. On reste donc dans un système Microsoft (on a les pieds sur terre quand même…)
  • Je dois dire adieu à ma webcam Philips Toucam Pro 2 qui a le malheur d’avoir été conçue par un constructeur (Philips pour ne pas le dénoncer) qui, en plus de ne pas savoir coder un driver sans le faire segfault 9 fois sur 10, se fout de ses client en n’assurant pas de compatibilité de ses produits et chez qui je ne suis pas prêt de racheter quoi que ce soit.
  • la gestion du tri-écran déconne presque à tous les coups, à moins que ca soit les drivers nVidia qui soient toujours pas au point. Bref, quand ça démarre, il faut toujours qu’un des écrans (et toujours le même) ne sorte pas de sa veille. Faut dire que c’est un écran Philips (combo !). J’ai peut être vraiment la poisse…
  • Mon scanner a pas l’air d’avoir un driver qui fonctionne. Je dois me repencher dessus mais ca sent mauvais. C’est pas un scanner Philips au moins… quoique c’est un Agfa… qui a aussi décidé d’arrêter les scanners…

Sinon ca fait bizarre d’être sur un système 64 bits, avec des applis qui tournent en 32 et d’autres en 64. Le truc le plus bizarre dans tout ça c’est l’organisation foireuse des logiciels dans le système : un dossier « C:\Program Files » (nommé immondément Programmes) qui sert pour toutes les applis qui sont comme le système, en 64 bits, et un autre « C:\Program Files (x86) » pour tout ce qui est 32 bits…

On a aussi cette distinction cheloue dans « C:\Users\Ornthalas\AppData » où on trouve les dossiers :

  • Local
  • LocalLow
  • Roaming

Il va falloir se faire à cette nouvelle architecture…

Pour l’instant je croise les doigts. Les petits problèmes de drivers viennent gâcher le plaisir mais au moins je suis à jour sur un système plus réactif, sécu et propre que le précédent.