Ici, dans le cas de Datafari, la packaging est fait via des projets Maven utilisant des tâches Ant !
C'est dommage de ne pas utiliser à la fois le plugin assembly et les overlays pour faire tout ça.
Perso, dans la boîte où je travaille, on a essayé d'intégrer DataFari par les sources et franchement, c'est pas évident.
Le but était d'intégrer nos propres composants OpenNLP dans le bousin. Le problème, c'est que malgré la présence de fichiers projet Maven, c'est plus du packaging que de la compilation.
Du coup, on est un peu déçu parce que hormis utiliser l'image Docker, c'est pas vraiment ça.
J'espère que cette version 4.3 permettra de construire à partir des sources et si c'est pas le cas, ça ressemblera plus à du Openwashing qu'autre chose.
J'avoue qu'en plus, ça
retrait de la gestion de la sécurité (maintenant dédiée à la version Entreprise propriétaire) ;
ça m'aide pas trop à être optimiste.
Comme on dit: "tu dis ça parce que t'es en colère" :D
Euh… SVN permet aussi les branches ! C'est juste qu'elles sont lourdes à manipuler (recopie complète de trunk)
?? Les branches ne sont qu'un lien vers le point de départ dans la révision donnée mais clairement pas une copie complète.
C'est d'ailleurs pour ça que la création de branche sur SVN est quasi immédiate (cf. Cheap copies).
Un autre exemple qui n'est pas un draft mais bel et bien la version ISO, Ada 2012.
D'ailleurs, cela a été le cas pour toutes les versions de la norme.
Il me semble qu'il s'agit en fait d'une volonté du groupe de normalisation plus que de l'organisme ISO lui-même, ici c'est l'ARG (Ada Rapporteur Group codé ISO/IEC JTC 1/SC 22/WG 9) qui s'y colle.
J'avoue n'avoir pas eu à faire ce genre de manip dans mon code C++ qui, au final, était majoritairement plus du C with classes écrit from scratch qu'autre chose.
Et du coup, les seuls templates que j'ai fait, c'étaient des génériques Java (sans interface) ou Ada (avec interfaces compilables).
Il contiennent par exemple l’implémentation complète des templates alors même que pour utiliser une bibliothèque compilée, les templates ne servent plus à rien : ont ne peut utiliser que ceux qui ont été explicitement construits et toute la machinerie d’automatisation qui va avec est perdue.
Là, je ne comprends pas (ceci dit, je n'ai plus fait de C++ depuis 15 ans alors c'est normal). Typiquement, la STL regorge de définitions de templates qu'on peut utiliser en les instanciant dans son propre code. Du coup, je veux bien un petit exemple :)
La frontière .h/.cpp actuelle n’est vraiment qu’un reliquat historique, et C++ ne sépare pas bien du tout les interfaces des implémentations, à l’inverse de ce qui se fait dans d’autres langages
Pour parler de ce que je connais, par exemple, l’avant et l’après « contains » d’un module Fortran.
Factuellement, tu a un sacré paquets de développeurs qui arrivent à s'en dispenser ;)
Oui, effectivement, j'en fais partie si tu parles du Java ou du Python :D
Mais ça ne veut pas dire que je trouve ça bien.
D'ailleurs, ça marche bien quand tu as accès aux sources dès que tu as du compilé sans les sources, c'est quand même mieux d'avoir des interfaces, non ? ;)
la dualité .h/.cpp qui n’apporte que de la confusion.
Alors autant je trouve que le système hérité du C de header via le macro-processeur est pourri (oui, oui, on peut importer un .cpp dans un .h), autant je trouve indispensable de séparer l'interface de l'implémentation.
Du coup, je veux bien que tu m'expliques en quoi cela apporte de la confusion.
Je ne pense pas que raisonner en fréquence soit judicieux, surtout sur 15 ans. La fréquence ne fait pas tout dans un processeur et ne constitue qu'un paramètre du calcul de sa puissance et de celle de l'ordinateur. Il faut aussi regarder les I/O, les latences, le nombre d'instructions par cycle, etc.
Certes mais tout dépend aussi de ce que l'on nomme IoT. Si c'est pour avoir une simple remontée d'un capteur de pression ou de température sur le réseau, ça me semble beaucoup. Alors oui, le nombre d'instructions par cycle va jouer mais je doute qu'on soit sur un processeur qui ait besoin de trois cycles pour faire une addition.
une très forte orientation vers l'IoT: petit form-factor, sobre en énergie mais également peu performant.
580Mhz pour de l'IoT ? On est quand même proche des configurations utilisées il y a 15 ans pour faire du commande-contrôle industriel.
Par contre, du coup, les 64/128Mo de RAM, ça fait un peu cheap par rapport aux bécanes de l'époque.
Au final, je ne sais pas si on peut dire que c'est pour de l'IoT. D'ailleurs, je n'ai pas dû bien chercher mais je n'ai pas trouvé les consommations électriques.
Pourtant, il y a eu de beaux bijoux tels que les Goupils, https://fr.wikipedia.org/wiki/SMT_Goupil mais ce fut Thomson qui fut retenu pour équiper les écoles en France, dommage.
Pour être vraiment exact, il y avait bien des Goupils, le nanoréseau Thomson étant administré par une machine compatible IBM PC. Dans l'école où travaillait ma mère, il y avait bien un petit renard :)
lorsque je suis à pieds, avant de traverser sur les passages piétons, même si j'ai priorité, je vérifie qu'il n'y a pas un taré en voiture qui arrive trop vite
Je fais pareil mais je rajouterai aussi que je fais pareil au feu rouge avec les vélos qui sont assez nombreux à trouver que le rouge n'est que décoratif.
Si la réponse ne vous plait pas, changez de question en "pourquoi veut-on autant de fonctionnalités ?".
C'est pas ça le problème, le problème, c'est
Donc on développe plus vite
On veut juste tout de suite un truc qui marchotte plutôt que d'avoir un truc un peu plus léché.
Le problème, c'est que c'est inhérent à l'époque et pas limité à l'informatique.
des choses plus testables et mieux testées qu'avant.
Alors ça, tu peux oublier. Il y a une quantité de softs où tu te demandes si la procédure d'installation a été testée, si la compilation par un tiers a été testée (le fameux "ça compile chez moi")…
Et heureusement qu'il y a des softs anciens qui ont été testés et qui étaient testables comme les métros, les avions et autres joyeusetés.
D'une, le lien ne fonctionne pas, il faut se rabattre sur un bon vieux copier/coller.
De deux, la dépêche que tu pointes précise bien que ce sont les gens de ScyllaDb qui annoncent être 10 fois plus rapide. Si, sur le papier, je me dis pourquoi pas, ScyllaDb reste une boîte commercial alors je les vois mal dire que leur ré-implémentation est juste aussi rapide que du Java.
Alors oui, le Java, c'est plus lent (cf. Benchmark game) mais bon, c'est pas non plus x10 à tous les coups.
Moi, je veux bien le faire mais qu'est-ce qui me dit qu'en moulant, on ne va pas me demander subrepticement mon numéro de carte bancaire ou essayer de me vendre je ne sais quel obscur jeu addictif ?
les “intent” déclarent les intentions d’utilisation d’une variable et laissent le compilateur libre de choisir le passage par référence ou par valeur
Au final, c'est pareil en Ada et c'est ce qui est dit dans le wikibook
The parameter passing method depends on the type of the parameter. A rule of thumb is that parameters fitting into a register are passed by copy, others are passed by reference. For certain types, there are special rules, for others the parameter passing mode is left to the compiler (which you can assume to do what is most sensible). Tagged types are always passed by reference.
Explicitly aliased parameters and access parameters specify pass by reference.
C'est au final au compilateur de choisir sauf si le développeur veut forcer une manière de passer les arguments et dans ce cas, on peut passer par des pointeurs.
D'ailleurs pour faciliter le masquage de la sémantique des pointeurs, Ada 2012 a introduit l'aspect Implicit_Dereference qui permet de ne pas avoir à utiliser un .all.
mais je ne connais aucun langage permettant facilement le choix entre copie/référence, const/mutable
Tu ne fais pas d'effort, il suffit de se documenter sur Ada :)
proceduretest(A: inInteger)-- Passage par copie car tient sur un registre mais A est constant dans le corpsproceduretest(A: inBigObject)-- Passage par référence car trop gros mais toujours constant dans le corpsproceduretest(A: outInteger)-- La valeur initiale n'a pas d'importance mais là, c'est forcément un référenceproceduretest(A: inoutInteger)-- Les deux cas précédentsproceduretest(A: inaccessBigObject)-- Là, on a clairement affaire à un pointeur qu'il faut déréférencerproceduretest(A: innotnullaccessBigObject)-- pareil mais on sait qu'il ne sera pas nulproceduretest(A: inaccessconstantBigObject)-- et celui-là, on ne peut pas modifier le pointé
Je n'ai pas mis d'exemple mais lorsque l'on passe un objet issu d'un type taggué (en gros, un objet qui autorise la POO), celui-ci est forcément passé par référence.
[^] # Re: Ca part d'une bonne intention
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Datafari 4.3, moteur de recherche open source pour entreprise. Évalué à 2.
Ici, dans le cas de Datafari, la packaging est fait via des projets Maven utilisant des tâches Ant !
C'est dommage de ne pas utiliser à la fois le plugin assembly et les overlays pour faire tout ça.
# Ca part d'une bonne intention
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Datafari 4.3, moteur de recherche open source pour entreprise. Évalué à 6. Dernière modification le 09 juillet 2019 à 19:13.
Perso, dans la boîte où je travaille, on a essayé d'intégrer DataFari par les sources et franchement, c'est pas évident.
Le but était d'intégrer nos propres composants OpenNLP dans le bousin. Le problème, c'est que malgré la présence de fichiers projet Maven, c'est plus du packaging que de la compilation.
Du coup, on est un peu déçu parce que hormis utiliser l'image Docker, c'est pas vraiment ça.
J'espère que cette version 4.3 permettra de construire à partir des sources et si c'est pas le cas, ça ressemblera plus à du Openwashing qu'autre chose.
J'avoue qu'en plus, ça
ça m'aide pas trop à être optimiste.
Comme on dit: "tu dis ça parce que t'es en colère" :D
# LIBRE
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Crypto-monnaies. Évalué à -3.
Tiens, je cherche encore le rapport avec le Libre, Linux, *BSD, la programmation…
En fait, je crois qu'il n'y en a pas mais c'était bien essayé
[^] # Re: Soit j'ai rien compris soit...
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Pijul, contrôle de version et théorie des patchs, version 0.12. Évalué à 5.
?? Les branches ne sont qu'un lien vers le point de départ dans la révision donnée mais clairement pas une copie complète.
C'est d'ailleurs pour ça que la création de branche sur SVN est quasi immédiate (cf. Cheap copies).
[^] # Re: Est-ce seulement possible?
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Pour la publication de la norme PDF 2.0 en CC BY-ND. Évalué à 3.
Un autre exemple qui n'est pas un draft mais bel et bien la version ISO, Ada 2012.
D'ailleurs, cela a été le cas pour toutes les versions de la norme.
Il me semble qu'il s'agit en fait d'une volonté du groupe de normalisation plus que de l'organisme ISO lui-même, ici c'est l'ARG (Ada Rapporteur Group codé ISO/IEC JTC 1/SC 22/WG 9) qui s'y colle.
[^] # Re: En finir avec les jeux natifs?
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Google Stadia : une chance pour le jeu sous Linux (desktop) ?. Évalué à 4.
Finalement, le Network Computer avait juste 20 ans d'avance :D
[^] # Re: Expressivité
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 2.
Super, merci ! Maintenant, j'ai compris.
J'avoue n'avoir pas eu à faire ce genre de manip dans mon code C++ qui, au final, était majoritairement plus du C with classes écrit from scratch qu'autre chose.
Et du coup, les seuls templates que j'ai fait, c'étaient des génériques Java (sans interface) ou Ada (avec interfaces compilables).
[^] # Re: Expressivité
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 3.
Là, je ne comprends pas (ceci dit, je n'ai plus fait de C++ depuis 15 ans alors c'est normal). Typiquement, la STL regorge de définitions de templates qu'on peut utiliser en les instanciant dans son propre code. Du coup, je veux bien un petit exemple :)
Et moi des packages et des package body en Ada
[^] # Re: Pareil !
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Make with Ada troisième édition. Évalué à 2.
Moi, je dois dire que c'est ce projet-là qui me plaisait bien.
Il s'agit d'une super centrale inertielle avec 13 accéléromètres, rien que ça.
Bon, pour protester contre les résultats du concours, l'auteure a viré la description mais elle a fourni le lien sur Hackaday en commentaire.
[^] # Re: Expressivité
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 2.
Oui, effectivement, j'en fais partie si tu parles du Java ou du Python :D
Mais ça ne veut pas dire que je trouve ça bien.
D'ailleurs, ça marche bien quand tu as accès aux sources dès que tu as du compilé sans les sources, c'est quand même mieux d'avoir des interfaces, non ? ;)
[^] # Re: Expressivité
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 3.
Alors autant je trouve que le système hérité du C de header via le macro-processeur est pourri (oui, oui, on peut importer un .cpp dans un .h), autant je trouve indispensable de séparer l'interface de l'implémentation.
Du coup, je veux bien que tu m'expliques en quoi cela apporte de la confusion.
[^] # Re: Performances
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Marre des boards ARM (ep 2) ?. Évalué à 3.
Certes mais tout dépend aussi de ce que l'on nomme IoT. Si c'est pour avoir une simple remontée d'un capteur de pression ou de température sur le réseau, ça me semble beaucoup. Alors oui, le nombre d'instructions par cycle va jouer mais je doute qu'on soit sur un processeur qui ait besoin de trois cycles pour faire une addition.
# Performances
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Marre des boards ARM (ep 2) ?. Évalué à 3. Dernière modification le 28 novembre 2018 à 14:34.
580Mhz pour de l'IoT ? On est quand même proche des configurations utilisées il y a 15 ans pour faire du commande-contrôle industriel.
Par contre, du coup, les 64/128Mo de RAM, ça fait un peu cheap par rapport aux bécanes de l'époque.
Au final, je ne sais pas si on peut dire que c'est pour de l'IoT. D'ailleurs, je n'ai pas dû bien chercher mais je n'ai pas trouvé les consommations électriques.
# Ada-France
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche 4ᵉ édition de Paris Open Source Summit les 5 & 6 décembre 2018 #OSSParis18. Évalué à 3.
Ada-France y sera avec normalement des goodies, des experts, des démos… Et surtout plein de trucs à raconter :)
Viendez donc au stand A21
[^] # Re: RISC OS libéré
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche RISC OS libéré. Évalué à 2. Dernière modification le 14 novembre 2018 à 11:43.
Pour être vraiment exact, il y avait bien des Goupils, le nanoréseau Thomson étant administré par une machine compatible IBM PC. Dans l'école où travaillait ma mère, il y avait bien un petit renard :)
[^] # Re: mouaih...
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Enfin un maire qui a la tête sur les épaules. Évalué à 10.
Je fais pareil mais je rajouterai aussi que je fais pareil au feu rouge avec les vélos qui sont assez nombreux à trouver que le rouge n'est que décoratif.
[^] # Re: Ça prendrait combien de temps à développer sans cette lourdeur ?
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Un développeur qui dénonce. Évalué à 8.
C'est pas ça le problème, le problème, c'est
On veut juste tout de suite un truc qui marchotte plutôt que d'avoir un truc un peu plus léché.
Le problème, c'est que c'est inhérent à l'époque et pas limité à l'informatique.
Alors ça, tu peux oublier. Il y a une quantité de softs où tu te demandes si la procédure d'installation a été testée, si la compilation par un tiers a été testée (le fameux "ça compile chez moi")…
Et heureusement qu'il y a des softs anciens qui ont été testés et qui étaient testables comme les métros, les avions et autres joyeusetés.
[^] # Re: Y en a qui aiment...
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Java 11 est dehors. Évalué à 3.
Au risque de me répéter, on attend que ça. Fais donc une dépêche !
D'une, le lien ne fonctionne pas, il faut se rabattre sur un bon vieux copier/coller.
De deux, la dépêche que tu pointes précise bien que ce sont les gens de ScyllaDb qui annoncent être 10 fois plus rapide. Si, sur le papier, je me dis pourquoi pas, ScyllaDb reste une boîte commercial alors je les vois mal dire que leur ré-implémentation est juste aussi rapide que du Java.
Alors oui, le Java, c'est plus lent (cf. Benchmark game) mais bon, c'est pas non plus x10 à tous les coups.
[^] # Re: Y en a qui aiment...
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Java 11 est dehors. Évalué à 5.
En voilà une bonne idée ! Au moins, ça lancera des débats :D
[^] # Re: Ou tout simplement
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Le broutage "sûr". Évalué à 5. Dernière modification le 16 septembre 2018 à 09:19.
Moi, je veux bien le faire mais qu'est-ce qui me dit qu'en moulant, on ne va pas me demander subrepticement mon numéro de carte bancaire ou essayer de me vendre je ne sais quel obscur jeu addictif ?
[^] # Re: pouvoir exhorbitant...
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Chaque été depuis 9 ans, Altran enclenche une procédure de licenciement contre un délégué syndical. Évalué à 9.
Ce qui bien sûr est très agréable pour le salarié niveau ambiance :D
[^] # Re: Godbolt
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Le quiz c++ de l'été. Évalué à 3.
Au final, c'est pareil en Ada et c'est ce qui est dit dans le wikibook
C'est au final au compilateur de choisir sauf si le développeur veut forcer une manière de passer les arguments et dans ce cas, on peut passer par des pointeurs.
D'ailleurs pour faciliter le masquage de la sémantique des pointeurs, Ada 2012 a introduit l'aspect Implicit_Dereference qui permet de ne pas avoir à utiliser un .all.
Ainsi, une variable de type Accessor construite sur un pointeur d'Element donne directement le membre Data du type en question.
[^] # Re: Godbolt
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Le quiz c++ de l'été. Évalué à 10.
Tu ne fais pas d'effort, il suffit de se documenter sur Ada :)
Je n'ai pas mis d'exemple mais lorsque l'on passe un objet issu d'un type taggué (en gros, un objet qui autorise la POO), celui-ci est forcément passé par référence.
Pour les quelques curieux, voici les deux pages intéressantes sur le Wikibook, celle sur les passage de paramètres et celle des pointeurs.
[^] # Re: Point de vue pragmatique mais
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 4. Dernière modification le 11 juillet 2018 à 10:03.
Petite précision, c'est sur le HiFive1 qui est plutôt un Arduino boosté pas sur le HiFive Unleashed qui est une toute autre bête :D
[^] # Re: Point de vue pragmatique mais
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 3.
On peut même faire de l'Ada sans OS ;)