Crunchez vos adresses URL
|
Rejoignez notre discord
|
Hébergez vos photos
Page 13 sur 182 PremièrePremière ... 3567891011121314151617181920212363113 ... DernièreDernière
Affichage des résultats 361 à 390 sur 5456
  1. #361
    Ça te bouffe toute ta mémoire, et ça commence à avoir des comportements non prévus.

  2. #362
    Citation Envoyé par Møgluglu Voir le message
    Oui, c'est justement ce qui me gène dans les design patterns. Ils donnent (ou sont utilisés comme) des recettes de cuisine, des solutions toutes faites, plutôt que des concepts qui permettent de raisonner à un niveau d'abstraction plus haut. Si c'est simplement un raisonnement "j'identifie un problème de type x -> j'applique le design pattern y", alors c'est fondamentalement automatisable. La valeur ajoutée des programmeurs humains, c'est d'inventer des solutions originales. Si c'est juste pour reconnaître des situations connues et y appliquer des solutions connues, autant les remplacer par des réseaux de neurones.
    Je comprends un peu mieux dit comme ça, ça se défend.

    J'ai toujours l'impression que dans les faits (très personellement), je m'en sers plus justement comme saut d'abstraction, généralement pour expliquer le fonctionnement d'un truc que j'ai fait a posteriori à quelqu'un d'autre, voire pour construire un vocabulaire commun qui n'a rien à voir avec des "observers" ou "factories", plus que "oh tiens j'ai le problème 89 je vais utiliser le design pattern 55" ou comme une question de discipline. Donc j'aurais difficilement cet avis. Mais ceux qui parlent le plus de design pattern en développement doivent pas avoir le même point de vue que moi là-dessus.

    Sur ton fondamentalement automatisable, j'étais plus d'accord quand tu disais que leur existence dénotait des faiblesses du(es) langages.
    Imaginons qu'un jour on ait un langage qui soit que des briques de design patterns abstraits que tu connectes entre elles (genre la programmation graphique, lul) le boulot du dev ça sera toujours de bosser au niveau d'abstraction N+1 alors que le langage est au niveau N non? Voire N-5. Ou dit autrement, de casser des problèmes complexes à N+1 (comment gérer ces 73 use cases?) en sous-sous-sous-problèmes connus qu'il a reconnu pour y appliquer des solutions connues, genre des appels à des librairies y compris standard et des opérations mathématiques pour l'instant, des design patterns si tu veux demain. Et au final, cette "meta-solution" est comme tu le dis originale, et la valeur ajoutée de l'humain ne change pas beaucoup peu importe la valeur de N.
    Le N+1 c'est aussi ton papier quadrillé pour dépasser ce dont est capable le langage (pour l'instant).

    C'est aussi compatible avec les réseaux de neurones qui un jour écriront leur code pendant que des gens s'embêteront à choisir les meilleurs, les orchestrer entre eux, leur donner je sais pas quelles instructions qui seront à N+12.
    Pendant ce temps-là ce topic parlera d'assembleur.

  3. #363
    Citation Envoyé par deathdigger Voir le message
    Ça te bouffe toute ta mémoire, et ça commence à avoir des comportements non prévus.
    Je voulais plutôt savoir à quoi ressemble le code qui génère de tels problèmes. Un exemple minimal d'un truc à ne pas faire.

  4. #364
    Pour me répondre à moi-même et vérifier si j'ai bien compris. Ce qu'on appelle "fuite de mémoire" en Java, ce n'est pas avoir de la mémoire allouée à laquelle on n'a plus accès, mais avoir un programme idiot qui garde des références vers des tonnes d'objets inutiles. J'ai vu aussi des cas de fuites de connexions/fichiers ouverts si on compte sur le ramasse-miette pour les fermer, alors que celui-ci peut s'exécuter très tardivement (voire jamais). C'est ça ?

  5. #365
    « And now for something completely different », parlons un peu de python. J'ai entamé un projet un peu conséquent en Python/Qt (il faut bien gagner sa croûte, pas de jugement de valeur, merci) et je dois dire que je suis assez circonspect. Passons sur le modèle objet du langage un brin foutraque - et qui exige beaucoup de self-control de la part du développeur -, je viens de tomber récemment sur une autre excentricité. Ingénument, j'ai écrit un truc de ce genre :
    Code:
    if (a = my_function()) == "truc":
        # Fait quelque chose avec a
    ...et le compilateur s'est alors mis à insulter ma mère. J'ai cherché des explications, et l'horrible vérité s'est révélée : Python n'autorise pas les assignations dans les expressions. La justification en est donnée par Guido Van Rossum lui-même qui dit, en substance : « nan mais c'est parce que des fois les développeurs y oublient un égal et alors ça marche plus et c'est super grave ». Guido, si tu nous lis : Merde. J'ai 48 balais et presque 25 ans de métier, je n'ai pas besoin des petites roues à l'arrière pour développer. Si j'ai envie d'avoir des effets de bord dans mes conditions, je suis assez grand - et les IDE assez malins pour m'avertir du danger - pour en décider moi-même.

    'Tain, si les bindings Qt pour Ruby supportaient Qt5, comment qu'il aurait déjà dégagé le reptile !

  6. #366
    Wiki : Fuite de mémoire [...] est l'absence de désallocation (de libération) de l'espace utilisé lorsque ces objets ne sont plus référencés.

    Je fais plus de java mais en python, c'est super simple a faire : A référence B et B référence A, tu déréférences les deux = fuite mémoire. Tu peux le faire super facilement.

  7. #367
    Les dépendances cycliques sont censées être détectée par le GC. En python, je crois que c'est optionnel et on peut se contenter du comptage de référence (qui ne voit pas les cycles). Mais en Java, il est toujours là.

  8. #368
    Citation Envoyé par GrandFather Voir le message
    Code:
    if (a = my_function()) == "truc":
        # Fait quelque chose avec a
    ...et le compilateur s'est alors mis à insulter ma mère. J'ai cherché des explications, et l'horrible vérité s'est révélée : Python n'autorise pas les assignations dans les expressions. La justification en est donnée par Guido Van Rossum lui-même qui dit, en substance : « nan mais c'est parce que des fois les développeurs y oublient un égal et alors ça marche plus et c'est super grave ». Guido, si tu nous lis : Merde. J'ai 48 balais et presque 25 ans de métier, je n'ai pas besoin des petites roues à l'arrière pour développer. Si j'ai envie d'avoir des effets de bord dans mes conditions, je suis assez grand - et les IDE assez malins pour m'avertir du danger - pour en décider moi-même.
    Je ne vois pas où est le problème, ça ne m’a jamais gêné.
    Utilise plutôt un try/except.
    Code:
    try:
      a==my_function()
    except "truc":
      pass
    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

  9. #369
    Citation Envoyé par deathdigger Voir le message
    @Vaurien, tu veux qu'on parle des fuites mémoires de java qui font que lorsqu'on développe un service avec, il faut penser à le redémarrer régulièrement ?
    Si tu veux troller Java, tu pourrais plutôt sortir des trucs de ce genre:


  10. #370

  11. #371
    Citation Envoyé par deathdigger Voir le message
    Ça te bouffe toute ta mémoire, et ça commence à avoir des comportements non prévus.
    Le comportement est toujours le même (excepté bug dans le code de la JVM): ralentissement, puis OutOfMemoryError quand tu as atteint la limite fixée au lancement de la JVM

    Citation Envoyé par Cwningen Voir le message
    Pour me répondre à moi-même et vérifier si j'ai bien compris. Ce qu'on appelle "fuite de mémoire" en Java, ce n'est pas avoir de la mémoire allouée à laquelle on n'a plus accès, mais avoir un programme idiot qui garde des références vers des tonnes d'objets inutiles. J'ai vu aussi des cas de fuites de connexions/fichiers ouverts si on compte sur le ramasse-miette pour les fermer, alors que celui-ci peut s'exécuter très tardivement (voire jamais). C'est ça ?
    Exactement. Un exemple (qui date de mes vertes années) : j'avais créé un programme qui executer des operations (la nature même de ces operations n'est pas importantes) et je stockais pour affichage le log de ces operations dans un StringBuffer. Ca marchait bien quand tu lançais une 10aine d'operations avant de fermer le programme. Mais les utilisateurs ont commencé à lancer 60,90,240 operations d'affilée. Et je me retrouvais donc avec un objet (le StringBuffer) gros de plusieurs 100aine de Mo... Poum, OutOfMemoryError
    Citation Envoyé par Cwningen Voir le message
    Les dépendances cycliques sont censées être détectée par le GC. En python, je crois que c'est optionnel et on peut se contenter du comptage de référence (qui ne voit pas les cycles). Mais en Java, il est toujours là.
    Par contre, je crois qu'il y'a une limite, non ? genre A <-> B pas de soucis, mais A -> B -> .... -> Z -> A ça commence à poser problèmes ?
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  12. #372
    Citation Envoyé par Charmide Voir le message
    C'est aussi compatible avec les réseaux de neurones qui un jour écriront leur code pendant que des gens s'embêteront à choisir les meilleurs, les orchestrer entre eux, leur donner je sais pas quelles instructions qui seront à N+12.
    Pendant ce temps-là ce topic parlera d'assembleur.
    Exactement. En informatique, on monte continuellement en abstraction, ce qui permet de gagner en productivité et de résoudre des problèmes de plus en plus difficiles. Par exemple, on n'aurait jamais pu marcher sur la Lune si… euh non rien.

    Par contre, je crois qu'il y'a une limite, non ? genre A <-> B pas de soucis, mais A -> B -> .... -> Z -> A ça commence à poser problèmes ?
    Non, si tu n'as de référence en vie sur aucun de ces objets, le GC ne va même pas regarder les relations qu'ils ont entre eux.

    Les cas de fuites mémoire en pratique sont à l'interface entre la JVM et le reste du monde : avec les objets système comme les fichiers et processus, avec les wrappers sur des bibliothèques écrites dans d'autres langages, etc. En particulier, il peut y avoir des contraintes sur l'ordre dans lequel ces trucs doivent être désalloués, et ça le GC n'en a rien à battre, et fait de la merde (mais seulement en prod et jamais en debug, because Murphy).
    À l'époque de .Net, Microsoft expliquait que le comportement non-déterministe du GC de Java allait provoquer incessamment l'apocalypse sur terre. Contrairement aux finaliseurs de .Net qui eux allaient amener la paix dans le monde.

    Mais ça c'était il y a 15 ans et je suppose que c'est de l'histoire ancienne aujourd'hui. Si de telles failles dans les langages n'étaient pas corrigées rapidement, ça se saurait.

  13. #373
    Je dois écrire un peu de code Java après avoir batifolé avec Kotlin.

    Et pourtant j'aimais bien Java avant et c'est du Java8...

    Toute cette belle fluidité de Kotlin qui était rentrée naturellement dans le bout de mes doigts en quelques heures

    Et ces saloperie de NullPointerException qui disparaissent élègament avec Kotlin... re
    Dernière modification par William Vaurien ; 03/10/2017 à 18h11.

  14. #374
    Citation Envoyé par Charmide Voir le message
    Pendant ce temps-là ce topic parlera d'assembleur.
    Les gens d'Intel en parlent continuellement. Pour promouvoir leurs procs et solutions de développement sans doute, mais peut-être pas que. Et c'est pas forcément les pires programmeurs sur le marché.
    Tout le monde ne peut pas se permettre de considérer les parties basses comme des abstractions ou des choses vaguement casse-pied, et ces gens n'ont aucune idée de ce qu'ils ratent de toute manière.

    En tous cas, quand j'ai commencé à m'intéresser aux intrinsics assembleur, j'en ai retrouvé littéralement partout, et notamment dans des programmes et applis que vous utilisez tous les jours

  15. #375
    En parlant d'Intel tiens.... Leur compilateur fortran n'est pas foutu de générer des instructions AVX 512 pour le Skylake, aors qu'il y arrive sans problème pour le KNL.
    Citation Envoyé par Sidus Preclarum Voir le message
    Ben du caramel pas sucré alors...
    "Avant, j'étais dyslexique, masi aujorudh'ui je vasi meiux."

  16. #376
    Citation Envoyé par William Vaurien Voir le message
    Je dois écrire un peu de code Java après avoir batifolé avec Kotlin.

    Et pourtant j'aimais bien Java avant et c'est du Java8...

    Toute cette belle fluidité de Kotlin qui était rentrée naturellement dans le bout de mes doigts en quelques heures

    Et ces saloperie de NullPointerException qui disparaissent élègament avec Kotlin... re
    ça valler, là , là

  17. #377
    Citation Envoyé par William Vaurien Voir le message
    Je dois écrire un peu de code Java après avoir batifolé avec Kotlin.

    Et pourtant j'aimais bien Java avant et c'est du Java8...

    Toute cette belle fluidité de Kotlin qui était rentrée naturellement dans le bout de mes doigts en quelques heures

    Et ces saloperie de NullPointerException qui disparaissent élègament avec Kotlin... re
    Un convaincu de plus. J'ai présenté Kotlin à un collègue aujourd'hui. Il a perdu son après-midi a faire les Koans et il est tombé amoureux

    Ils embauchent des evangelistes Kotlin chez Jetbrains ? :D
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  18. #378
    Citation Envoyé par Lazyjoe Voir le message
    En parlant d'Intel tiens.... Leur compilateur fortran n'est pas foutu de générer des instructions AVX 512 pour le Skylake, aors qu'il y arrive sans problème pour le KNL.
    Même en ciblant Skylake-X-avec-2-FMA explicitement ?

    Peut-être qu'il choisit de rester en AVX2 exprès parce qu'il sait déjà que le code AVX-512 irait moins vite.

    Oui, parce quand tu vois la claque que prennent les fréquences à la première instruction AVX-512 utilisée, tu comprends vite que comme toutes les bonnes choses, il faut pas trop en abuser.


    C'était quand la dernière fois qu'on avait vu un CPU à 8700$ qui tourne à 1,3 GHz déjà ?

  19. #379
    Citation Envoyé par Rao Voir le message
    ça valler, là , là
    non.

    En plus je dois intégrer du XML avec un schéma de merde plein de namespace pourrie... Et je pleure pour mettre le binding en place.

  20. #380
    Putain, combo de merde. Bon courage.
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  21. #381
    Citation Envoyé par vectra Voir le message
    Les gens d'Intel en parlent continuellement. Pour promouvoir leurs procs et solutions de développement sans doute, mais peut-être pas que. Et c'est pas forcément les pires programmeurs sur le marché.
    Tout le monde ne peut pas se permettre de considérer les parties basses comme des abstractions ou des choses vaguement casse-pied, et ces gens n'ont aucune idée de ce qu'ils ratent de toute manière.

    En tous cas, quand j'ai commencé à m'intéresser aux intrinsics assembleur, j'en ai retrouvé littéralement partout, et notamment dans des programmes et applis que vous utilisez tous les jours
    J'ai jamais contesté l'utilité de la chose.

  22. #382
    Hého ça va, c'est moi l'OP, je trolle qui je veux

  23. #383

  24. #384
    Citation Envoyé par William Vaurien Voir le message
    non.

    En plus je dois intégrer du XML avec un schéma de merde plein de namespace pourrie... Et je pleure pour mettre le binding en place.
    En .Net y'a un outil qui te permet de générer une classe serialisable à partir d'un XSD, il doit exister la même chose en Java, j'imagine

  25. #385
    Yep, depuis des années. Juste que la classe générées est généralement bien merdique... Et quand as des namespaces pourris à foisons, ça arrange pas les choses...
    Ce qu'il faut savoir, c'est qu'on ment beaucoup aux minmatars, surtout lorsqu'ils posent des questions du style: "t'es sûr que ça vole, ce truc ?" Cooking Momo, le 30/08/09

  26. #386
    Voilà, en gros il y a plusieurs XSD qui sont entremêlés avec des namespaces pour chacun. En plus le xml cible redéfini les namespaces au milieu du document...
    Code PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <MaBalise xmlns:xy="http://blabla" xmlns="http://toto">
      <xy:UneAutre />

      <xy:PourLeFun  xmlns="http://blabla">
        <TaVuPlusDeNameSpace />
        <UneAutre />
      <xy:PourLeFun>

    </MaBalise>
    Et du coup il faut configurer JAXB (le truc qui bind XML et le objets), parce que naturellement il ne sait pas gérer les namespaces (enfin si il les gère, mais pas les alias)
    ni d'autres subtilités.

    Et là c'est le drame, la doc est quasi inexistante, il faut utiliser des extensions mal documentées et maintenu par un gars sur github, éplucher des douzaines de blogs, de questions StackOverflow, de forum pour trouver des réponses.
    En plus les configurations changent suivant la version du bordel et du coup pas mal de réponse ne sont plus valides : tiens ce blog propose un solution facile à mettre en oeuvre, zut il date de 2011, c'est plus valide pour la version 2

    Par exemple j'ai trouvé une réponse qui me donnaient pas mal de clefs de compréhension dans un vieux forum Google code qui hébergeait un des plugins nécessaires avant sa migration github...

    Bref on franchi les portes de l'enfer à ce moment là...

    Et le XML va et vient vers un service externe, donc je DOIS lire et écrire du XML comme convenu, pas arrangé à ma sauce...

    (je suis coincé avec JAXB pour le moment car c'est le standard et c'est ce qu'utilise mes collègues, qui eux ont la chance d'avoir des XSD sans namespace Je verrais bien si je bloque pour passer sur un autre framework !)

  27. #387

  28. #388
    Salut les canards,
    Je voudrais me lancer dans un "side project" side project pour faire une site web qui stream une video et qui mine de la crypto-monnaie( coinhive).
    Le but c'est d'avoir un site entre potes et essayer de financer le serveur avec la crypto-monnaie, je suis pas sur du tout que c'est viable vu qu'il y aura très peu d'utilisateurs mais bon c'est aussi pour le fun.

    Je viens vers vous car je suis dev C/C# mais j'y connais pas grand chose sur le dev Web et comme tout est constante évolution je ne sais pas vers quelle techno me tourner.
    Le but de l'itération 1 : une page web blanche avec une video streamée et la crypto en minée.

    Tout les conseils sont la bienvenue

  29. #389
    Utiliser coinhive c'est une bête balise html à intégrer à ton site (t'apprendra rien en fait).
    Si t'est dev C#, je te conseille de regarder du coté de ASP.NET MVC ou ASP.NET Core (mieux ce dernier : c'est nouveau et ça tourne autant sur linux que windows) vu que le backend sera en C# .NET.
    Pour le streaming, ça dépend ce que tu veux faire.

  30. #390
    ASP.NET je connais un peu car je bosse dans une boite qui fait un logiciel de gestion qui est un site web mais je ne travail pas de se coté je m’occupe plutôt de la gestion des périphériques lecteurs etc... et des machins embarqués.
    Pour le streaming je sais pas du tout quoi utiliser pour l'instant comme technos/framework etc... le but c'est de faire un truc un peu comme youtube pour la lecture de video.

    Edit: Je préfère prendre les meilleures technos pour le projet même si je ne les connais pas et les apprendre.
    Dernière modification par Ifit ; 05/10/2017 à 18h35.

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •