[Index Software] Coin des développeurs :]

Pour les gens qui ont simplement envie de discuter sans souhaiter faire passer d'information particulière.
lucius
Prolifique
Messages : 2859
Enregistré le : lundi 27 mars 2017 à 17:14

Re: [Index Software] Coin des développeurs :]

Message par lucius »

Tugdual a écrit : vendredi 23 décembre 2022 à 10:24 Du coup, un petit sondage dédié aux développeurs.

Quel a été votre pire bug ?
J'hésite avec Git (usine à gaz qui nécessite 36 000 manips à cause de mauvais devops), Clearcase configuré pour ne "pusher" que le matin ou qui refuse de pusher/enregistrer les modifications (à cause d'un système de protection défectueux nécessitant souvent de renommer chaque fichier à la fois envoyer), du C++/CLI (très contaminant et dépassé), des outils VHDL...

Des sous-projets incapables de compiler car il faut en compiler d'autres hors-scope avant sans avoir eu l'info avant.

Mais cela reste des bugs de prise en main/utilisation et non réellement de codage.

En bug, j'hésite entre les problèmes d'allocation de mémoire, de référencement, de pointeurs ou de compatibilité entre framework et libs...
Mais le pire, c'est Eclipse que je trouve inutilisable. Toujours un bug même pour un simple hello World.
Ayant une maladie et des soucis en plus, on m'a pré-diagnostiqué Asperger et j'ai eu une confirmation assez incertaine depuis. Résultat, je continue de douter.
Avatar du membre
Tugdual
Modérateur
Messages : 41265
Enregistré le : jeudi 15 novembre 2012 à 0:13
Localisation : Nord-44

Re: [Index Software] Coin des développeurs :]

Message par Tugdual »

En ce qui me concerne, cela date de très longtemps (avant que je n'utilise un gestionnaire de version), sur un projet C++ constitué de nombreux modules.

Je me suis retrouvé soudainement avec une erreur de compilation incompréhensible, le message d'erreur comme la source indiquée n'ayant aucun sens.

Après m'être bien arraché les cheveux, j'ai fini par découvrir qu'un caractère « point-virgule » parasite s'était inséré au milieu d'un fichier d'en-tête. Il ne provoquait pas d'erreur en lui-même, mais induisait le compilateur (à moins que ce ne soit le pré-processeur, j'ai un doute après si longtemps) en erreur, lequel partait dans une analyse de code complètement décalée, et générait une erreur bien plus loin dans son analyse.
TCS = trouble de la communication sociale (24/09/2014).
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Pour les prgrammes en C++ ,j'utilise de nombreux modules (librairies) comme PhysX, zlib, assimp, et je n'ai pas trop de problèmes.
Le seul avantage de VisualStudio, c'est qu'en déboguage il signale les memory leaks. Avec quelques options, il signale d'où elles proviennent. Et dans mon plus gros projet (Jeu de course), j'avais une memory leak persistante de quelques octets, et je n'ai jamais su d'où elle provenait. :innocent: Donc j'ai laissé tomber de chercher à la résoudre.

Pour ma part, les bugs qui m'énervent sont dû aux étourderies. Je me dis "Mais quel con ! :?
Sinon, les autres bugs proviennent d'une mauvaise conception de l'algorithme. C'est plus grave car il faut tout repenser et donc tout refaire cet algorithme...
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

J'ai un gros doute que je ne pas résoudre:

Code : Tout sélectionner

package com.niviz.API.UI;

import com.niviz.API.engine.Point2D;

public class CircularClickableArea extends Element{

    private final float radius;
    private final Point2D position;
    private boolean isPressed;

    public CircularClickableArea(Point2D position, float radius) {
        this.radius = radius;
        this.position = position;
        isPressed = false;
    }

    private boolean isInArea() {
        return (radius - position.getX()) * (radius - position.getY()) <= radius * radius;
    }

    public boolean onTouchEvent () {
        if (!isPressed && isInArea()) {
            isPressed = true;
            return false;
        }

        if (isPressed && isInArea()) {
            isPressed = false;
            return true;
        }
        return false;
    }
}
Désolé du pavé, mais je ne suis pas sûr de la méthode isInArea(), vu que je n'ai plus de mobile pour tester.
Le but est de vérifier que l'on appuie sur une zone en forme de cercle.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Lilas
Modératrice
Messages : 7961
Enregistré le : dimanche 14 juillet 2013 à 12:17

Re: [Index Software] Coin des développeurs :]

Message par Lilas »

Je ne suis pas sûre de bien comprendre ce que tu veux faire mais si l'idée est de savoir si un point donné est dans le cercle, je calculerais la distance entre ce point et le centre du cercle, distance que je comparerais au rayon :
(Point.getx ()-Position.getx ())^2 + (Point.gety ()-Position.gety ())^2 <= radius^2
Lilas - TSA (AHN - Centre Expert - 2015)

Mes romans :
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Merci pour tes explications.

Mon problème, niveau collège, c'est que je ne sais plus calculer la distance entre 2 points. :cry: :cry:
Mon idée est de calculer le carré de la norme du vecteur qui sépare les 2 points.
Et de comparer cette norme au carré avec celle du rayon voulu au carré également.

C'est ce que tu décris.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
freeshost
Intarissable
Messages : 37322
Enregistré le : lundi 15 juillet 2013 à 15:09
Localisation : CH

Re: [Index Software] Coin des développeurs :]

Message par freeshost »

Soient X(x1;x2) et Y(y1;y2) deux points dans le plan.

Le carré de la distance entre les deux points égale : (y1 - x1)² + (y2 - x2)²

Voir le théorème de Pythagore. :mrgreen:
Pardon, humilité, humour, hasard, confiance, humanisme, partage, curiosité et diversité sont des gros piliers de la liberté et de la sérénité.

Diagnostiqué autiste en l'été 2014 :)
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Problème ridicule, mais finalement résolu .(Enfin j'attends mon prochain mobile pour être vraiment sur pour les tests.)
Je calcule le vecteur qui lie le centre du cercle à la valeur arbitraire. Et je calcule sa norme au carré.
En informatique, on n'aime pas trop les racines carrées. :mrgreen:
Et je compare le carré de la norme avec celui du rayon.

J'ai besoin de ça pour faire des boutons ronds dans mon interface utilisateur .Pour jeux Android.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
freeshost
Intarissable
Messages : 37322
Enregistré le : lundi 15 juillet 2013 à 15:09
Localisation : CH

Re: [Index Software] Coin des développeurs :]

Message par freeshost »

Oui, tu te rappelles la géométrie vectorielle. :)
Pardon, humilité, humour, hasard, confiance, humanisme, partage, curiosité et diversité sont des gros piliers de la liberté et de la sérénité.

Diagnostiqué autiste en l'été 2014 :)
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Pour finir, voici le code final :
Spoiler : 

Code : Tout sélectionner

package com.niviz.API.UI;

import android.view.MotionEvent;

import com.niviz.API.engine.Point2D;

public class ClickableArea extends Element {
    private final float radius;
    private final float width;
    private final float height;
    private final float xPosition;
    private final float yPosition;
    private boolean isPressed;

    public ClickableArea(float xPosition, float yPosition, float radius) {
        this.xPosition = xPosition;
        this.yPosition = yPosition;
        this.radius = radius;
        width = -1.0f;
        height = -1.0f;
    }

    public ClickableArea(float xPosition, float yPosition, float width, float height) {
        this.xPosition = xPosition;
        this.yPosition = yPosition;
        this.width = width;
        this.height = height;
        radius = -1.0f;
    }

    private boolean isInArea(MotionEvent motionEvent) {
        if (width == -1.0f) {
            Point2D ray = new Point2D(motionEvent.getX() - xPosition, motionEvent.getY() - yPosition);

            return ray.normeSqared() <= radius * radius;
        }
        else
            return motionEvent.getX() >= xPosition - width / 2.0f && motionEvent.getX() <= xPosition + width / 2.0f
                    && motionEvent.getY() >= yPosition - height / 2.0f && motionEvent.getY() <= yPosition + height / 2.0f;
    }

    public boolean onTouchEvent (MotionEvent motionEvent) {
        if (motionEvent.getAction() == MotionEvent.ACTION_DOWN && !isPressed && isInArea(motionEvent)) {
            isPressed = true;
            return false;
        }

        if (motionEvent.getAction() == MotionEvent.ACTION_UP && isPressed && isInArea(motionEvent)) {
            isPressed = false;
            return true;
        }
        return false;
    }

    public boolean isPressed() {
        return isPressed;
    }
}
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Je me permets de te corriger mais ta formule est fausse :innocent: .
freeshost a écrit : samedi 31 décembre 2022 à 14:42 Soient X(x1;x2) et Y(y1;y2) deux points dans le plan.

Le carré de la distance entre les deux points égale : (y1 - x1)² + (y2 - x2)²

Voir le théorème de Pythagore. :mrgreen:
correction :
Le carré de la distance entre les deux points égale : (y1 - y2)² + (x1 - x2)²

Après ça arrive à tout le monde de se tromper. Mais merci de ton aide quand-même.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
Lilas
Modératrice
Messages : 7961
Enregistré le : dimanche 14 juillet 2013 à 12:17

Re: [Index Software] Coin des développeurs :]

Message par Lilas »

La formule de Freeshost n'est pas fausse, c'est juste que les coordonnées des points sont X(x1,x2) et Y(y1,y2) et non A(x1,y1) et B(x2,y2).
Moi aussi ça m'a enduite d'erreur à la première lecture. :wink:
Lilas - TSA (AHN - Centre Expert - 2015)

Mes romans :
Avatar du membre
Bubu
Intarissable
Messages : 7750
Enregistré le : dimanche 19 mai 2013 à 12:03
Localisation : En haut à gauche

Re: [Index Software] Coin des développeurs :]

Message par Bubu »

Lilas a écrit : lundi 2 janvier 2023 à 14:04 La formule de Freeshost n'est pas fausse, c'est juste que les coordonnées des points sont X(x1,x2) et Y(y1,y2) et non A(x1,y1) et B(x2,y2).
Moi aussi ça m'a enduite d'erreur à la première lecture. :wink:
Et bien moi je me suis fait avoir. :lol: La norme en 2D math est x en abscisse , et y en ordonné .

Mais effectivement la formule de Freehost est parfaitement ,juste.

Je dirais juste que l'on repère un point 2D par son abscisse et son ordonné.
TSA, diagnostic établi à mes 33 ans par le CRA de ma région.
"Ce syndrome est caractérisé chez ce patient par l’absence de détérioration intellectuelle, un syndrome dysexécutif, un déficit d'attention"
Avatar du membre
freeshost
Intarissable
Messages : 37322
Enregistré le : lundi 15 juillet 2013 à 15:09
Localisation : CH

Re: [Index Software] Coin des développeurs :]

Message par freeshost »

Et si tu t'amuses dans l'espace tridimensionnel, le carré de la distance sera :

(y1 - x1)² + (y2 - x2)² + (y3 - x3)²

:mrgreen:
Pardon, humilité, humour, hasard, confiance, humanisme, partage, curiosité et diversité sont des gros piliers de la liberté et de la sérénité.

Diagnostiqué autiste en l'été 2014 :)
Avatar du membre
Mizunotama
Passionné
Messages : 426
Enregistré le : mercredi 13 janvier 2021 à 19:37

Re: [Index Software] Coin des développeurs :]

Message par Mizunotama »

Bubu a écrit : lundi 2 janvier 2023 à 14:51
Lilas a écrit : lundi 2 janvier 2023 à 14:04 La formule de Freeshost n'est pas fausse, c'est juste que les coordonnées des points sont X(x1,x2) et Y(y1,y2) et non A(x1,y1) et B(x2,y2).
Moi aussi ça m'a enduite d'erreur à la première lecture. :wink:
Et bien moi je me suis fait avoir. :lol: La norme en 2D math est x en abscisse , et y en ordonné .

Mais effectivement la formule de Freehost est parfaitement ,juste.

Je dirais juste que l'on repère un point 2D par son abscisse et son ordonné.
Ca me rappelle un prof de stats à la fac qui nous avait dit que le jour où on appellerait x la fonction et f la variable (donc x(f) au lieu de f(x) habituellement), il nous mettrait 0 même si tout le reste était juste. Bon, menace pour rigoler, mais il a quand même rajouté que si on faisait ça, c'est qu'on cherchait quand même les emmerdes, :lol:
Diagnostiqué TSA sans déficience intellectuelle le 12/08/2022