Si je comprend bien, tu poses xppq en « concurrent » de solutions comme getopt ou autre moyen de facilement gérer des paramètres en ligne de commande.
Pas tout à fait. xppq, c'est juste un préprocesseur XML. J'ai écris ce journal pour signaler que c'est le successeur de feu xppq, et j'en ai profité pour parler de ce nouveau système de gestion des arguments de la ligne de commande, car c'est le premier utilitaire que je publie qui l'implémente. Mais comme tous les autres utilitaires que je publierais seront, à l'instar de expp, basés sur le framework Epeios, ils implémenteront également ce système de gestion des arguments de la ligne de commande. xppq n'est pas plus lié à ce système que ne le seront ces autres utilitaires.
Ceci dit, j'ai effectivement codé ce système pour remplacer celui que j’avais précédemment codé et qui présentait de très fortes similitudes avec getopt. Dans ce sens, ce système peut effectivement être vu comme un concurrent à getopt.
Donc, c'est un outil (lib ?) plus à destination d'un développeur que d'un utilisateur, même si de par son design, l'utilisateur a la possibilité aussi de changer des trucs ?
Non, même pas. Pour l'instant, j'ai juste parlé de ce système pour le faire connaître, et j'en ai parlé en conjonction avec xppq pour mettre en évidence que ce n'est pas juste un concept, mais qu'il en existe bel et bien une implémentation fonctionnelle.
Actuellement, il n'existe pas de bibliothèque, en tant que telle, dédié à ce système. Ce système n'existe qu'en tant que fonctionnalité du framework Epeios. Mais il est bien entendu envisageable d'isoler le code dédié à ce système pour le mettre à disposition sous forme de bibliothèque indépendante. C'est en partie pour éventuellement susciter ce genre de démarche et pour en juger l'opportunité que ce journal a été écrit.
Et donc, ce fichier de configuration, il doit accompagné le logiciel distribué ? Il se situe où dans l'arborescence du système ? Chez l'utilisateur ou au niveau système ? Et le logiciel, il contient quoi comme type de code pour « utiliser » les paramètres ? Il dépend de ta lib ? C'est une lib ou pas en fait ? xppq est utilisé plutôt ? Comment il fait le lien avec le code du logiciel ? process c'est un exécutable classique ? qui dépend d'une lib xppq pour quand même lire les valeurs des arguments ?
Comme écrit plus haut, xppq n'est lié à ce système que parce qu'il est basé sur le framewok Epeios. En l'état, pour mettre en œuvre ce système de gestion des arguments de la ligne de commande, c’est tout le framework qu'il faut mettre en œuvre, ce qui implique une approche du développement en C++ (qui est le langage dans lequel est codé le framework Epeios) en particulier et du développement en général qui sort des sentiers battus.
Bon, tu vois, j'ai pas tout compris, c'est pas clair pour moi :)
Ça ne m’étonne pas ; je n'ai jamais été très doué pour écrire de la documentation…
Question bonus : pour moi la différence entre paramètre et argument, c'est que le paramètre c'est ce que tu déclare une fois pour toute en disant « ceci est un paramètre de mon programme » et un argument c'est une instantiation d'un paramètre dans une utilisation particulière : « j'appelle mon programme avec ceci comme argument (sous-entendu pour un paramètre particulier) ».
C'est comme ça que tu le vois ? J'ai l'impression que non puisque tu appelles « arguments » ce que tu mets dans le fichier de configuration alors que ce ne sont pas des arguments selon la définition que j'en ai… Ton avis ? :)
Mon emploi de l'un ou l'autre terme est plus une question de feeling que le fruit d'une véritable réflexion. Je pense que, pour l'idée que je m'en fais, ces deux termes sont assez interchangeables…
Pour nous émanciper des géants du numérique : Zelbinium !
Juste pour préciser qu'une machine équipée d'un processeur sans VT-d n'est pas nécessairement impropre à faire tourner des VM. Ainsi, j'ai une machine animée par un i7-3770K (sans VT-d donc) sur laquelle VMware Player et Virtual Box tournent sans (presque) aucun problème…
Une machine équipée d'un i7-4770K, qui a des caractéristiques similaires à ceux du i7-3770K en termes de virtualisation, pourra donc probablement également faire tourner des VM…
Pour nous émanciper des géants du numérique : Zelbinium !
C'est sous MS-DOS, pour ceux qui ne connaissent pas. Autant ln -s ne me pose aucun problème (il faut dire que je l'utilise souvent qu'avec un seul argument), autant je suis toujours obligé de m'y reprendre à plusieurs fois avec mklink pour trouver la bonne option à utiliser, bien que j'affiche systématiquement la page d'aide, ne fût-ce que pour retrouver le libellé des options…
Pour nous émanciper des géants du numérique : Zelbinium !
Bon, ça ne va pas parler à grand monde, mais cet antagonisme Word/LaTeX me fait penser à un autre, celui de Finale/Lilypond.
Je n'ai jamais écrit de document pour LaTeX, mais, paraît-il, le langage de Lilypond est similaire à celui de LaTeX, et les logiciels du genre Finale s'apparenterait plutôt à Word, de par leur coté WISIWYG. Je mentionne Finale parce que je l'ai un temps utilisé, mais je pense que tout ce que j'écris à son propos dans ce texte pourrait s'appliquer à ses autres concurrents WISIWYG, comme Sibelius, par exemple.
Autre similarité. Pour ce que j'en sais, LaTeX se base sur TeX, ce dernier ayant été développé pour produire des documents de meilleures qualités (plus jolis) que ceux produits par les outils disponibles à l'époque de sa genèse. Or, Lilypond a été développé exactement pour la même raison. Lilypond, dont les auteurs avaient préalablement travaillé sur MusiXTeX, dont le but était de produire des partitions musicales en s'appuyant sur… TeX !
Ayant un temps utilisé Finale, je suis passé à Lilypond surtout à cause de la qualité des documents produits (qui n'ont absolument rien à envier aux partitions produits par les plus grandes maisons d'éditions), mais également, il me faut bien l'avouer, parce que Lilypond est gratuit.
Ceci dit, saisir une partition dans Lilypond est assez rébarbatif, cependant, à mon goût, bien moins que d'avoir à placer les notes sur une portée avec la souris (même s'il est possible d'utiliser un clavier MIDI, reste quand même la saisie des rythmes).
Pour rendre l'utilisation de Lilypond plus facile, j'ai développé un petit utilitaire avec lequel je saisis (à savoir à l'aide d'un clavier MIDI) d'une part la mélodie, sans tenir compte du rythme, puis j'ajoute le rythme, pour, au final, obtenir un fichier XML décrivant la mélodie et les rythmes associés. Ensuite, j'applique une transformation XSL sur ce XML, pour obtenir un fichier Lilypond, fichier que j'édite ensuite avec Frescobaldi (une surcouche à Lilypond), pour ajouter les nuances et autres annotations nécessaires.
Cette manière de travailler me convient parfaitement. Or, cela n'a été est rendu possible par le fait que le format Lilypond est du pur texte. Étant donné la nature du format des ses documents, ainsi que de ses fonctionnalités (du moins à l'époque quand je l'utilisais), je ne crois pas qu'il m'aurait été possible de mettre en place une méthodologie de travail similaire en utilisant Finale.
Il est clair que pour écrire une partition de quelques lignes, cela serait sans doute plus rapide avec Finale. Mais pour un projet un tant soi peu conséquent, Lilypond (en conjonction avec les outils cités ci-dessus) reste pour moi le logiciel le plus adapté, parce qu'offrant plus de souplesse, et me permettant ainsi d'être plus productif. Mais il paraît que certaines des plus grandes maisons d'éditions de partitions musicales utilisent Finale.
Si je devais émettre une hypothèse, ce serait que le problème des logiciels comme (La)Tex, ou Lilypond, c'est que les personnes les ayant développés l'ont fait avant tout pour eux-mêmes, pour répondre à leurs propres besoins. Or, le profil de ces personnes, notamment vu leurs antécédents de développeur (ce qui les a certainement poussé à utiliser un format texte), n'est de loin pas le plus répandu. Leur philosophie de travail, celles des outils qu'ils ont l'habitude d'utiliser, ne sont pas ceux de la majorité des utilisateurs auxquels sont destinés des produits comme Word ou Finale.
Pour nous émanciper des géants du numérique : Zelbinium !
Il y a à peu prés 15 ans, comme je m'étais acheté un nouvel ordinateur, j'ai décidé de recycler mon ancienne machine en serveur internet. J'avais envisagé d'y installer Windows (NT 4.0 à l'époque, si je ne m'abuse), mais elle n'était pas assez puissante. C'est à cette occasion que j'ai installé ma première distribution GNU/Linux, que je connaissais déjà, mais que je n'avais jamais utilisé. Depuis, je n'ai jamais cessé de m'auto-héberger.
Il me semble que j'avais déjà quelques pages Web hébergées par mon FAI, et je me rappelle plus la raison pour laquelle j'ai décidé de mettre en ligne mon propre serveur Web, toujours est-il que j'avais développé peu après une application Web codée en C++, et qu'aucun FAI à l'époque (et de nos jours encore me semble-t-il) n'acceptait d'héberger une application codée en C++. Du coup, le fait d'avoir mon propre serveur internet m'a permis de mettre cette application en ligne.
J'ai connu quelques mésaventures, comme un piratage de mon serveur au travers d'une faille du serveur DNS. Depuis, je n'ai plus jamais installé de serveur DNS sur ma machine :-) (et je suis plus attentif aux alertes de sécurité de ma distribution). J'ai également perdu mon nom de domaine de l'époque, parce que l'adresse e-mail que j'avais donné comme adresse de contact pour mon domaine n'était plus valide au moment de le renouveler (bon, ce n'est pas directement lié au fait de m'auto-héberger, mais cela s'inscrivait quand même dans ce contexte). Mais sinon, mis à part la phase initiale d'installation, qui est certes chronophage, mais que je trouve sans difficultés particulières, je ne consacre que quelques minutes par semaine (généralement pour lancer les mises à jour suite à une alerte de sécurités) à la maintenance de mon serveur…
A l'époque, je ne pense pas qu'il y avait possibilité pour un particulier de louer un serveur dédié, du moins à un tarif raisonnable (je n'avais pas cherché non plus), donc je n'avais guère le choix. De nos jours, vu les tarifs, si je continue de m'auto-héberger, c'est plus par habitude que pour d'autres raisons, qu'elles soient financières, techniques ou autres…
Pour nous émanciper des géants du numérique : Zelbinium !
En fait, j'avais regardé http://fr.wikipedia.org/wiki/CMake et m'était arrêté à : [CMake] est comparable au programme Make… (et cela correspondait à ce que je croyais savoir de CMake). Il est vrai que la description qui en est faite dans la suite de l'article présente de fortes similarités avec ce que réalisent mes scripts.
Ceci dit, l'avantage de ma démarche, c'est que je parvenais au résultat désiré juste en utilisant des outils qui n'étaient très familiers, et un fichier dont j'avais la maîtrise totale du contenu (modulo la structure due à l'utilisation de XML) et de sa signification. Mais ce qui est un avantage pour moi, parce que j'ai développé ces scripts, n'en serait pas un pour une tierce personne…
Pour nous émanciper des géants du numérique : Zelbinium !
On peut trouver un exemple de 'Project.xml' à cette adresse : http://hg.savannah.gnu.org/hgweb/epeios/file/tip/tools/expp/CLI. Le Makefile situé à la même adresse a d'ailleurs été généré à partir de ce 'Project.xml'. On peut trouver d'autres 'Project.xml', et les Makefile correspondants, disséminés un peu partout dans ce même dépôt.
Les XSL ne sont par contre pas hébergés sur un dépôt.
Pour nous émanciper des géants du numérique : Zelbinium !
D'après ce que j'en sais, cmake est similaire, dans son usage, à make, donc utilisé pour la compilation. Or, je ne lance pas mes scripts pour compiler le logiciel, mais pour générer les fichiers permettant cette compilation. La compilation proprement dite se fait à l'aide d'outils traditionnels (Visual Studio, make…). Donc, je ne pense pas que l'on puisse qualifier mes scripts de 'cmake-like'. Ils seraient plutôt, toutes proportions gardées, 'automake-like'.
Concernant Visual Studio, la dernière version est capable d'utiliser tel quel ou de convertir les fichiers issus de certaines précédentes versions. Cependant, j'ai modifié mes scripts lorsque j'ai changé de version, et ce ne devait pas être bien compliqué, car la seule chose dont je me souvienne, c'est d'avoir modifié le contenu de l'attribut qui semble correspondre à la version de Visual Studio. En tout cas, après modification de la valeur ce cet attribut ('ToolsVersion'), Visual Studio acceptait le fichier généré par mes scripts tel quel, sans demande de conversion.
Je n'ai jamais utilisé C::B…
Pour nous émanciper des géants du numérique : Zelbinium !
Pour ma part, pour chacun de mes logiciels, j'écris un fichier XML, nommons-le 'Project.xml', dont c'est moi qui ai décidé de la signification des balises et attributs qu'il contient. Il y a ainsi quelques balises descriptives (nom du logiciel, numéro de version du logiciel, auteur…), et de nombreuses autres plus techniques (nom et localisation des fichiers sources, options de compilation…). Grâce à un ensemble de scripts et de fichiers XSL que j'ai développés, je génère, à partir de ce 'Project.xml', les fichiers '.vcxproj' et '.vcxproj.filters' qui permettent de compiler le logiciel à l'aide de Visual Studio, ainsi que le Makefile qui permet de compiler le logiciel sous Cygwin avec G++ et MinGW, ainsi que sous GNU/Linux et MacOS.
Lorsque je veux, par exemple, ajouter/enlever/modifier un option de compilation, je ne passe pas par l'interface de Visual Studio, ni ne modifie le Makefile, mais modifie uniquement 'Project.xml', puis relance les scripts pour régénérer les différents fichiers.
J'envisage, dans un futur proche, d'offrir la possibilité d'utiliser Clang sous Windows pour compiler les logiciels que je développe. Et bien, pour cela, il suffira que je modifie les scripts et les fichiers XSL, sans toucher aux différents 'Project.xml', pour que les Makefile générés prennent automatiquement en charge Clang. Pas besoin de modifier manuellement tous les Makefile pour cela.
Je gère ainsi chacun de mes projets à partir d'un seul et unique fichier 'Project.xml', dont j'ai la totale maîtrise du contenu, puisque qu'il n'est destiné à être traité que par des outils que j'ai moi-même développé. Bien entendu, il a fallu développer ces différents scripts et fichiers XSL, ce qui m'a pris au final bien moins de temps que je ne le pensais, ayant l'habitude de travailler avec XML/XSLT, mais depuis que ces dernier sont écrits, je n'ai plus eu à modifier de Makefile ou équivalent, ni à me replonger dans la documentation de Visual Studio, ou de GNU make, ou d'un quelconque autre outil similaire…
Pour nous émanciper des géants du numérique : Zelbinium !
Personnellement, j'ai installé une Debian, à l'aide de Lil'Debi, et, du coup, j'accède à, et transfère des fichiers de/vers ma tablette Android via SSH. En outre, j'y compile et fais tourner nativement quelques-uns des mes programmes C++.
Contrairement à une autre application Android que j'avais essayé (je ne me rappelle plus laquelle), et qui installait également une distribution GNU/Linux, on peut, avec Lil'Debi, accéder à partir d'Android directement au système de fichier Debian.
Concrètement, je l'utilise pour générer, sous Debian, un fichier HTML (en réalité, un fichier XML associé à un fichier XSL), que j'ouvre avec Opera sous Android.
Pour nous émanciper des géants du numérique : Zelbinium !
Et si l'on veut absolument ne pas utiliser les exceptions C++ (ou que l'on veut disposer de quelque chose de comparable en C), on peut utiliser la bibliothèque standard setjmp pour les simuler, mais j'ignore si c'est rentable par rapport aux exceptions en terme de coûts…
Pour nous émanciper des géants du numérique : Zelbinium !
De mémoire, pour ce que j'en ai compris, -fno-rtti ne désactive pas les exceptions. Les d'informations relevant du mécanisme de runtime type identification nécessitées par ces dernières étant de toute façon générées, -fno-rtti ou pas.
Pour nous émanciper des géants du numérique : Zelbinium !
Je n'y connais absolument rien en Fortran, donc ce qui va suivre est peut-être, voire probablement, totalement inapplicable.
Le fait est qu'il y a moyen de permuter deux entiers sans passer par un troisième, avec l'opérateur XOR. En reprenant l'exemple en question, à la sauce C (^ étant l'opérateur XOR bit à bit) :
p2 = p1 ^ p2;
p1 = p2 ^ p1;
p2 = p1 ^ p2;
Suite à une recherche rapide sur le Web, Il semblerait que gfortran ai une opérateur XOR bit à bit ('IEOR', d'après ce que j'ai trouvé). Évidemment, cela ne suffit pas, car, s'il n'est pas possible d'appliquer cet opérateur directement sur des pointeurs (ce qui ne m'étonnerait pas outre mesure), il faut réussir à 'convertir' des pointeurs en entiers (sous condition que ces derniers ai la bonne taille) et vice-versa…
Pour nous émanciper des géants du numérique : Zelbinium !
Je ne suis pas un spécialiste du C++ 'standard', mais, de manière générale, une méthode 'const' ne devrait appeler que des méthodes 'const'.
Je m'étais moi-même trouvé dans une situation ou une méthode, qui ne modifiait pas fondamentalement l'objet sur lequel elle s'appliquait, d'où sa qualification en 'const', modifiait néanmoins un de ses membres (dans mon cas, c'était un cache), ce que le compilateur ne manqua pas de me faire remarquer de manière péremptoire tout en refusant de mener à terme son travail. Pour résoudre ce problème, j'ai déclaré le cache en question en 'mutable', ce qui m'a permis de laisser la méthode en 'const', à la grande satisfaction de mon compilateur, qui ne pipa plus mot.
Concrètement, pour le code présenté, pour ce que j'en ai compris, je déclarerais 'is_initialzed' en 'mutable', ce qui permettrait de déclarer 'initialize()' en 'const', et il n'y aurait plus besoin que d'une seule méthode 'mean' déclarée en 'const'. Ça devrait fonctionner, mais je ne sais pas si conceptuellement ça tient la route, car un 'initialize()' en 'const' me semble bizarre…
Pour nous émanciper des géants du numérique : Zelbinium !
Pour les 'simples' GPS TomTom, ils fournissent une application, appelée 'TomTom Home'. Or, cette application, du moins la version que j'en ai, est une application qui tourne sous 'XULRunner', qui est un environnement d'exécution qui existe également sous Linux. Le code de ces applications est généralement écrit en JavaScript, donc indépendant de la plateforme d'exécution.
J'ignore ce qui est fourni avec ta montre GPS, si c'est la même application, ou une autre s'exécutant également dans 'XULRunner', mais, le cas échéant, à moins qu'il n'y ai une partie en code natif, il suffit, en théorie, de récupérer sous Linux le répertoire d'installation de l'application, d'installer la bonne version de 'XULRunner', en fonction du 'MaxVersion' et du 'MinVersion' définis dans le fichier '.ini' présent à la racine de là où est installée l'application ('XULRunner' peut être installé par le gestionnaire de paquets de 'Debian' ; encore faut-il que la bonne version soit disponible), et de lancer 'XULRunner', en lui passant en paramètre ce même fichier '.ini', pour que l'application s'exécute telle quelle sous Linux…
Pour nous émanciper des géants du numérique : Zelbinium !
Je ne suis pas spécialiste en la matière, mais utiliser un convertisseur 24 bits sur un signal 16 bits devrait permettre de mettre en œuvre une interpolation plus fine, donc d'obtenir un signal plus proche du signal d'origine, et cela avant que ce dernier ne subisse un éventuel traitement électronique.
Du moins, c'est comme ça que je me justifie mon achat d'un DAC 24 bits pour écouter mes CDs rippés :-).
Accessoirement, toujours lorsque c'est utilisé sur un signal 16 bits, ça devrait évite les déformations de ce dernier lors d'une éventuelle atténuation dû au ReplayGain.
Pour nous émanciper des géants du numérique : Zelbinium !
RMS, c'est pour moyenner correctement une sinusoïde par rapport à un signal continu (de mémoire, c'est une racine carré de 2 qui traine).
RMS signifie, en anglais, Richard M. Stall… euh, pardon…, Root Mean Square, c'est-à-dire, en traduisant, la racine (carrée) de la moyenne des carrés (ah, si toutes les formules pouvaient être aussi faciles à retenir…).
Pour nous émanciper des géants du numérique : Zelbinium !
Pour autant que je me rappelle, GFA Basic n'était pas fourni avec l'Atari ; il fallait se le procurer à part.
En outre, nul besoin d'avoir un Atari ; GFA Basic était également disponible sur l'Amiga (bah oui, faut respecter les traditions ; on ne peut parler d'Atari sans évoquer Amiga, surtout un vendredi…).
Pour nous émanciper des géants du numérique : Zelbinium !
… quand je dis parler fort, c'est parlé très fort. Chose qu'on ne peut faire qu'en utilisant son thorax.
Ah non, on peut également, et c'est préférable, utiliser l'abdomen. C'est plus efficace et cela a un effet relaxant, contrairement à la respiration thoracique…
Pour nous émanciper des géants du numérique : Zelbinium !
New Project Submissions Re-enabled
posté par mjflick, mar. 22 nov. 2011 21:52:31 UTC - 0 réponse
Thanks to the efforts of new volunteers, we've re-enabled new project submissions.
Volunteers are still needed. If you're able and interested in volunteering please write savannah-hackers-public@gnu.org (or -private) if you prefer
Pour nous émanciper des géants du numérique : Zelbinium !
Les critiques au sujet de Sourceforge ne datent pas d'aujourd'hui, ni d'hier.
A partir de 2000, j'avais utilisé leurs services pour un de mes projets, jusqu'au jour où j'ai eu connaissance d'un article dénonçant certaines dérives de leur part. Je ne me rappelle plus quels étaient les griefs (désolé), mais toujours est-il que j'ai migré mon projet vers Savannah, apparemment en 2002, donc l'article en question devait dater de cette période…
D'après Wikipedia, Savannah, qui n'hébergeait que des projets GNU à l'origine, s'est ouvert aux projets non-GNU justement suite à ce qui fût perçu comme une dérive de Sourceforge (et de son logiciel).
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: un seul, vraiment ? :-)
Posté par Claude SIMON (site web personnel) . En réponse au journal xppq, ou une autre approche de la gestion des arguments de la ligne de commande.... Évalué à 3.
Salut !
Pas tout à fait. xppq, c'est juste un préprocesseur XML. J'ai écris ce journal pour signaler que c'est le successeur de feu xppq, et j'en ai profité pour parler de ce nouveau système de gestion des arguments de la ligne de commande, car c'est le premier utilitaire que je publie qui l'implémente. Mais comme tous les autres utilitaires que je publierais seront, à l'instar de expp, basés sur le framework Epeios, ils implémenteront également ce système de gestion des arguments de la ligne de commande. xppq n'est pas plus lié à ce système que ne le seront ces autres utilitaires.
Ceci dit, j'ai effectivement codé ce système pour remplacer celui que j’avais précédemment codé et qui présentait de très fortes similitudes avec getopt. Dans ce sens, ce système peut effectivement être vu comme un concurrent à getopt.
Non, même pas. Pour l'instant, j'ai juste parlé de ce système pour le faire connaître, et j'en ai parlé en conjonction avec xppq pour mettre en évidence que ce n'est pas juste un concept, mais qu'il en existe bel et bien une implémentation fonctionnelle.
Actuellement, il n'existe pas de bibliothèque, en tant que telle, dédié à ce système. Ce système n'existe qu'en tant que fonctionnalité du framework Epeios. Mais il est bien entendu envisageable d'isoler le code dédié à ce système pour le mettre à disposition sous forme de bibliothèque indépendante. C'est en partie pour éventuellement susciter ce genre de démarche et pour en juger l'opportunité que ce journal a été écrit.
Comme écrit plus haut, xppq n'est lié à ce système que parce qu'il est basé sur le framewok Epeios. En l'état, pour mettre en œuvre ce système de gestion des arguments de la ligne de commande, c’est tout le framework qu'il faut mettre en œuvre, ce qui implique une approche du développement en C++ (qui est le langage dans lequel est codé le framework Epeios) en particulier et du développement en général qui sort des sentiers battus.
Ça ne m’étonne pas ; je n'ai jamais été très doué pour écrire de la documentation…
Mon emploi de l'un ou l'autre terme est plus une question de feeling que le fruit d'une véritable réflexion. Je pense que, pour l'idée que je m'en fais, ces deux termes sont assez interchangeables…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Echange perdant ?
Posté par Claude SIMON (site web personnel) . En réponse au message Echange intel i7-477* contre i7-4770k. Évalué à 1.
Juste pour préciser qu'une machine équipée d'un processeur sans VT-d n'est pas nécessairement impropre à faire tourner des VM. Ainsi, j'ai une machine animée par un i7-3770K (sans VT-d donc) sur laquelle VMware Player et Virtual Box tournent sans (presque) aucun problème…
Une machine équipée d'un i7-4770K, qui a des caractéristiques similaires à ceux du i7-3770K en termes de virtualisation, pourra donc probablement également faire tourner des VM…
Pour nous émanciper des géants du numérique : Zelbinium !
# C'est pourtant simple...
Posté par Claude SIMON (site web personnel) . En réponse au journal lns: ln -s pour les étourdis. Évalué à 3. Dernière modification le 16 avril 2015 à 14:31.
…c'est l'inverse de
mklink
… :-)C'est sous MS-DOS, pour ceux qui ne connaissent pas. Autant
ln -s
ne me pose aucun problème (il faut dire que je l'utilise souvent qu'avec un seul argument), autant je suis toujours obligé de m'y reprendre à plusieurs fois avecmklink
pour trouver la bonne option à utiliser, bien que j'affiche systématiquement la page d'aide, ne fût-ce que pour retrouver le libellé des options…Pour nous émanciper des géants du numérique : Zelbinium !
# Finale vs Lilypond, même combat ?
Posté par Claude SIMON (site web personnel) . En réponse au journal Word vs TeX. Évalué à 9.
Bon, ça ne va pas parler à grand monde, mais cet antagonisme Word/LaTeX me fait penser à un autre, celui de Finale/Lilypond.
Je n'ai jamais écrit de document pour LaTeX, mais, paraît-il, le langage de Lilypond est similaire à celui de LaTeX, et les logiciels du genre Finale s'apparenterait plutôt à Word, de par leur coté WISIWYG. Je mentionne Finale parce que je l'ai un temps utilisé, mais je pense que tout ce que j'écris à son propos dans ce texte pourrait s'appliquer à ses autres concurrents WISIWYG, comme Sibelius, par exemple.
Autre similarité. Pour ce que j'en sais, LaTeX se base sur TeX, ce dernier ayant été développé pour produire des documents de meilleures qualités (plus jolis) que ceux produits par les outils disponibles à l'époque de sa genèse. Or, Lilypond a été développé exactement pour la même raison. Lilypond, dont les auteurs avaient préalablement travaillé sur MusiXTeX, dont le but était de produire des partitions musicales en s'appuyant sur… TeX !
Ayant un temps utilisé Finale, je suis passé à Lilypond surtout à cause de la qualité des documents produits (qui n'ont absolument rien à envier aux partitions produits par les plus grandes maisons d'éditions), mais également, il me faut bien l'avouer, parce que Lilypond est gratuit.
Ceci dit, saisir une partition dans Lilypond est assez rébarbatif, cependant, à mon goût, bien moins que d'avoir à placer les notes sur une portée avec la souris (même s'il est possible d'utiliser un clavier MIDI, reste quand même la saisie des rythmes).
Pour rendre l'utilisation de Lilypond plus facile, j'ai développé un petit utilitaire avec lequel je saisis (à savoir à l'aide d'un clavier MIDI) d'une part la mélodie, sans tenir compte du rythme, puis j'ajoute le rythme, pour, au final, obtenir un fichier XML décrivant la mélodie et les rythmes associés. Ensuite, j'applique une transformation XSL sur ce XML, pour obtenir un fichier Lilypond, fichier que j'édite ensuite avec Frescobaldi (une surcouche à Lilypond), pour ajouter les nuances et autres annotations nécessaires.
Cette manière de travailler me convient parfaitement. Or, cela n'a été est rendu possible par le fait que le format Lilypond est du pur texte. Étant donné la nature du format des ses documents, ainsi que de ses fonctionnalités (du moins à l'époque quand je l'utilisais), je ne crois pas qu'il m'aurait été possible de mettre en place une méthodologie de travail similaire en utilisant Finale.
Il est clair que pour écrire une partition de quelques lignes, cela serait sans doute plus rapide avec Finale. Mais pour un projet un tant soi peu conséquent, Lilypond (en conjonction avec les outils cités ci-dessus) reste pour moi le logiciel le plus adapté, parce qu'offrant plus de souplesse, et me permettant ainsi d'être plus productif. Mais il paraît que certaines des plus grandes maisons d'éditions de partitions musicales utilisent Finale.
Si je devais émettre une hypothèse, ce serait que le problème des logiciels comme (La)Tex, ou Lilypond, c'est que les personnes les ayant développés l'ont fait avant tout pour eux-mêmes, pour répondre à leurs propres besoins. Or, le profil de ces personnes, notamment vu leurs antécédents de développeur (ce qui les a certainement poussé à utiliser un format texte), n'est de loin pas le plus répandu. Leur philosophie de travail, celles des outils qu'ils ont l'habitude d'utiliser, ne sont pas ceux de la majorité des utilisateurs auxquels sont destinés des produits comme Word ou Finale.
Pour nous émanciper des géants du numérique : Zelbinium !
# Ma propre expérience, bien que pas très instructive...
Posté par Claude SIMON (site web personnel) . En réponse au journal Mon retour d'expérience sur l'auto-hébergement. Évalué à 4. Dernière modification le 20 novembre 2014 à 09:34.
Il y a à peu prés 15 ans, comme je m'étais acheté un nouvel ordinateur, j'ai décidé de recycler mon ancienne machine en serveur internet. J'avais envisagé d'y installer Windows (NT 4.0 à l'époque, si je ne m'abuse), mais elle n'était pas assez puissante. C'est à cette occasion que j'ai installé ma première distribution GNU/Linux, que je connaissais déjà, mais que je n'avais jamais utilisé. Depuis, je n'ai jamais cessé de m'auto-héberger.
Il me semble que j'avais déjà quelques pages Web hébergées par mon FAI, et je me rappelle plus la raison pour laquelle j'ai décidé de mettre en ligne mon propre serveur Web, toujours est-il que j'avais développé peu après une application Web codée en C++, et qu'aucun FAI à l'époque (et de nos jours encore me semble-t-il) n'acceptait d'héberger une application codée en C++. Du coup, le fait d'avoir mon propre serveur internet m'a permis de mettre cette application en ligne.
J'ai connu quelques mésaventures, comme un piratage de mon serveur au travers d'une faille du serveur DNS. Depuis, je n'ai plus jamais installé de serveur DNS sur ma machine :-) (et je suis plus attentif aux alertes de sécurité de ma distribution). J'ai également perdu mon nom de domaine de l'époque, parce que l'adresse e-mail que j'avais donné comme adresse de contact pour mon domaine n'était plus valide au moment de le renouveler (bon, ce n'est pas directement lié au fait de m'auto-héberger, mais cela s'inscrivait quand même dans ce contexte). Mais sinon, mis à part la phase initiale d'installation, qui est certes chronophage, mais que je trouve sans difficultés particulières, je ne consacre que quelques minutes par semaine (généralement pour lancer les mises à jour suite à une alerte de sécurités) à la maintenance de mon serveur…
A l'époque, je ne pense pas qu'il y avait possibilité pour un particulier de louer un serveur dédié, du moins à un tarif raisonnable (je n'avais pas cherché non plus), donc je n'avais guère le choix. De nos jours, vu les tarifs, si je continue de m'auto-héberger, c'est plus par habitude que pour d'autres raisons, qu'elles soient financières, techniques ou autres…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Gestionnaire de projets
Posté par Claude SIMON (site web personnel) . En réponse au journal Retour aux sources. Évalué à 1.
En fait, j'avais regardé http://fr.wikipedia.org/wiki/CMake et m'était arrêté à : [CMake] est comparable au programme Make… (et cela correspondait à ce que je croyais savoir de CMake). Il est vrai que la description qui en est faite dans la suite de l'article présente de fortes similarités avec ce que réalisent mes scripts.
Ceci dit, l'avantage de ma démarche, c'est que je parvenais au résultat désiré juste en utilisant des outils qui n'étaient très familiers, et un fichier dont j'avais la maîtrise totale du contenu (modulo la structure due à l'utilisation de XML) et de sa signification. Mais ce qui est un avantage pour moi, parce que j'ai développé ces scripts, n'en serait pas un pour une tierce personne…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Gestionnaire de projets
Posté par Claude SIMON (site web personnel) . En réponse au journal Retour aux sources. Évalué à 1.
On peut trouver un exemple de 'Project.xml' à cette adresse : http://hg.savannah.gnu.org/hgweb/epeios/file/tip/tools/expp/CLI. Le Makefile situé à la même adresse a d'ailleurs été généré à partir de ce 'Project.xml'. On peut trouver d'autres 'Project.xml', et les Makefile correspondants, disséminés un peu partout dans ce même dépôt.
Les XSL ne sont par contre pas hébergés sur un dépôt.
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Gestionnaire de projets
Posté par Claude SIMON (site web personnel) . En réponse au journal Retour aux sources. Évalué à 2.
D'après ce que j'en sais, cmake est similaire, dans son usage, à make, donc utilisé pour la compilation. Or, je ne lance pas mes scripts pour compiler le logiciel, mais pour générer les fichiers permettant cette compilation. La compilation proprement dite se fait à l'aide d'outils traditionnels (Visual Studio, make…). Donc, je ne pense pas que l'on puisse qualifier mes scripts de 'cmake-like'. Ils seraient plutôt, toutes proportions gardées, 'automake-like'.
Concernant Visual Studio, la dernière version est capable d'utiliser tel quel ou de convertir les fichiers issus de certaines précédentes versions. Cependant, j'ai modifié mes scripts lorsque j'ai changé de version, et ce ne devait pas être bien compliqué, car la seule chose dont je me souvienne, c'est d'avoir modifié le contenu de l'attribut qui semble correspondre à la version de Visual Studio. En tout cas, après modification de la valeur ce cet attribut ('ToolsVersion'), Visual Studio acceptait le fichier généré par mes scripts tel quel, sans demande de conversion.
Je n'ai jamais utilisé C::B…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Gestionnaire de projets
Posté par Claude SIMON (site web personnel) . En réponse au journal Retour aux sources. Évalué à 3.
On n'est pas obligé de subir le XML des autres.
Pour ma part, pour chacun de mes logiciels, j'écris un fichier XML, nommons-le 'Project.xml', dont c'est moi qui ai décidé de la signification des balises et attributs qu'il contient. Il y a ainsi quelques balises descriptives (nom du logiciel, numéro de version du logiciel, auteur…), et de nombreuses autres plus techniques (nom et localisation des fichiers sources, options de compilation…). Grâce à un ensemble de scripts et de fichiers XSL que j'ai développés, je génère, à partir de ce 'Project.xml', les fichiers '.vcxproj' et '.vcxproj.filters' qui permettent de compiler le logiciel à l'aide de Visual Studio, ainsi que le Makefile qui permet de compiler le logiciel sous Cygwin avec G++ et MinGW, ainsi que sous GNU/Linux et MacOS.
Lorsque je veux, par exemple, ajouter/enlever/modifier un option de compilation, je ne passe pas par l'interface de Visual Studio, ni ne modifie le Makefile, mais modifie uniquement 'Project.xml', puis relance les scripts pour régénérer les différents fichiers.
J'envisage, dans un futur proche, d'offrir la possibilité d'utiliser Clang sous Windows pour compiler les logiciels que je développe. Et bien, pour cela, il suffira que je modifie les scripts et les fichiers XSL, sans toucher aux différents 'Project.xml', pour que les Makefile générés prennent automatiquement en charge Clang. Pas besoin de modifier manuellement tous les Makefile pour cela.
Je gère ainsi chacun de mes projets à partir d'un seul et unique fichier 'Project.xml', dont j'ai la totale maîtrise du contenu, puisque qu'il n'est destiné à être traité que par des outils que j'ai moi-même développé. Bien entendu, il a fallu développer ces différents scripts et fichiers XSL, ce qui m'a pris au final bien moins de temps que je ne le pensais, ayant l'habitude de travailler avec XML/XSLT, mais depuis que ces dernier sont écrits, je n'ai plus eu à modifier de Makefile ou équivalent, ni à me replonger dans la documentation de Visual Studio, ou de GNU make, ou d'un quelconque autre outil similaire…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # SSH sous Android
Posté par Claude SIMON (site web personnel) . En réponse au journal Firefox OS, mon avis !. Évalué à 3.
Personnellement, j'ai installé une Debian, à l'aide de Lil'Debi, et, du coup, j'accède à, et transfère des fichiers de/vers ma tablette Android via SSH. En outre, j'y compile et fais tourner nativement quelques-uns des mes programmes C++.
Contrairement à une autre application Android que j'avais essayé (je ne me rappelle plus laquelle), et qui installait également une distribution GNU/Linux, on peut, avec Lil'Debi, accéder à partir d'Android directement au système de fichier Debian.
Concrètement, je l'utilise pour générer, sous Debian, un fichier HTML (en réalité, un fichier XML associé à un fichier XSL), que j'ouvre avec Opera sous Android.
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Correction
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche Mise aux poings sur systemd. Évalué à 2.
Il y a aussi fenêtre : défenestration. Il existe d'ailleurs aussi fenestration, mais c'est moins courant…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Index
Posté par Claude SIMON (site web personnel) . En réponse au journal Occupy Hollywood : libérer l’homme et son outil de travail. Évalué à 5.
Ce journal porte certes sur la libération des outils, mais l'acteur de Lawrence d'Arabie, ce n'est pas Peter O'Tool, mais Peter O'Toole…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: XML
Posté par Claude SIMON (site web personnel) . En réponse au journal XML c'est de la daube!!!. Évalué à 2.
Mince, va falloir que je reprenne rendez-vous avec mon psy :
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/stable/xml.h
- http://hg.savannah.gnu.org/hgweb/epeios/file/tip/stable/xml.cpp
Ah ben non, ça ne sera finalement peut-être pas nécessaire…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: '-fno-rtti' et exceptions.
Posté par Claude SIMON (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 1. Dernière modification le 23 février 2014 à 21:53.
Et si l'on veut absolument ne pas utiliser les exceptions C++ (ou que l'on veut disposer de quelque chose de comparable en C), on peut utiliser la bibliothèque standard
setjmp
pour les simuler, mais j'ignore si c'est rentable par rapport aux exceptions en terme de coûts…Pour nous émanciper des géants du numérique : Zelbinium !
[^] # '-fno-rtti' et exceptions.
Posté par Claude SIMON (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à 2.
De mémoire, pour ce que j'en ai compris,
-fno-rtti
ne désactive pas les exceptions. Les d'informations relevant du mécanisme de runtime type identification nécessitées par ces dernières étant de toute façon générées,-fno-rtti
ou pas.Pour nous émanciper des géants du numérique : Zelbinium !
# Permutation sans variable intermédiaire
Posté par Claude SIMON (site web personnel) . En réponse au message Permutation "sure" de pointeurs en Fortran. Évalué à 1. Dernière modification le 10 janvier 2014 à 14:21.
Je n'y connais absolument rien en Fortran, donc ce qui va suivre est peut-être, voire probablement, totalement inapplicable.
Le fait est qu'il y a moyen de permuter deux entiers sans passer par un troisième, avec l'opérateur XOR. En reprenant l'exemple en question, à la sauce C (^ étant l'opérateur XOR bit à bit) :
Suite à une recherche rapide sur le Web, Il semblerait que gfortran ai une opérateur XOR bit à bit ('IEOR', d'après ce que j'ai trouvé). Évidemment, cela ne suffit pas, car, s'il n'est pas possible d'appliquer cet opérateur directement sur des pointeurs (ce qui ne m'étonnerait pas outre mesure), il faut réussir à 'convertir' des pointeurs en entiers (sous condition que ces derniers ai la bonne taille) et vice-versa…
Pour nous émanciper des géants du numérique : Zelbinium !
# 'mutable' ?
Posté par Claude SIMON (site web personnel) . En réponse au message Appeler une méthode non-const à partir de la méthode const homonyme. Évalué à 4. Dernière modification le 08 janvier 2014 à 18:22.
Je ne suis pas un spécialiste du C++ 'standard', mais, de manière générale, une méthode 'const' ne devrait appeler que des méthodes 'const'.
Je m'étais moi-même trouvé dans une situation ou une méthode, qui ne modifiait pas fondamentalement l'objet sur lequel elle s'appliquait, d'où sa qualification en 'const', modifiait néanmoins un de ses membres (dans mon cas, c'était un cache), ce que le compilateur ne manqua pas de me faire remarquer de manière péremptoire tout en refusant de mener à terme son travail. Pour résoudre ce problème, j'ai déclaré le cache en question en 'mutable', ce qui m'a permis de laisser la méthode en 'const', à la grande satisfaction de mon compilateur, qui ne pipa plus mot.
Concrètement, pour le code présenté, pour ce que j'en ai compris, je déclarerais 'is_initialzed' en 'mutable', ce qui permettrait de déclarer 'initialize()' en 'const', et il n'y aurait plus besoin que d'une seule méthode 'mean' déclarée en 'const'. Ça devrait fonctionner, mais je ne sais pas si conceptuellement ça tient la route, car un 'initialize()' en 'const' me semble bizarre…
Pour nous émanciper des géants du numérique : Zelbinium !
# Exécuter l'application fournie sous Linux ?
Posté par Claude SIMON (site web personnel) . En réponse au message Communication avec montre tomtom multisport. Évalué à 2. Dernière modification le 23 décembre 2013 à 14:11.
Pour les 'simples' GPS TomTom, ils fournissent une application, appelée 'TomTom Home'. Or, cette application, du moins la version que j'en ai, est une application qui tourne sous 'XULRunner', qui est un environnement d'exécution qui existe également sous Linux. Le code de ces applications est généralement écrit en JavaScript, donc indépendant de la plateforme d'exécution.
J'ignore ce qui est fourni avec ta montre GPS, si c'est la même application, ou une autre s'exécutant également dans 'XULRunner', mais, le cas échéant, à moins qu'il n'y ai une partie en code natif, il suffit, en théorie, de récupérer sous Linux le répertoire d'installation de l'application, d'installer la bonne version de 'XULRunner', en fonction du 'MaxVersion' et du 'MinVersion' définis dans le fichier '.ini' présent à la racine de là où est installée l'application ('XULRunner' peut être installé par le gestionnaire de paquets de 'Debian' ; encore faut-il que la bonne version soit disponible), et de lancer 'XULRunner', en lui passant en paramètre ce même fichier '.ini', pour que l'application s'exécute telle quelle sous Linux…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # DAC 24 bits sur signal 16 bits.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche NwAvGuy O2 : l’amplificateur casque sous licence Creative Common. Évalué à 1.
Je ne suis pas spécialiste en la matière, mais utiliser un convertisseur 24 bits sur un signal 16 bits devrait permettre de mettre en œuvre une interpolation plus fine, donc d'obtenir un signal plus proche du signal d'origine, et cela avant que ce dernier ne subisse un éventuel traitement électronique.
Du moins, c'est comme ça que je me justifie mon achat d'un DAC 24 bits pour écouter mes CDs rippés :-).
Accessoirement, toujours lorsque c'est utilisé sur un signal 16 bits, ça devrait évite les déformations de ce dernier lors d'une éventuelle atténuation dû au ReplayGain.
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Électronique
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche NwAvGuy O2 : l’amplificateur casque sous licence Creative Common. Évalué à 5. Dernière modification le 19 décembre 2013 à 13:14.
RMS signifie, en anglais, Richard M. Stall… euh, pardon…, Root Mean Square, c'est-à-dire, en traduisant, la racine (carrée) de la moyenne des carrés (ah, si toutes les formules pouvaient être aussi faciles à retenir…).
Pour nous émanciper des géants du numérique : Zelbinium !
# Atari ST <=/=> GFA Basic
Posté par Claude SIMON (site web personnel) . En réponse au message Pour le retour du GFABasic. Évalué à 4. Dernière modification le 29 novembre 2013 à 17:59.
Pour autant que je me rappelle, GFA Basic n'était pas fourni avec l'Atari ; il fallait se le procurer à part.
En outre, nul besoin d'avoir un Atari ; GFA Basic était également disponible sur l'Amiga (bah oui, faut respecter les traditions ; on ne peut parler d'Atari sans évoquer Amiga, surtout un vendredi…).
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: Sur les exposés
Posté par Claude SIMON (site web personnel) . En réponse au journal 3 ans de projets libre: bilan et apprentissages. Évalué à 6.
Ah non, on peut également, et c'est préférable, utiliser l'abdomen. C'est plus efficace et cela a un effet relaxant, contrairement à la respiration thoracique…
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: L'histoire se répète...
Posté par Claude SIMON (site web personnel) . En réponse au journal Gimp envoie bouler Sourceforge. Évalué à 3.
J'ai finalement retrouvé l’article en question : http://www.advogato.org/article/376.html.
Pour nous émanciper des géants du numérique : Zelbinium !
[^] # Re: L'histoire se répète...
Posté par Claude SIMON (site web personnel) . En réponse au journal Gimp envoie bouler Sourceforge. Évalué à 3.
Je ne voulais pas signifier par mon message qu'il fallait nécessairement laisser tomber Sourceforge pour Savannah…
Ceci dit, juste au-dessus (lien) :
Pour nous émanciper des géants du numérique : Zelbinium !
# L'histoire se répète...
Posté par Claude SIMON (site web personnel) . En réponse au journal Gimp envoie bouler Sourceforge. Évalué à 6.
Les critiques au sujet de Sourceforge ne datent pas d'aujourd'hui, ni d'hier.
A partir de 2000, j'avais utilisé leurs services pour un de mes projets, jusqu'au jour où j'ai eu connaissance d'un article dénonçant certaines dérives de leur part. Je ne me rappelle plus quels étaient les griefs (désolé), mais toujours est-il que j'ai migré mon projet vers Savannah, apparemment en 2002, donc l'article en question devait dater de cette période…
D'après Wikipedia, Savannah, qui n'hébergeait que des projets GNU à l'origine, s'est ouvert aux projets non-GNU justement suite à ce qui fût perçu comme une dérive de Sourceforge (et de son logiciel).
Pour nous émanciper des géants du numérique : Zelbinium !