Pour les pièces faites avec l'Amiga, j'utilisais un tracker, probablement Protracker. Pour les sons, je piochais dans ceux qui étaient fournis avec.
Pour le MIDI, les sons sont ceux d'origine de la Sound Blaster AWE32 que j'utilisais à l'époque. Elle m'avait coûtée une petite fortune, mais c'était l'une des meilleurs carte son de l'époque.
J'ai ajouté un PDF de la partition de la pièce 'OMS0964'. Comme la pièce n'est pas achevée, il manque certaines choses comme les nuances, ou encore les articulations…
En fait, ce sont plutôt des exercices de style, beaucoup étant inachevés.
Les premières sont de ma période Amiga, aux timbres aisément reconnaissables, et limitées à 4 canaux, mais je m'étais quand bien amusé.
Les dernières sont du pur MIDI.
'rosscset' n'a évidemment pas été composée par moi ; c'est une transcription (ce n'est pas vraiment le terme adéquat) que j'ai réalisée pour explorer les possibilités du MIDI.
Pour la composition proprement dite, j'utilise un séquenceur MIDI + un clavier MIDI. Vu que le style de musique que je compose contient de nombreuses variations de tempo, je n'utilise que très rarement le métronome du séquenceur. Je joue en premier une voie significative, soit celle qui a la mélodie, soit une des voies d'accompagnement, et je rajoute les autres voies en me servant de cette voie comme base rythmique.
Le processus décrit dans mon précédent message sert juste à créer la partition correspondante.
Étant donné que, comme indiqué ci-dessus, je ne me sers que très rarement du métronome (je laisse le tempo par défaut, et je me contente de couper le son du métronome), il n'y a aucune correspondance entre la pulsation du métronome et ce que je joue. Or, comme le séquenceur s'appuie sur la pulsation du métronome pour en déduire la figure des notes d'après leur durée, la partition que ce dernier me génère est absolument injouable, sans compter qu'elle n'a de loin pas le rendu obtenu avec 'Lilypond'.
je serai curieux d'avoir des retours de personnes qui composent avec les différentes solutions
Pour mes compositions et mes transcriptions, je les saisis voie par voie, fragment mélodique par fragment mélodique, à l'aide d'un petit utilitaire que j'ai écrit, et qui fonctionne de la manière suivante.
Dans un premier temps, il est en mode saisie de notes, dans lequel je joue la mélodie au clavier MIDI sans tenir compte des durées. Je lui fais rejouer la mélodie note par note, un appui sur une touche du clavier non MIDI le faisant passer d'une note à l'autre, un appui sur une note du clavier MIDI remplaçant la note en cours par la nouvelle note, ce qui me permet de corriger les erreurs.
Une fois toutes les notes de la mélodie correctement saisies, je bascule en mode saisie de durées.
Là aussi, le logiciel me joue la mélodie précédemment saisie note par note, et, pour chaque note, j'appuie sur une touche du pavé numérique, ce qui lui affecte une durée et le fait passer à la note suivante. '0' pour une ronde, '1' pour une blanche, '2' pour une noire, '3' pour une croche et ainsi de suite, en utilisant '.' si la note est pointée.
Je lui fais jouer toute la mélodie en tenant compte des durées, pour vérifier si elle est correcte, et corrige si nécessaire.
Une fois que le fragment mélodique est correct, je lui fais générer un fichier 'XML' qui décrit la mélodie, à l'aide de balises de mon cru. J'applique ensuite une transformation 'XSL' sur ce fichier 'XML', en utilisant un fichier 'XSL' spécialement écrit dans ce but, ce qui me génère le fragment mélodique au format 'Lilypond'. J'insère ce fragment dans le fichier 'Lilypond' global de l'œuvre, puis j'utilise 'Frescobaldi' pour ajouter les nuances, les articulations…
Et j'obtiens au final une superbe partition dont la présentation n'a rien à envier à ceux produits par les logiciels commerciaux, et ce sans avoir à saisir notes et durées dans le format 'Lilypond'.
On peut mettre les options après SRC et DEST sans problèmes. C'est surtout que l'argument de --exclude est relatif par rapport à SRC, donc il ne faut pas mettre $(dossierSource) dans le PATTERN, et ce qui est indiqué ci-dessus devrait fonctionner…
Je possède une tablette Android (ARM) sous CyanogenMod qui me permet d'aller sur le web sans avoir à allumer mon ordinateur de bureau, me sert de liseuse, et sur laquelle je peux compiler et lancer les logiciels que je développe. D'ailleurs, le logiciel que j'utilise le plus sur cette tablette est celui que je présente dans ce journal.
Comme il s'agit d'un logiciel natif en ligne de commande, j'ai installé Lil'Debi pour disposer de l'environnement de compilation adéquat, et également pour disposer d'un environnement GNU/Linux, auquel je peux me connecter à distance via SSH. La finalité de mon logiciel est de produire un fichier HTML, et j'affiche celui-ci dans un navigateur web sous Android, ce dernier ayant accès au système de fichiers de Lil'Debi.
À l'origine, je faisais tourner mon logiciel sur un NokiaN900, et c'était beaucoup plus simple parce que le N900 dispose d'un véritable environnement GNU/Linux. Malheureusement, l'écran du N900 est trop petit pour déchiffrer une partition. D'où l'utilisation d'une tablette, avec installation de Lil'Debi, pour me retrouver à peu prés avec le même environnent que celui du N900. Le problème, c'est que Lil'Debi rend la tablette poussive.
Du coup, j'ai repéré une tablette Intel hybride Android/Windows, ce qui m'offre les possibilité suivantes :
- Soit de remplacer Windows par une distribution GNU/Linux,
- soit d'installer Cygwin pour y retrouver un environnement à la GNU,
- soit de l'utiliser avec Android comme ma tablette actuelle, sachant qu'elle devrait pouvoir encaisser plus facilement Lil'Debi étant donné qu'elle a beaucoup plus de RAM, Windows oblige.
Au final, je cherche l'équivalent de mon N900 en tablette 10" ou plus, et le modèle que je décris ci-dessus s'en approche le plus, sachant que j'aimerais, en plus, en lui adjoignant un trackball et un clavier, pouvoir m'en servir de machine de développement secondaire, lorsque je suis en déplacement, et qu'il faut donc qu'elle soit assez costaude…
De ce que j'ai pu constater, on a, d'une part, les webmails, auxquels on peut accéder d'à peu prés n'importe quel dispositif connecté à Internet, mais qui ne sont, en gros, que des frontendsIMAP, d'où le fait que l'on ne peut gérer qu'un seul compte mail à la fois, et, d'autre part, les clients natifs, qui peuvent proposer des fonctionnalités plus évoluées que celles disponibles avec IMAP, comme la gestion simultanée de plusieurs comptes en même temps, mais qui ne sont accessibles que d'une seule machine.
Ce que je cherche à obtenir, c'est le meilleur des deux mondes, c'est-à-dire pouvoir accéder à mon MUA d'un maximum de dispositifs connectés, et pouvoir cependant toujours disposer de toute les fonctionnalités de mon MUA, qui iront au-delà de celles disponibles IMAP.
C'est pour cela que mon MUA, contrairement aux MUA classiques qui accèdent directement aux serveurs POP3/IMAP, se connecte à un daemon, et c'est ce daemon se connectera aux différents comptes POP3/IMAP. Et comme c'est également ce daemon qui implémentera toutes les fonctionnalités de mon MUA, ces fonctionnalités seront disponibles quels que soient les clients utilisés (desktop, web ou mobile).
Personnellement, le compte d'origine d'un mail m'importe peu, d'autant qu'il n'est pas rare que je change le compte d'affectation de mes alias. Faire passer ce lien entre courrier et compte au second plan est même l'un des objectifs de mon application. Mais la plupart des MUA sont, en quelque sorte, orientés comptes, donc, quelque part, je pense qu'il est préférable qu'un utilisateur qui utilisait ce genre de MUA puisse retrouver ce lien auquel il est habitué, bien que ce lien ne soit qu'accessoire au niveau de l'application.
Je viens d'installer Claws-Mail et, effectivement, contrairement à ce que je supputais dans le journal (et que j'entendais par « …indépendamment les uns des autres »), au moins avec ce logiciel, il est possible de déplacer un courrier d'un compte mail à un autre. Ceci dit, je ne pense pas que ce soit propre à ce logiciel ; cela doit être lié au protocole IMAP…
Néanmoins, dans Claws-Mail (à moins que j'ai loupé quelque chose dans ses options de configuration), chaque compte mail a sa propre arborescence, même si elles ne sont pas aussi imperméables que je le pensais. Or, je préfèrerais avoir une arborescence unique et commune à tous les comptes mail, même s'il doit rester possible de différencier les courriers en fonction du compte dont ils sont issus.
Pour ce qui est de l'écriture d'un nouveau courrier, je ne me suis pas encore penché sur la question, me concentrant pour l'instant sur la lecture de courriers (protocole IMAP et connexions chiffrées), mais je prend bonne note de la fonctionnalité décrite.
Après 4 LogitechM570 (dont deux suite à un remplacement sous garantie, à chaque fois accepté sans difficulté et rondement mené par Logitech), lassé par un problème récurrent de bouton gauche devenant inutilisable au bout d'à peu prés un an, j'ai actuellement un APTICO de SPEEDLINK. C'est un trackball sans fil à commande par pouce (à l'instar de Logitech, ils ne font pas (plus) de modèle filaire).
Cela fait moins d'un an que je le possède, donc je ne sais pas s'il tiendra plus longtemps que le M570, mais, malgré le fait qu'un des pieds en caoutchouc s'est barré (ce qui, personnellement, ne me dérange pas), et que le pointeur se bloque (bah oui, ça n'arrive pas qu'aux claviers) de temps en temps (il suffit alors d'actionner le bouton gauche et ça repart), il me convient.
Sinon, en filaire, mais je ne l'ai pas essayé, il existe le SANWA MA-TB39.
Je ne suis qu'un dilettante en la matière, donc je vais peut-être sortir une grosse connerie, mais je suis un jour tombé par hasard sur ça. Ça n'irait pas dans le sens de ce que tu décris ?
Ce n'est pas parce que c'est atypique que c'est imbitable
Imbitable n'était pas le bon mot, disons qu'elle n'est pas pour l'instant réutilisable par quelqu'un d'autre que toi : quel que soit le besoin, il sera moins coûteux de créer une nouvelle appli basée sur des technologies connues que d'investir dans la tienne.
interface web fonctionne avec tous les navigateurs web graphiques modernes
Je ne sais pas quels sont tes clients, mais pour les miens « moderne » signifie plutôt « moins de 3 ans » que « moins de 3 semaines ». Et une incompatibilité avec firefox et internet explorer pour windows < 10 est invendable.
Je n'ai jamais développé d'application web pour mes clients, et je n'ai pas l'intention d'en développer. L'interface de l’application présentée ici montre clairement que je n'ai pas les compétences en HTML, CSS et consorts pour cela (c'est pour cela que la facilité de modification de l'interface est un point clef de la technologie que j'emploie). D'ailleurs, si un prospect me contacte pour me demander de développer une application web, je lui dit sans équivoque qu'il lui sera facile de trouver développeur bien plus compétent et concurrentiel que moi pour cela.
Le fait est que les interfaces desktop que je développe s'appuient sur des technos web, pour les raisons expliquées dans ce journal. Du fait de l'utilisation de ces technos web, il me semblait juste logique que le même code puisse servir pour développer une version web de l'interface. Et c'est cette hypothèse qui fait l'objet d'une des POC présentés ici. L'interface web, c'est juste un bonus ; cela ne fait pas officiellement partie de mes prestations…
Tu as visiblement la chance d'avoir des clients qui ne s'intéressent pas à la technique et qui deviennent captifs puisque tu es le seul à pouvoir maintenir ton code, mais c'est de moins en moins la réalité du marché.
Au contraire, c'est parce que mes clients s'intéressent à la technique qu'ils me contactent. Ils sont bien conscients que c'est parce que les développeurs classiques n'ont pas la maîtrise des technologies qu'ils utilisent qu'ils ne sont pas capables de leur fournir une application qui réponde à leurs besoins. Avec mon framework, parce que j'en ai la totale maîtrise, je ne suis pas soumis au bon vouloir d'un éditeur pour en dépasser les limites.
Il vaut mieux une application développée dans une technologie soi-disant captive (mon framework, c'est quand même que du C++), mais qui réponde parfaitement aux besoins du client, qu'une application certes basée sur des technologies répandues, mais inutilisable à cause des limitations de ces technologies. Des clients dont les exigences sont telles que les technologies classiques ne peuvent y répondre sont peu nombreux, mais, d'un autre coté, comme on est peu de développeurs sur ce marché…
Du coup je ne comprends pas l'objectif de ton POC, parce que je n'ai aucun doute que ça va fonctionner et que tu vas pouvoir l'utiliser pour tes clients, mais pourquoi le rends-tu public ?
- tu as déjà expliqué dans les commentaires des journaux précédents que tu ne visais pas un usage pour les projets communautaires
- maintenant tu sembles indiquer que même pour des projets de commande tu t'adresses à un marché très restreint
Je n'ai pas trop compris ce que tu entends par viser un usage pour les projets communautaires.
Concernant mon framework, du fait qu'il soit atypique et que la documentation est inexistante, il y a peu de chances que quelqu'un s'y intéresse ; je ne communique donc pas directement dessus. Par contre, une application telle que celle présentée ici, naturellement pas en l'état, est plus à même de susciter l'intérêt, voire de fédérer une communauté. Certes, il reste bien du travail pour que cette application soit utilisable, et c'est pour cela que j'insiste plus sur l'aspect POC que sur ses fonctionnalités. Mais, à terme, peut-être deviendra-t-elle un projet communautaire ? En tout cas, je n'y aurais rien à y redire…
Je pense que tu as raison de continuer, visiblement ça peut te permettre d'avoir un avantage concurrentiel dans ton marché, mais je ne comprends pas quel est ton but en communiquant à ce sujet dans des journaux sur linuxfr.org.
Suite à ces journaux, j'observe quand même quelques téléchargements de mes logiciels. Sans préjuger de l'intention des téléchargeurs, on peut quand même supposer que mes logiciels, et donc leur évolution, les intéressent, d'où ces journaux pour communiquer à leur sujet…
Avant je ne comprenais pas tes technologies, mais au moins tu affichais un objectif clair : avant tout répondre aux besoins de tes clients, même si c'est au prix d'une solution imbitable.
Ce n'est pas parce que c'est atypique que c'est imbitable. Et si tu m'indiquais précisément ce qui te semble imbitable, je me ferais un plaisir de te fournir les explications pour te le rendre bitable. Et ça me donnerais de précieuses indications sur ce que je dois mettre dans la documentation que je suis en train de rédiger.
Aujourd'hui on apprend que ça ne permet de générer que des interfaces web incompatibles avec la plupart des navigateurs, ce qui serait rédhibitoire pour n'importe quel client. Maintenant je ne comprends ni tes technologies, ni tes objectifs…
Je me suis peut-être mal exprimé, mais, au contraire, depuis la mise à jour de Microsoft Edge, l'interface web fonctionne avec tous les navigateurs web graphiques modernes que j'ai pu essayer. Avec la démonstration en ligne, il y a moyen de s'en rendre compte par soi-même. Il y a juste Firefox qui pose problème dans certains cas, comme je l'ai expliqué…
Oui, le code est imbittable, parce que ça n'est pas vraiment du C++, c'est plein de macros qui définissent un nouveau dialecte, et quand on mit le code, ça ne respecte pas la grammaire du langage.
Quelles macros ? Les seules que je tape régulièrement, ce sont qRH, qRB, qRR…, et leurs consœurs qRFwk(), qRGnr()…; qui sont dédiées à la gestion d'erreurs ; algorithmiquement, elles ne sont pas significatives, et elles ne sont pas nécessaires à la compréhension du code, sauf quand celui-ci s'occupe de la gestion des erreurs, évidemment. Quant aux autres macros, elles existent juste pour m'éviter d'avoir à taper du code dont j'ai fréquemment besoin, mais elles ne constituent certainement pas un nouveau dialecte.
Si l'on m'indique quelles macros posent problème, je détaillerais volontiers leurs usages…
Ceci dit, non, ça n'est pas non plus un pur troll, puisque l'auteur du journal semble comprendre sa technologie et même arriver à en vivre. D'ailleurs, dans le journal précédent, certaines discussions techniques semblaient confirmer que plusieurs personnes comprenaient le principe.
Pour moi, c'est de l'informatique abstraite: tu as des trucs qui font des surcouches à une autre techno qui modifie du code dans un autre langage qui va te générer du HTML qu'il va falloir lire avec un navigateur, tu as besoin d'un quadricœur avec 4Go de RAM rien que pour un "Hello Word", mais soi-disant ça accélère le développement. Je ne comprend pas l'utilité d'une telle complexité, mais je dois être dépassé…
Ce n'est de loin pas de l'informatique abstraite : la preuve, il y a une démonstration accessible en ligne qui montre que c'est au contraire tout à fait concret. Quand à cette histoire de surcouche avec HTML, je n'ai pas trop compris. Cela concerne peut-être ce que j'ai décris dans ce journal.
Pour ce qui est d'avoir besoin d'un quadricœur avec 4GO de RAM, il y a un package disponible avec les binaires Windows destinés à du XP SP3 et supérieur, et un autre pour du GNU/Linux compatible IA-32 ou AMD64natif. Ces packages sont relativement simple à déployer (mais je concède que c'est améliorable), et je suis preneur de tout retour sur leur mise en œuvre.
Soit dit en passant, comme je l'ai signalé, la CGI et le backend tournent sans problèmes sur une brique internet, à savoir une architecture ARM 32 bits dual-core à 1 GHz avec 512 Mo de RAM. Pour ceux qui disposent d'un matériel similaire tournant sous GNU/Linux, ils peuvent le vérifier ; je décris la procédure dans le journal. Et enfin, il y a la démonstration en ligne ; là aussi, je suis preneur de tout retour sur les ressources nécessaires et les éventuels problèmes rencontrés en fonction du navigateur utilisé.
J'en suis parfaitement conscient. Ce n'est pas de la mauvaise volonté, c'est que je ne suis vraiment pas doué pour rédiger des documentations, ou pour communiquer sur mes projets de manière générale, comme le montre d'ailleurs les journaux que j'ai publiés, ainsi que le contenu de mon site Web.
Par ailleurs, ce genre d'application me permet d'améliorer le framework sur lequel il s'appuie, et que j'utilise, en tant que développeur freelance, pour les développements que je réalise pour mes clients. Donc, tout le travail de codage réalisé pour cette application me permet de proposer à mes clients du code de meilleur qualité et développé plus rapidement, ce qui est bénéfique, notamment financièrement, et pour moi, et pour le client. Par contre, tous les à-coté de ce genre de projet, comme la rédaction de documentation, sont, du point de vue financier, une pure perte de temps.
Ceci dit (ou plutôt écrit), cela ne m'empêche pas d'essayer de communiquer tant bien que mal sur mes projets, justement en publiant ce genre de journaux, dont certains commentaires contiennent d'intéressantes pistes d'améliorations. Ainsi, j'ai travaillé, suite au dernier journal, à l'amélioration du packaging de l'application, ce qui facilite son déploiement sous GNU/Linux et Windows (pour OS X, c'est loin d'être encore ça). J'ai prévu, en plus d'améliorer l'application, de mettre l'accent sur la documentation pour le prochain journal. Mais cela sera forcément très incomplet, vu l'ampleur de la tâche, mais il faut un début à tout.
J'ai oublié de préciser que l'on peut :
- modifier le contenu d'une fiche en cliquant sur l'entrée qui lui correspond dans la liste,
- modifier le contenu d'un champ en cliquant sur son libellé,
- modifier le contenu d'une entrée d'un champ multi en cliquant sur son contenu.
Accessoirement, on peut également afficher un A propos… avec Ctrl+Shift-A. Sur certains navigateurs, cela provoque l'affichage d'une nouvelle page ; il faut alors revenir sur la page de l'application. Je n'ai pas (encore) trouvé de combinaison de touches qui fonctionnent pour tous les navigateurs, ou (mieux) le moyen d'inhiber le comportement par défaut du navigateur…
Le document sur le site de Stroustrup visait simplement à établir, de manière indiscutable je crois, ce pour quoi les exceptions C++ ont été conçues. Maintenant, faut-il ou non les utiliser, c'est un autre débat.
Je veux bien croire que, dans certains domaines, comme ceux des jeux vidéos, de l'embarqué, du développement de drivers, etc. il y ai des contraintes qui poussent à éviter les exceptions, mais ce qui est vrai pour ces domaines-ci ne l'est pas forcément pour les autres, les contraintes n'étant pas les mêmes…
Quand au lien Google, ma compréhension de l'anglais est certainement perfectible, mais il me semble quand même qu'ils écrivent (traduction très libre) :
que les avantages des exceptions C++ l'emportent sur leurs inconvénients,
qu'ils n'utilisent pas les exceptions C++ pour leur nouveaux projets parce qu'ils ont beaucoup de code ne s'appuyant pas sur les exceptions et que :
mélanger code avec/code sans exceptions est problématiques,
réécrire le code sans exceptions pour le rendre tolérant aux exceptions est trop coûteux,
que s'ils recodaient tout from scratch, ils utiliseraient probablement les exceptions…
Donc, au final, ça m'a plutôt l'air d'un plaidoyer en faveur des exceptions C++…
En l'état, pas grand chose ; on peut créer des fiches avec des champs textes, et réorganiser les champs d'une fiche, ainsi que les entrées d'un champs, par drag & drop, et c'est à peu prés tout. Des fonctionnalités seront ajoutées petit à petit, et feront l'objet de publications ici même.
En attendant, cette application fait office de proof of concept. Elle permet d'étudier la faisabilité, entre autres :
- de coder entièrement et uniquement en C++ une interface basée sur des technos Web,
- d'utiliser un seul et même code (C++) pour l'interface Web et pour l'interface native d'une application,
- d'offrir la possibilité de modifier entièrement l'apparence d'une application sans avoir à intervenir sur son code source, uniquement en modifiant des fichiers XSL.
Je ne vois pas ce à quoi le terme dessus fait référence, et, quant au lien, je ne vois rien dans la biographie de l'auteur qui donne le moindre poids à ses écrits en général, et ces écrits en particulier. Par contre, j'ai trouvé ceci, dont B. Stroustrup lui-même est l'un des auteurs. Je pense que les deux premiers paragraphes de l'introduction sont on ne peut plus clairs quant à l'usage pour lesquels les exceptions C++ ont été conçues…
Donc, j'ai choisi la solution la plus facile et la plus rapide, à savoir de placer ces fichiers dans le dépôt.
La plus facile pour toi, et la plus rapide pour toi. Le problèmes que tu évoques est exactement celui résolu par les autotools ou autre framework du genre. Sans avoir à mettre des fichiers générées dans le VCS.
Le reste, ce n'est que l'adaptation aux particularités des différentes plateformes sur lequel il peut être lancé. Qu'est-ce qui sort donc de l'ordinaire, et par quoi peut-on le remplacer qui soit plus conforme aux standards en la matière ?
Tu pourrais simplement l'omettre si tu utilisais un des framework cités. Comme ça, queluqu'un d'autre que toi n'aurait pas à se former à ton outil. Tu trouveras ça inutile, mais c'est ce que je te disais plus haut : les solutions que nous t'évoquons sont utiles pour tout le monde, pas que pour toi.
J'ai l'impression que tu penses que mes Makefile sont plus sophistiqués qu'ils ne le sont réellement. Mes scripts de générations prennent en compte juste la nature du binaire à générer (exécutable ou bibliothèque) et la liste des fichiers sources. C'est tout. Pas de dépendances à gérer (il y a CEF maintenant, mais c'est une exception, et cela ne concerne qu'un seul Makefile). A nature de binaire identique, la seul chose qui change d'un Makefile à l'autre, c'est le tout début, qui contient la liste des fichiers source. Tout le reste est identique.
Si, d'aventure, j'avais effectivement fait le choix d'utiliser autotools et/ou consorts, au lieu de placer les Makefile générés dans le VCS, et bien j'y aurais placé les fichiers 'source' d'autotools et consorts, qui auraient également été générés, à l'instar des Makefile. Donc, cela n'aurait fait que déplacer le problème, si problème il y a, avec, en outre, une complexification induite par l'utilisation d'autotools et/ou consorts.
La principale différence avec XSL (mis à part que XPP n'est de loin pas aussi puissant que XSL), c'est que les directives XSL doivent être placées dans un fichier disjoint de celui qui contient le XML sur lequel on va appliquer ces directives, alors que les directives XPP, quant à elles, sont directement placées dans les fichiers XML sur lesquels elles portent.
Comme les feuilles de style « intégrées » (traduction pourrie de "embedded") ? https://www.w3.org/TR/xslt#section-Embedding-Stylesheets
Tu ne t'intéresses juste pas à ce qui existe, et c'est ce qui dérange un peu ici, je pense.
Je ne connaissais pas. J'ai un peu regardé, pas beaucoup, car il semble que ce ne soit implémenté que dans les navigateurs. Or, j'ai besoin, d'une part, de pouvoir utiliser ce mécanisme dans mes propres logiciels (pour l'appliquer sur les fichiers de configuration de mes logiciels), et, d'autre part, de pouvoir mettre ce mécanisme en œuvre via un utilitaire en ligne de commande. Mes deux utilitaires (sablotron et xsltprocess) ne semblent pas l'implémenter, et je n'ai pas trouvé d'utilitaire ou de bibliothèque qui implémente ce mécanisme. Donc, aujourd'hui, connaissant l'existence des embedded stylesheet, si j'étais confrontés aux même besoins que ceux qui m'ont poussés à développer XPP, je serais obligé de faire le même choix qu'à l'époque, à savoir développer ma propre solution.
Ceci dit, je n'ai jamais écrit que je ne m’intéressais pas aux solutions alternatives, mais que je n'utilisais pas ces solutions (forcément, puisque j’utilise mes alternatives), et c'est bien ce dernier point qui dérange. Comme déjà évoqué, si je ne m'étais pas intéressé à ce qui existe, je n’utiliserais pas XML, mais mon propre langage de balisage…
Utiliser gettext aurait impliqué un travail de codage supplémentaire, que j'économise avec le système que j'utilise.
Travail économisé une fois pour toi. Travail qui sera à fournir pour chaque personne qui souhaite s'intéresser à ce travail. C'est donc complètement inintéressant en terme de temps pour quiconque d'essayer de contribuer ou de s'intéresser à ton travail.
Je l'ai développée pour répondre aux besoins d'un client. Ce dernier devait pouvoir stocker des dates classiques, mais aussi approximatives.
Ah, intéressant, je n'avais pas vu cette fonctionnalité.
Ta réaction à bibliothèque DTE est typiquement celle que je ne comprends pas. Parce certains ne voient pas l'utilité de réimplémenter une telle bibliothèque, ces derniers décrètent que c'est une erreur, sans chercher à comprendre les motivations derrières.
Le problème c'est que je ne vais pas chercher des heures à comprendre ce que fait ta bibliothèque si j'ai l'impression qu'elle ne m'apporte rien. Pas de description, etc, je laisse tomber. Alors encore, si elle s'intégrait bien à l'existant, et que c'était utilisable en dehors de tout ton framework, pourquoi pas, mais je n'ai pas l'impression : tout semble très imbriqué, du coup je n'ai même pas espoir que cette fonctionnalité intéressante puisse être utilisée ailleurs. (déjà je fais du C, donc c'est niet)
Je comprends tout à fait que tu ne veuilles pas te plonger dans le code de cette bibliothèque (j'aurais la même réaction à ta place), mais alors, pourquoi ne pas me laisser le bénéfice du doute, c'est-à-dire de considérer que, peut-être, après tout, j'avais de bonnes raisons d'implémenter cette bibliothèque, au lieu de considérer d'office que c'était une erreur ?
on ne comprend pas, donc, au lieu d'approfondir, ou de demander des éclaircissement au développeur si l'on a pas envie de se plonger dans le code (ce que je comprends tout à fait), on se répand en généralités sans rapports pour discréditer le framework en question.
Essaye de penser que tu n'es pas au centre du monde : malheureusement, ton « standard » n'est pas le standard, et c'est en général plutôt à toi de t'adapter aux autres que l'inverse.
Et je ne dis pas ça pour t'embêter, mais juste pour que tu remettes les pieds sur terre et te rende compte que personne ne s'intéressera à ton travail si tu le présente et le développe ainsi. Ce n'est peut-être pas ce que tu cherches, mais tu disais vouloir au moins avoir des retours, et je t'explique pourquoi je pense que tu n'en auras pas.
Je ne comprend pas le rapport de ta réponse avec l'extrait de mon intervention que tu cites. Encore une fois, je n'ai jamais demandé à qui que ce soit de s’intéresser à mon framewok. Tu dis que j'ai demandé des retours ; je ne m'en souviens pas, et je ne vais pas relire l'ensemble des commentaires de ce journal, donc je vais supposer que c'est vrai, mais, ça serait, à priori, vu ce que j'avais à l'esprit en rédigeant ce journal, au sujet des particularités du logiciel, pas de la manière dont elles sont implémentées. Je pense qu'il est préférable d'avoir un bon logiciel, fût-il réalisé avec des solution non-standards, qu'un logiciel inutilisable, fût-il réalisé avec des solutions standards…
je n'aurais pas développé ce framework si je pouvais développer aussi vite et aussi bien avec d'autres outils.
Tu sais, tout programmeur a un jour pensé à faire ça. Puis on a appris le principe de « standard » : ça n'est pas toujours parfait, ça ne fait pas exactement ce qu'on veut, mais c'est ce qui permet de travailler en commun. Avec ta méthode, désolé mais tu travailleras toujours tout seul.
Peut-être pas, si c'est mes solutions qui deviennent les standards :-). Mais, je le concède, c'est mal parti, d'autant plus que ce n'est pas mon but à ce jour.
Et, en fait, le problème avec les standards, outre, qu'effectivement, cela ne permet pas toujours de réaliser ce que l'on veut, c'est surtout, et c'est bien plus grave, que cela ne permet pas toujours de réaliser ce que le client veut.
Quel est le problème de travailler seul ? Les clients ne se sont jamais plaints de mes délais (une fois qu'ils ont assimilé qu'on ne peut pas leur livrer le produit pour avant-hier), et j'ai toujours pu intégrer mes développements à l'environnement de production du client, quel qu'il soit.
De manière générale, les clients veulent un logiciel vite et bien fait. Que ce logiciel soit réalisé par une seule personne ou par plusieurs, (généralement, moins il y a de personnes impliquées, moins c'est cher, donc ils préfèrent), en utilisant ou non des solutions standards (je parle là des solutions de développement, pas des formats de fichiers), généralement peu leur chaut.
Bon courage quand même dans ta voie
Merci !
Développer un logiciel n'est pas trivial. Pour cette raison, la majorité des développeurs utilise les solutions qu'ils considèrent (à tord ou à raison) les plus faciles à utiliser. Pour beaucoup, apparemment, notamment au vu des commentaires ici, il s'agit des solutions 'standards'. Bien que, moi aussi, j'utilise certaines solutions standards (XML est peut-être décrié, mais c'est néanmoins un standard ; ce n'est pas une de mes inventions), il se trouve que j'ai été amené à développer mes propres solutions parce que celles existantes ne me convenaient pas. Comme toi et certains des intervenants ici n'ont pas manqués de le souligner, c'est une démarche rare. Cependant, elle n'est pas unique. Et heureusement, sinon l'écosystème informatique serait bien pauvre. Toutes les solutions considérées comme 'standards' aujourd'hui ne l'ont pas été à leurs débuts, et se sont certainement vu opposer les 'standards' de l'époque. Heureusement, cela n'a pas découragé les concepteurs de ces solutions, sinon elles ne seraient pas considérées comme les 'standards' d'aujourd'hui…
Contrairement à ce que certains pensent ici, et je me demande bien sur quel base, je n'essaie pas de promouvoir mon framewok. Je ne fais que présenter quelques logiciels que je développe, à l'instar de celui présenté dans ce journal, qui ont comme particularité d'être tous basés sur mon framework (c'est simplement un fait technique), ce qui fait qu'ils ont certains points communs (manière de gérer les traductions, les arguments de la ligne de commande, possibilité de placer des directives XPP dans les fichiers de configuration…) qui les distinguent des autres logiciels. Mon but premier est de produire des logiciels qui satisfassent ses utilisateur (et, parmi ces utilisateurs, le plus exigeant de tous : moi) , et mon framework est un outil essentiel pour parvenir à ce but. Si, parmi ces utilisateurs, il y a des développeurs qui estiment que certaines particularités de ces logiciels, et donc, par conséquent, du framework sur lequel ils sont basés, sont suffisamment intéressantes pour contrebalancer le fait qu'il ne s’appuie pas sur des solutions 'standards', alors peut-être que, de concert, on pourra mettre en place les éléments qui lui permettront de gagner en popularité. Ou pas.
[^] # Re: Un petit utilitaire à moi -> XML + XSL -> 'Lilypond' + 'Frescobaldi'.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche L’expression musicale sous GNU/Linux. Évalué à 2.
Merci ! Content que ça plaise !
Pour les pièces faites avec l'Amiga, j'utilisais un tracker, probablement Protracker. Pour les sons, je piochais dans ceux qui étaient fournis avec.
Pour le MIDI, les sons sont ceux d'origine de la Sound Blaster AWE32 que j'utilisais à l'époque. Elle m'avait coûtée une petite fortune, mais c'était l'une des meilleurs carte son de l'époque.
J'ai ajouté un PDF de la partition de la pièce 'OMS0964'. Comme la pièce n'est pas achevée, il manque certaines choses comme les nuances, ou encore les articulations…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Un petit utilitaire à moi -> XML + XSL -> 'Lilypond' + 'Frescobaldi'.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche L’expression musicale sous GNU/Linux. Évalué à 3.
En fait, ce sont plutôt des exercices de style, beaucoup étant inachevés.
Les premières sont de ma période Amiga, aux timbres aisément reconnaissables, et limitées à 4 canaux, mais je m'étais quand bien amusé.
Les dernières sont du pur MIDI.
'rosscset' n'a évidemment pas été composée par moi ; c'est une transcription (ce n'est pas vraiment le terme adéquat) que j'ai réalisée pour explorer les possibilités du MIDI.
Les voici : http://q37.info/download/music/
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Un petit utilitaire à moi -> XML + XSL -> 'Lilypond' + 'Frescobaldi'.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche L’expression musicale sous GNU/Linux. Évalué à 3.
Pour la composition proprement dite, j'utilise un séquenceur MIDI + un clavier MIDI. Vu que le style de musique que je compose contient de nombreuses variations de tempo, je n'utilise que très rarement le métronome du séquenceur. Je joue en premier une voie significative, soit celle qui a la mélodie, soit une des voies d'accompagnement, et je rajoute les autres voies en me servant de cette voie comme base rythmique.
Le processus décrit dans mon précédent message sert juste à créer la partition correspondante.
Étant donné que, comme indiqué ci-dessus, je ne me sers que très rarement du métronome (je laisse le tempo par défaut, et je me contente de couper le son du métronome), il n'y a aucune correspondance entre la pulsation du métronome et ce que je joue. Or, comme le séquenceur s'appuie sur la pulsation du métronome pour en déduire la figure des notes d'après leur durée, la partition que ce dernier me génère est absolument injouable, sans compter qu'elle n'a de loin pas le rendu obtenu avec 'Lilypond'.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Un petit utilitaire à moi -> XML + XSL -> 'Lilypond' + 'Frescobaldi'.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche L’expression musicale sous GNU/Linux. Évalué à 5.
Pour mes compositions et mes transcriptions, je les saisis voie par voie, fragment mélodique par fragment mélodique, à l'aide d'un petit utilitaire que j'ai écrit, et qui fonctionne de la manière suivante.
Dans un premier temps, il est en mode saisie de notes, dans lequel je joue la mélodie au clavier MIDI sans tenir compte des durées. Je lui fais rejouer la mélodie note par note, un appui sur une touche du clavier non MIDI le faisant passer d'une note à l'autre, un appui sur une note du clavier MIDI remplaçant la note en cours par la nouvelle note, ce qui me permet de corriger les erreurs.
Une fois toutes les notes de la mélodie correctement saisies, je bascule en mode saisie de durées.
Là aussi, le logiciel me joue la mélodie précédemment saisie note par note, et, pour chaque note, j'appuie sur une touche du pavé numérique, ce qui lui affecte une durée et le fait passer à la note suivante. '0' pour une ronde, '1' pour une blanche, '2' pour une noire, '3' pour une croche et ainsi de suite, en utilisant '.' si la note est pointée.
Je lui fais jouer toute la mélodie en tenant compte des durées, pour vérifier si elle est correcte, et corrige si nécessaire.
Une fois que le fragment mélodique est correct, je lui fais générer un fichier 'XML' qui décrit la mélodie, à l'aide de balises de mon cru. J'applique ensuite une transformation 'XSL' sur ce fichier 'XML', en utilisant un fichier 'XSL' spécialement écrit dans ce but, ce qui me génère le fragment mélodique au format 'Lilypond'. J'insère ce fragment dans le fichier 'Lilypond' global de l'œuvre, puis j'utilise 'Frescobaldi' pour ajouter les nuances, les articulations…
Et j'obtiens au final une superbe partition dont la présentation n'a rien à envier à ceux produits par les logiciels commerciaux, et ce sans avoir à saisir notes et durées dans le format 'Lilypond'.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Syntaxe
Posté par Claude SIMON (site web personnel) . En réponse au message [RÉSOLU] rsync exclusion de fichier et dossier. Évalué à 2. Dernière modification le 23 janvier 2017 à 19:14.
On peut mettre les options après SRC et DEST sans problèmes. C'est surtout que l'argument de
--exclude
est relatif par rapport à SRC, donc il ne faut pas mettre$(dossierSource)
dans le PATTERN, et ce qui est indiqué ci-dessus devrait fonctionner…« Smart IoT Crafting » : l'IoT pour tous
# CyanogenMod (LineageOS) + Lil'Debi
Posté par Claude SIMON (site web personnel) . En réponse au journal Tablette 2017. Évalué à 5. Dernière modification le 14 janvier 2017 à 17:14.
Je possède une tablette Android (ARM) sous CyanogenMod qui me permet d'aller sur le web sans avoir à allumer mon ordinateur de bureau, me sert de liseuse, et sur laquelle je peux compiler et lancer les logiciels que je développe. D'ailleurs, le logiciel que j'utilise le plus sur cette tablette est celui que je présente dans ce journal.
Comme il s'agit d'un logiciel natif en ligne de commande, j'ai installé Lil'Debi pour disposer de l'environnement de compilation adéquat, et également pour disposer d'un environnement GNU/Linux, auquel je peux me connecter à distance via SSH. La finalité de mon logiciel est de produire un fichier HTML, et j'affiche celui-ci dans un navigateur web sous Android, ce dernier ayant accès au système de fichiers de Lil'Debi.
À l'origine, je faisais tourner mon logiciel sur un Nokia N900, et c'était beaucoup plus simple parce que le N900 dispose d'un véritable environnement GNU/Linux. Malheureusement, l'écran du N900 est trop petit pour déchiffrer une partition. D'où l'utilisation d'une tablette, avec installation de Lil'Debi, pour me retrouver à peu prés avec le même environnent que celui du N900. Le problème, c'est que Lil'Debi rend la tablette poussive.
Du coup, j'ai repéré une tablette Intel hybride Android/Windows, ce qui m'offre les possibilité suivantes :
- Soit de remplacer Windows par une distribution GNU/Linux,
- soit d'installer Cygwin pour y retrouver un environnement à la GNU,
- soit de l'utiliser avec Android comme ma tablette actuelle, sachant qu'elle devrait pouvoir encaisser plus facilement Lil'Debi étant donné qu'elle a beaucoup plus de RAM, Windows oblige.
Au final, je cherche l'équivalent de mon N900 en tablette 10" ou plus, et le modèle que je décris ci-dessus s'en approche le plus, sachant que j'aimerais, en plus, en lui adjoignant un trackball et un clavier, pouvoir m'en servir de machine de développement secondaire, lorsque je suis en déplacement, et qu'il faut donc qu'elle soit assez costaude…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Trojita
Posté par Claude SIMON (site web personnel) . En réponse au journal Epeios Meta Mail User Agent : première publication.. Évalué à 1.
De ce que j'ai pu constater, on a, d'une part, les webmails, auxquels on peut accéder d'à peu prés n'importe quel dispositif connecté à Internet, mais qui ne sont, en gros, que des frontends IMAP, d'où le fait que l'on ne peut gérer qu'un seul compte mail à la fois, et, d'autre part, les clients natifs, qui peuvent proposer des fonctionnalités plus évoluées que celles disponibles avec IMAP, comme la gestion simultanée de plusieurs comptes en même temps, mais qui ne sont accessibles que d'une seule machine.
Ce que je cherche à obtenir, c'est le meilleur des deux mondes, c'est-à-dire pouvoir accéder à mon MUA d'un maximum de dispositifs connectés, et pouvoir cependant toujours disposer de toute les fonctionnalités de mon MUA, qui iront au-delà de celles disponibles IMAP.
C'est pour cela que mon MUA, contrairement aux MUA classiques qui accèdent directement aux serveurs POP3/IMAP, se connecte à un daemon, et c'est ce daemon se connectera aux différents comptes POP3/IMAP. Et comme c'est également ce daemon qui implémentera toutes les fonctionnalités de mon MUA, ces fonctionnalités seront disponibles quels que soient les clients utilisés (desktop, web ou mobile).
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Si, ça existe.
Posté par Claude SIMON (site web personnel) . En réponse au journal Epeios Meta Mail User Agent : première publication.. Évalué à 1.
Personnellement, le compte d'origine d'un mail m'importe peu, d'autant qu'il n'est pas rare que je change le compte d'affectation de mes alias. Faire passer ce lien entre courrier et compte au second plan est même l'un des objectifs de mon application. Mais la plupart des MUA sont, en quelque sorte, orientés comptes, donc, quelque part, je pense qu'il est préférable qu'un utilisateur qui utilisait ce genre de MUA puisse retrouver ce lien auquel il est habitué, bien que ce lien ne soit qu'accessoire au niveau de l'application.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Si, ça existe.
Posté par Claude SIMON (site web personnel) . En réponse au journal Epeios Meta Mail User Agent : première publication.. Évalué à 2.
Je viens d'installer Claws-Mail et, effectivement, contrairement à ce que je supputais dans le journal (et que j'entendais par « …indépendamment les uns des autres »), au moins avec ce logiciel, il est possible de déplacer un courrier d'un compte mail à un autre. Ceci dit, je ne pense pas que ce soit propre à ce logiciel ; cela doit être lié au protocole IMAP…
Néanmoins, dans Claws-Mail (à moins que j'ai loupé quelque chose dans ses options de configuration), chaque compte mail a sa propre arborescence, même si elles ne sont pas aussi imperméables que je le pensais. Or, je préfèrerais avoir une arborescence unique et commune à tous les comptes mail, même s'il doit rester possible de différencier les courriers en fonction du compte dont ils sont issus.
Pour ce qui est de l'écriture d'un nouveau courrier, je ne me suis pas encore penché sur la question, me concentrant pour l'instant sur la lecture de courriers (protocole IMAP et connexions chiffrées), mais je prend bonne note de la fonctionnalité décrite.
« Smart IoT Crafting » : l'IoT pour tous
# Alternative sans et avec fil
Posté par Claude SIMON (site web personnel) . En réponse au journal Quel Périphérique de pointage ?. Évalué à 1.
Après 4 Logitech M570 (dont deux suite à un remplacement sous garantie, à chaque fois accepté sans difficulté et rondement mené par Logitech), lassé par un problème récurrent de bouton gauche devenant inutilisable au bout d'à peu prés un an, j'ai actuellement un APTICO de SPEEDLINK. C'est un trackball sans fil à commande par pouce (à l'instar de Logitech, ils ne font pas (plus) de modèle filaire).
Cela fait moins d'un an que je le possède, donc je ne sais pas s'il tiendra plus longtemps que le M570, mais, malgré le fait qu'un des pieds en caoutchouc s'est barré (ce qui, personnellement, ne me dérange pas), et que le pointeur se bloque (bah oui, ça n'arrive pas qu'aux claviers) de temps en temps (il suffit alors d'actionner le bouton gauche et ça repart), il me convient.
Sinon, en filaire, mais je ne l'ai pas essayé, il existe le SANWA MA-TB39.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: HP !
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche Création d'un multiroom audio à base de raspberry / hifiberry / max2play. Évalué à 1.
Je ne suis qu'un dilettante en la matière, donc je vais peut-être sortir une grosse connerie, mais je suis un jour tombé par hasard sur ça. Ça n'irait pas dans le sens de ce que tu décris ?
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: chromium, but not only
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : nouveaux types de champs (widgets jQuery) et onglets. Évalué à 3.
Je n'ai jamais développé d'application web pour mes clients, et je n'ai pas l'intention d'en développer. L'interface de l’application présentée ici montre clairement que je n'ai pas les compétences en HTML, CSS et consorts pour cela (c'est pour cela que la facilité de modification de l'interface est un point clef de la technologie que j'emploie). D'ailleurs, si un prospect me contacte pour me demander de développer une application web, je lui dit sans équivoque qu'il lui sera facile de trouver développeur bien plus compétent et concurrentiel que moi pour cela.
Le fait est que les interfaces desktop que je développe s'appuient sur des technos web, pour les raisons expliquées dans ce journal. Du fait de l'utilisation de ces technos web, il me semblait juste logique que le même code puisse servir pour développer une version web de l'interface. Et c'est cette hypothèse qui fait l'objet d'une des POC présentés ici. L'interface web, c'est juste un bonus ; cela ne fait pas officiellement partie de mes prestations…
Au contraire, c'est parce que mes clients s'intéressent à la technique qu'ils me contactent. Ils sont bien conscients que c'est parce que les développeurs classiques n'ont pas la maîtrise des technologies qu'ils utilisent qu'ils ne sont pas capables de leur fournir une application qui réponde à leurs besoins. Avec mon framework, parce que j'en ai la totale maîtrise, je ne suis pas soumis au bon vouloir d'un éditeur pour en dépasser les limites.
Il vaut mieux une application développée dans une technologie soi-disant captive (mon framework, c'est quand même que du C++), mais qui réponde parfaitement aux besoins du client, qu'une application certes basée sur des technologies répandues, mais inutilisable à cause des limitations de ces technologies. Des clients dont les exigences sont telles que les technologies classiques ne peuvent y répondre sont peu nombreux, mais, d'un autre coté, comme on est peu de développeurs sur ce marché…
Je n'ai pas trop compris ce que tu entends par viser un usage pour les projets communautaires.
Concernant mon framework, du fait qu'il soit atypique et que la documentation est inexistante, il y a peu de chances que quelqu'un s'y intéresse ; je ne communique donc pas directement dessus. Par contre, une application telle que celle présentée ici, naturellement pas en l'état, est plus à même de susciter l'intérêt, voire de fédérer une communauté. Certes, il reste bien du travail pour que cette application soit utilisable, et c'est pour cela que j'insiste plus sur l'aspect POC que sur ses fonctionnalités. Mais, à terme, peut-être deviendra-t-elle un projet communautaire ? En tout cas, je n'y aurais rien à y redire…
Suite à ces journaux, j'observe quand même quelques téléchargements de mes logiciels. Sans préjuger de l'intention des téléchargeurs, on peut quand même supposer que mes logiciels, et donc leur évolution, les intéressent, d'où ces journaux pour communiquer à leur sujet…
« Smart IoT Crafting » : l'IoT pour tous
[^] # chromium, but not only
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : nouveaux types de champs (widgets jQuery) et onglets. Évalué à 3. Dernière modification le 06 août 2016 à 09:08.
Ce n'est pas parce que c'est atypique que c'est imbitable. Et si tu m'indiquais précisément ce qui te semble imbitable, je me ferais un plaisir de te fournir les explications pour te le rendre bitable. Et ça me donnerais de précieuses indications sur ce que je dois mettre dans la documentation que je suis en train de rédiger.
Je me suis peut-être mal exprimé, mais, au contraire, depuis la mise à jour de Microsoft Edge, l'interface web fonctionne avec tous les navigateurs web graphiques modernes que j'ai pu essayer. Avec la démonstration en ligne, il y a moyen de s'en rendre compte par soi-même. Il y a juste Firefox qui pose problème dans certains cas, comme je l'ai expliqué…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Erreur lien 'technologie XDHTML'.
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : nouveaux types de champs (widgets jQuery) et onglets. Évalué à 1.
C'est plutôt à moi de dire (enfin d'écrire) merci :-) !
« Smart IoT Crafting » : l'IoT pour tous
# Erreur lien 'technologie XDHTML'.
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : nouveaux types de champs (widgets jQuery) et onglets. Évalué à 4.
Malgré mes multiples relectures, j'ai laissé passé une erreur sur le pénultième lien, celui sur la technologie XDHTML. Voici le lien correct.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: xdhbrwq/xdhbrwq XDHTML/orgnzqxdh
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 4. Dernière modification le 26 juillet 2016 à 10:17.
Quelles macros ? Les seules que je tape régulièrement, ce sont
qRH, qRB, qRR
…, et leurs consœursqRFwk(), qRGnr()
…; qui sont dédiées à la gestion d'erreurs ; algorithmiquement, elles ne sont pas significatives, et elles ne sont pas nécessaires à la compréhension du code, sauf quand celui-ci s'occupe de la gestion des erreurs, évidemment. Quant aux autres macros, elles existent juste pour m'éviter d'avoir à taper du code dont j'ai fréquemment besoin, mais elles ne constituent certainement pas un nouveau dialecte.Si l'on m'indique quelles macros posent problème, je détaillerais volontiers leurs usages…
Ce n'est de loin pas de l'informatique abstraite : la preuve, il y a une démonstration accessible en ligne qui montre que c'est au contraire tout à fait concret. Quand à cette histoire de surcouche avec HTML, je n'ai pas trop compris. Cela concerne peut-être ce que j'ai décris dans ce journal.
Pour ce qui est d'avoir besoin d'un quadricœur avec 4GO de RAM, il y a un package disponible avec les binaires Windows destinés à du XP SP3 et supérieur, et un autre pour du GNU/Linux compatible IA-32 ou AMD64 natif. Ces packages sont relativement simple à déployer (mais je concède que c'est améliorable), et je suis preneur de tout retour sur leur mise en œuvre.
Soit dit en passant, comme je l'ai signalé, la CGI et le backend tournent sans problèmes sur une brique internet, à savoir une architecture ARM 32 bits dual-core à 1 GHz avec 512 Mo de RAM. Pour ceux qui disposent d'un matériel similaire tournant sous GNU/Linux, ils peuvent le vérifier ; je décris la procédure dans le journal. Et enfin, il y a la démonstration en ligne ; là aussi, je suis preneur de tout retour sur les ressources nécessaires et les éventuels problèmes rencontrés en fonction du navigateur utilisé.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: Documentation
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 2.
J'en suis parfaitement conscient. Ce n'est pas de la mauvaise volonté, c'est que je ne suis vraiment pas doué pour rédiger des documentations, ou pour communiquer sur mes projets de manière générale, comme le montre d'ailleurs les journaux que j'ai publiés, ainsi que le contenu de mon site Web.
Par ailleurs, ce genre d'application me permet d'améliorer le framework sur lequel il s'appuie, et que j'utilise, en tant que développeur freelance, pour les développements que je réalise pour mes clients. Donc, tout le travail de codage réalisé pour cette application me permet de proposer à mes clients du code de meilleur qualité et développé plus rapidement, ce qui est bénéfique, notamment financièrement, et pour moi, et pour le client. Par contre, tous les à-coté de ce genre de projet, comme la rédaction de documentation, sont, du point de vue financier, une pure perte de temps.
Ceci dit (ou plutôt écrit), cela ne m'empêche pas d'essayer de communiquer tant bien que mal sur mes projets, justement en publiant ce genre de journaux, dont certains commentaires contiennent d'intéressantes pistes d'améliorations. Ainsi, j'ai travaillé, suite au dernier journal, à l'amélioration du packaging de l'application, ce qui facilite son déploiement sous GNU/Linux et Windows (pour OS X, c'est loin d'être encore ça). J'ai prévu, en plus d'améliorer l'application, de mettre l'accent sur la documentation pour le prochain journal. Mais cela sera forcément très incomplet, vu l'ampleur de la tâche, mais il faut un début à tout.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: c'est bien gentil
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 1.
J'ai oublié de préciser que l'on peut :
- modifier le contenu d'une fiche en cliquant sur l'entrée qui lui correspond dans la liste,
- modifier le contenu d'un champ en cliquant sur son libellé,
- modifier le contenu d'une entrée d'un champ multi en cliquant sur son contenu.
Accessoirement, on peut également afficher un A propos… avec
Ctrl+Shift-A
. Sur certains navigateurs, cela provoque l'affichage d'une nouvelle page ; il faut alors revenir sur la page de l'application. Je n'ai pas (encore) trouvé de combinaison de touches qui fonctionnent pour tous les navigateurs, ou (mieux) le moyen d'inhiber le comportement par défaut du navigateur…« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: bug...
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 2.
Bon, j'ai finalement profité d'une baisse momentanée d'activité sur le serveur pour rapidement mettre la version corrigée en place…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: bug...
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 2.
Merci pour le signalement.
Le bug est corrigé, mais il faudra attendre le déploiement de la prochaine version de l'application pour profiter de la correction.
Quand à l'option de déconnexion, elle est absente parce que je ne me suis pas encore pris le temps de l'implémenter…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: De l’utilité des exceptions.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2.
Le document sur le site de Stroustrup visait simplement à établir, de manière indiscutable je crois, ce pour quoi les exceptions C++ ont été conçues. Maintenant, faut-il ou non les utiliser, c'est un autre débat.
Je veux bien croire que, dans certains domaines, comme ceux des jeux vidéos, de l'embarqué, du développement de drivers, etc. il y ai des contraintes qui poussent à éviter les exceptions, mais ce qui est vrai pour ces domaines-ci ne l'est pas forcément pour les autres, les contraintes n'étant pas les mêmes…
Quand au lien Google, ma compréhension de l'anglais est certainement perfectible, mais il me semble quand même qu'ils écrivent (traduction très libre) :
Donc, au final, ça m'a plutôt l'air d'un plaidoyer en faveur des exceptions C++…
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: c'est bien gentil
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 6.
En l'état, pas grand chose ; on peut créer des fiches avec des champs textes, et réorganiser les champs d'une fiche, ainsi que les entrées d'un champs, par drag & drop, et c'est à peu prés tout. Des fonctionnalités seront ajoutées petit à petit, et feront l'objet de publications ici même.
En attendant, cette application fait office de proof of concept. Elle permet d'étudier la faisabilité, entre autres :
- de coder entièrement et uniquement en C++ une interface basée sur des technos Web,
- d'utiliser un seul et même code (C++) pour l'interface Web et pour l'interface native d'une application,
- d'offrir la possibilité de modifier entièrement l'apparence d'une application sans avoir à intervenir sur son code source, uniquement en modifiant des fichiers XSL.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: De l’utilité des exceptions.
Posté par Claude SIMON (site web personnel) . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2. Dernière modification le 24 juillet 2016 à 17:35.
Je ne vois pas ce à quoi le terme dessus fait référence, et, quant au lien, je ne vois rien dans la biographie de l'auteur qui donne le moindre poids à ses écrits en général, et ces écrits en particulier. Par contre, j'ai trouvé ceci, dont B. Stroustrup lui-même est l'un des auteurs. Je pense que les deux premiers paragraphes de l'introduction sont on ne peut plus clairs quant à l'usage pour lesquels les exceptions C++ ont été conçues…
« Smart IoT Crafting » : l'IoT pour tous
# Le prochain épisode est paru :-).
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 1.
Pour ceux qui sont intéressés par la suite, notamment, comme annoncé, l'interface Web, avec une démonstration en ligne, ça se passe ici.
« Smart IoT Crafting » : l'IoT pour tous
[^] # Re: anti-pattern NIH
Posté par Claude SIMON (site web personnel) . En réponse au journal 'Epeios organizer' : le commencement. Évalué à 2.
J'ai l'impression que tu penses que mes
Makefile
sont plus sophistiqués qu'ils ne le sont réellement. Mes scripts de générations prennent en compte juste la nature du binaire à générer (exécutable ou bibliothèque) et la liste des fichiers sources. C'est tout. Pas de dépendances à gérer (il y a CEF maintenant, mais c'est une exception, et cela ne concerne qu'un seulMakefile
). A nature de binaire identique, la seul chose qui change d'unMakefile
à l'autre, c'est le tout début, qui contient la liste des fichiers source. Tout le reste est identique.Si, d'aventure, j'avais effectivement fait le choix d'utiliser autotools et/ou consorts, au lieu de placer les
Makefile
générés dans le VCS, et bien j'y aurais placé les fichiers 'source' d'autotools et consorts, qui auraient également été générés, à l'instar desMakefile
. Donc, cela n'aurait fait que déplacer le problème, si problème il y a, avec, en outre, une complexification induite par l'utilisation d'autotools et/ou consorts.Je ne connaissais pas. J'ai un peu regardé, pas beaucoup, car il semble que ce ne soit implémenté que dans les navigateurs. Or, j'ai besoin, d'une part, de pouvoir utiliser ce mécanisme dans mes propres logiciels (pour l'appliquer sur les fichiers de configuration de mes logiciels), et, d'autre part, de pouvoir mettre ce mécanisme en œuvre via un utilitaire en ligne de commande. Mes deux utilitaires (sablotron et
xsltprocess
) ne semblent pas l'implémenter, et je n'ai pas trouvé d'utilitaire ou de bibliothèque qui implémente ce mécanisme. Donc, aujourd'hui, connaissant l'existence des embedded stylesheet, si j'étais confrontés aux même besoins que ceux qui m'ont poussés à développer XPP, je serais obligé de faire le même choix qu'à l'époque, à savoir développer ma propre solution.Ceci dit, je n'ai jamais écrit que je ne m’intéressais pas aux solutions alternatives, mais que je n'utilisais pas ces solutions (forcément, puisque j’utilise mes alternatives), et c'est bien ce dernier point qui dérange. Comme déjà évoqué, si je ne m'étais pas intéressé à ce qui existe, je n’utiliserais pas XML, mais mon propre langage de balisage…
Je comprends tout à fait que tu ne veuilles pas te plonger dans le code de cette bibliothèque (j'aurais la même réaction à ta place), mais alors, pourquoi ne pas me laisser le bénéfice du doute, c'est-à-dire de considérer que, peut-être, après tout, j'avais de bonnes raisons d'implémenter cette bibliothèque, au lieu de considérer d'office que c'était une erreur ?
Je ne comprend pas le rapport de ta réponse avec l'extrait de mon intervention que tu cites. Encore une fois, je n'ai jamais demandé à qui que ce soit de s’intéresser à mon framewok. Tu dis que j'ai demandé des retours ; je ne m'en souviens pas, et je ne vais pas relire l'ensemble des commentaires de ce journal, donc je vais supposer que c'est vrai, mais, ça serait, à priori, vu ce que j'avais à l'esprit en rédigeant ce journal, au sujet des particularités du logiciel, pas de la manière dont elles sont implémentées. Je pense qu'il est préférable d'avoir un bon logiciel, fût-il réalisé avec des solution non-standards, qu'un logiciel inutilisable, fût-il réalisé avec des solutions standards…
Peut-être pas, si c'est mes solutions qui deviennent les standards :-). Mais, je le concède, c'est mal parti, d'autant plus que ce n'est pas mon but à ce jour.
Et, en fait, le problème avec les standards, outre, qu'effectivement, cela ne permet pas toujours de réaliser ce que l'on veut, c'est surtout, et c'est bien plus grave, que cela ne permet pas toujours de réaliser ce que le client veut.
Quel est le problème de travailler seul ? Les clients ne se sont jamais plaints de mes délais (une fois qu'ils ont assimilé qu'on ne peut pas leur livrer le produit pour avant-hier), et j'ai toujours pu intégrer mes développements à l'environnement de production du client, quel qu'il soit.
De manière générale, les clients veulent un logiciel vite et bien fait. Que ce logiciel soit réalisé par une seule personne ou par plusieurs, (généralement, moins il y a de personnes impliquées, moins c'est cher, donc ils préfèrent), en utilisant ou non des solutions standards (je parle là des solutions de développement, pas des formats de fichiers), généralement peu leur chaut.
Merci !
Développer un logiciel n'est pas trivial. Pour cette raison, la majorité des développeurs utilise les solutions qu'ils considèrent (à tord ou à raison) les plus faciles à utiliser. Pour beaucoup, apparemment, notamment au vu des commentaires ici, il s'agit des solutions 'standards'. Bien que, moi aussi, j'utilise certaines solutions standards (XML est peut-être décrié, mais c'est néanmoins un standard ; ce n'est pas une de mes inventions), il se trouve que j'ai été amené à développer mes propres solutions parce que celles existantes ne me convenaient pas. Comme toi et certains des intervenants ici n'ont pas manqués de le souligner, c'est une démarche rare. Cependant, elle n'est pas unique. Et heureusement, sinon l'écosystème informatique serait bien pauvre. Toutes les solutions considérées comme 'standards' aujourd'hui ne l'ont pas été à leurs débuts, et se sont certainement vu opposer les 'standards' de l'époque. Heureusement, cela n'a pas découragé les concepteurs de ces solutions, sinon elles ne seraient pas considérées comme les 'standards' d'aujourd'hui…
Contrairement à ce que certains pensent ici, et je me demande bien sur quel base, je n'essaie pas de promouvoir mon framewok. Je ne fais que présenter quelques logiciels que je développe, à l'instar de celui présenté dans ce journal, qui ont comme particularité d'être tous basés sur mon framework (c'est simplement un fait technique), ce qui fait qu'ils ont certains points communs (manière de gérer les traductions, les arguments de la ligne de commande, possibilité de placer des directives XPP dans les fichiers de configuration…) qui les distinguent des autres logiciels. Mon but premier est de produire des logiciels qui satisfassent ses utilisateur (et, parmi ces utilisateurs, le plus exigeant de tous : moi) , et mon framework est un outil essentiel pour parvenir à ce but. Si, parmi ces utilisateurs, il y a des développeurs qui estiment que certaines particularités de ces logiciels, et donc, par conséquent, du framework sur lequel ils sont basés, sont suffisamment intéressantes pour contrebalancer le fait qu'il ne s’appuie pas sur des solutions 'standards', alors peut-être que, de concert, on pourra mettre en place les éléments qui lui permettront de gagner en popularité. Ou pas.
« Smart IoT Crafting » : l'IoT pour tous