Chercheurs, oui. Mais on se comprend pas: Atlassian RAME, Java magic.
Mettre Atlassian sur un serveur séparé oui, mais pas au prix des performances. Car on n'a que des vieilles merdes à lui offrir << i5 2500k pour le moment.
Je suis en train de voir à son installation dans une VM de gros serveur par la DSI, mais rien ne sera possible avant l'an prochain: honnêtement, j'espère toucher le 'K' avant...
Comme dit, Atlassian tout seul sur mon PC du boulot avec juste chrome d'ouvert, c'est déjà pas rapide.
Mouais, j'ai une install confluence en local sur mon PC à la maison. Je ne m'en sert pas beaucoup, c'était pour bricoler à un moment.
Je n'ai même pas fait l'effort de le désinstaller car je ne me rends pas compte qu'il tourne.
Pourtant ma machine n'est pas un foudre de guerre: c'est un 'simple' i5 4590 avec 8GB de ram.
Donc c'est peut être ta machine qui a un problème, plutôt que java ? Tu as un DD mécanique dessus ?
<<2500k comme j'ai dit. Ca fait un peu la différence.
Mais en idle, c'est jamais un problème. C'est plutôt quand tu le sollicites que tu as une latence n'imp'.
Bien sûr qu'il y a des compromis, mais les critères qui entrent en jeu n'ont rien à voir. Le software engineering est un monde à part, avec des objectifs fondamentalement différent de l'ingénierie qui produit des objets physiques.
Quand le génie logiciel parle de "qualité de code", il parle du point de vue du programmeur et de l'architecte, pas de l'utilisateur. On parle productivité, maintenabilité, documentation du code source, pas performance ou efficacité du code généré.
L'ingénieur logiciel est plus proche du mathématicien que de l'ingénieur. Leur but est d'écrire un programme ou une démonstration qui soit "belle", du point de vue des autres programmeurs ou mathématiciens. Le matheux s'en fout du temps que mettra Coq à vérifier sa démonstration, l'ingé logiciel c'est pareil. Et l'architecte logiciel est plus du manager que de l'architecte, son but est que les programmeurs bossent bien ensemble et tiennent les délais, pas d'avoir une vision artistique du logiciel produit.
Ce n'est pas un jugement de valeur, la qualité du code est très importante pour des projets en équipe qui évoluent dans le temps. Mais la comparaison avec l'ingénierie n'a pas de sens.
tl;dr: À l'époque victorienne, Charles Babbage était philosophe et Ada Lovelace mathématicienne. Kingdom Isengard Brunel, l'ingénieur, il n'écrivait pas de code, il construisait des trucs.
Même avec un CPU de dernière génération, si tu as un disque dur mécanique tu le sentiras passer...
En tout cas sur une installation d'entreprise classique (machine virtualisée sur du matos 'moyenne gamme' pro) Bitbucket, Jira et Confluence tiennent bien la charge avec 150 users dessus.
Il n'y a pas de latence 'Java ça rame sa mère' dessus...
Et pareil pour mes IDE: il y a sûrement des améliorations à apporter, mais à part pour quelques cas extrêmes, je ne vois pas ce qui pourrait le différencier d'un outil similaire compilé nativement. Donc pas en comparaison d'emac ou vi..
La seule emprunte javaesque dessus c'est la consommation de RAM... avec un peu de réserve et un SSD cette signature est devenue quasi insignifiante. Ce qui n'était pas le cas avec des machines sous dimensionnée en RAM et avec des disques mécaniques. Comme les PC d'entreprise de mes débuts vers 2004 avec 2Gb (voir 1Gb pour les consultants malchanceux). Là c'était l'OS qui ramait de base, et effectivement toute appli Java demandant plus de 32Mb de RAM souffrait.
J'ai évidemment installé un de mes SSD Crucial sur la machine en question, dotée de 12Go de ram. Et ça ne suffit pas à limiter la casse.
Et si je suis mal placé pour décider que 'Java rame sa mère', mais ça fait quand-même deux applis Java qui rament *énormément* sur une machine pourtant pas manchotte (ça vaut largement du Core i3 de chez Cogip). Si ce n'est pas la VM qui limite, ça doit être quelque chose.
Mais en général, il faut croire que la VM et l'écosystème limitent un peu les perfs quelque part, sinon on aurait des applis java un peu rapides parmi celles qui ne sont pas basées à 90% sur du code C++.
C'est les programmeurs Java qui rament leur mère, surtout, je pense, dans le cadre de ce genre de produit.
Je pense que c'est bien la foire à l'iop, comme dans de plus en plus de jeux, depuis que les devs ont des SSD et 12000GB de RAM et s'en cognent des HDD.
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
C'est sûr, le soft des années 80/90 étaient réputés pour leur grande stabilité et leurs performances sans égales.
Avec des IHM ergonomiques, du bon assembleur et du C sans erreur, sans retour sur le bureau, sans fuite mémoire.
Bref aujourd'hui c'est l'enfer: des fois mon téléphone m'énerve car il ne veut pas se connecter à ma voiture pour que je puisse écouter des video youtubes en conduisant.
T'as l'impression que t'en fais 10x plus avec Excel qu'il y a dix ans ?
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
J'utilisais très peu excel y a dix ans, je l'utilise pas + aujourd'hui.
Je parle plutôt des WebAPIs, des services disponibles, de l'IoT, de l'aisance avec laquelle on peut monter une instance AWS/Azure/OpenShift qui héberge l'OS de ton choix et/ou les services que tu désire : DB, queuing, smtp, ftp et j'en passe.
Non, mais j'ai l'impression qu'il plante 10x moins...
Et aujourd'hui je peux modifier la même feuille en ligne via l'appli web office, en ligne via le client natif avec le doc sur "le cloud", sur mon téléphone, ma tablette, la partager facilement avec des gens plus compétents que moi...
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
Ha si, l’IoT va donner à bouffer à plein d’experts en sécurité, ça sera un grand progrès pour eux.
une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
Canard lecture
Vivement la fin des dates UNIX.
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
Merde, grillé, vite fuyons !
int fd;
fd = open("/dev/time_machine", O_RDWR);
ioctl(fd, TELEPORT, 2036);
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
J'ai déjà eu nombre de débats au taf avec cette vision de la "qualité du code" qui serai limité au bon plaisir de l'équipe de dev, alors que pour moi, il a un impact direct sur l'utilisateur : car un code base plus prévisible et moins à même de générer des bugs ça impacte directement l'utilisateur (c'est lui qui subis les bugs au final, pas moi).
Pour certains, oui, complètement, mais pas tous, et c'est justement mon point.
Pour avoir les deux casquettes (comme je l'ai dit, je suis détenteur d'un diplôme d'ingénieur en conception mécanique (d'une école du top 10), c'est pas comme si j'y connaissais rien), je trouve au contraire énormément de parallèles entre les deux mondes, notamment la vision systémique, d'ailleurs, je pense que mon intérêt pour l'archi et les designs patterns viens entre autres de ma formation de mécanicien, car c'est exactement comme ça qu'on conçoit en mécanique, on ne réinvente pas la roue, on réutilise des composants déjà créé par d'autres, et on isole les différents éléments pour des raisons de sécurité, robustesse, maintenance, etc.
Vous seriez surpris de la quantité de parallèles et similarités entre les deux mondes, on n'est plus dans l'informatique théorique matheuse des années 70 (sauf pour les quelques qui sont sur ce domaine très particulier), et l'informatique est allée directement se sourcer dans le domaine de la conception mécanique et de l'architecture (d'où les termes empruntés d'ailleurs) pour structurer le travail de ce nouveau champ d'expertise.
C'est juste le résultat final qui change au final (virtuel vs réel) car sinon au niveau de la démarche, c'est vraiment pas si éloigné. Tellement peu éloigné d'ailleurs que dans notre start-up, notre équipe de dev est entièrement issue du monde de la mécanique et y'a que moi qui ai un diplôme en informatique au final (je suis double-diplômé). Et nos softs sont plutôt appréciés.
Dernière modification par Dross ; 03/10/2018 à 17h48.
Y a du vrai dans ce que tu dis Dross, mais par contre la sécurité est une propriété d'un système informatique qui ne se résoud pas en prenant des marges, c'est tout autre chose.
(moi aussi j'ai fait une école essentiellement méca à la base, mais j'ai vite lâché le dimensionnent de roulements SKF).
Sleeping all day, sitting up all night
Poncing fags that's all right
We're on the dole and we're proud of it
We're ready for 5 More Years
Tout à fait, le matériau lui même reste (très) différent avec ses contraintes propres.
une balle, un imp (Newstuff #491, Edge, Duke it out in Doom, John Romero, DoomeD again)
Canard zizique : q 4, c, d, c, g, n , t-s, l, d, s, r, t, d, s, c, jv, c, g, b, p, b, m, c, 8 b, a, a-g, b, BOF, BOJV, c, c, c, c, e, e 80, e b, é, e, f, f, f, h r, i, J, j, m-u, m, m s, n, o, p, p-r, p, r, r r, r, r p, s, s d, t, t
Canard lecture
Je m'arrache un peu les cheveux sur un problème de templated class prenant une templated class comme argument. Cette fameuse class se nomme KDTree, et devrait pouvoir instanciée dans le style
ContainerType est une templated class, pouvant être soit ShapeModel<PointType> ou bien PointCloud<PointType>Code:KDTree < ContainerType< PointType > >
Les choses commencent à mal tourner quand je veux munir PointCloud de son KDTree
La déclaration de KDTree.hpp est ci-dessousCode:PointCloud.hpp template <template<class> class ContainerType, class PointType> class KDTree; template <class PointType> class PointCloud { ... std::shared_ptr< KDTree<PointCloud< PointType> > > kdt; ... };
Mon compilateur me renvoie balader:Code:KDTree.hpp template <class PointType> class PointCloud; template <template<class> class ContainerType, class PointType> class KDTree { ... };
Je suis un peu désemparé, j'ai pourtant l'impression que ma déclaration du double template dans KDTree.hpp est correcte ... une idée?Code:PointCloud.hpp:125:26: error: template argument for template template parameter must be a class template or type alias template std::shared_ptr< KDTree<PointCloud< T> > > kdt;
J'ai eu ce problème dans mon ancien boulot, je ne me souviens plus comment je m'en étais sorti
C'est quoi comme lib de KDTree, déjà?
J'ai pas dit que l'IoT était un progrès, simplement que c'est l'un des nouveaux champs d'application de l'IT, je l'ai cité parce que c'est un sujet en vogue... en vrai ça me fait flipper et ça m'intéresse pas spécialement (j'ai même pas de smartphone), par contre le sysadmin et le dev ça m'intéresse beaucoup
Dernière modification par Nattefrost ; 03/10/2018 à 20h04.
J'ai jamais vu cette syntaxe, ça existe ? (Edit: apparemment, oui, j'en apprends tous les jours)
Une instance de template, c'est un type comme un autre, donc on utilise la syntaxe habituelle. Tu peux utiliser une valeur par défaut et un type imbriqué si tu ne veux pas avoir à spécifier le type de point:
Code:template <class ContainerType, class PointType = typename ContainerType::value_type> class KDTree; template <class PointType> class PointCloud { public: using value_type = PointType; ... std::shared_ptr< KDTree<PointCloud< PointType> > > kdt; ... };
Edit: après recherche l'autre possibilité c'est
Si ton paramètre est un template, il faut passer un template et non une instance de celui-ci.Code:template <template<class> class ContainerType, class PointType> class KDTree; template <class PointType> class PointCloud { ... std::shared_ptr< KDTree<PointCloud, PointType> > kdt; ... };
Dernière modification par Cwningen ; 03/10/2018 à 20h38.