2400

Vu par mmu_man:

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2401

Epilogue (parce qu'ils sont trop forts) :

Mail reçu à 23:17

Bonjour,

Votre changement de titulaire n°1234567 nécessite une action de votre part.
Vous devez vous rendre sur votre espace personnel accessible en cliquant sur le lien suivant https://ants.gouv.fr/monespace/s-inscrire afin de compléter votre changement de titulaire n°1234567.

Étapes pour compléter votre demande :

> Cliquer sur « Mon espace véhicule »
> Dans le tableau « Mes demandes en cours », sélectionner « Reprise » au niveau de la demande n°1234567 afin de la compléter».


Cordialement,
Le ministère de l'Intérieur

Mais bon, comme j'étais couché, je ne me suis pas relevé avant ce matin, alors, en continuant la lecture de mes mails...

Mail reçu à 23:30

Bonjour,

Nous vous informons que votre changement de titulaire n°1234567 est passée à l'état "Terminée".

Les différents états d'une demande :

Abandonnée : demande annulée à votre initiative
Analyse par le service instructeur : demande en cours d'analyse par le service instructeur. Cet état ne nécessite pas d'action de votre part.
Rejetée / Rejetée par le service instructeur : demande rejetée par le service instructeur.
Terminée : demande finalisée. Si votre demande concerne l'édition d’une carte grise (certificat d’immatriculation) ou d’une étiquette de changement d’adresse, vous pouvez suivre sa production et distribution, en cliquant sur ce lien https://immatriculation.ants.gouv.fr/Services-associes/Ou-en-est-ma-carte-grise.

Le service instructeur est en charge de la gestion des téléprocédures relatives au système d'immatriculation des véhicules

Vous pouvez consulter les messages et documents relatifs à votre demande n°1234567 depuis votre espace personnel en cliquant sur le lien suivant https://ants.gouv.fr/monespace/s-inscrire.

Étapes pour consulter ces informations :

> Cliquer sur « Mon espace véhicule »
> Cliquer sur le bouton « Mes documents » ou « Mes documents ».


Cordialement,
Le ministère de l'Intérieur

Bref, soit mon cerveau est connecté en 4G, soit des fonctionnaires ont travaillé la nuit. Je ne saurais dire lequel des deux est le plus probable...

Pour la petite histoire, je me suis quand même connecté au compte ce matin pour vérifier l'état sur le site.

Le premier message faisait état d'un paiement en attente que j'ai fait hier après midi en CB
avatar
pedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères

2402

j'aurai dit que le premier mail est un bug lié à une mauvaise implémentation dans leur outil (Outil qui a coûté des bras)
avatar
https://air-gaming.com/tests/ si vous voulez de la bonne lecture :=)

2403

voilà ce que j'ai vu comme magnifique code cette semaine :
int compteur = 0; ArrayList<Boolean> list; for (int i=0; i<nblignes; i++) { for (int j=0; j<nbcolonnes; j++) { cell = tab[i][j]; if (cell.type() == TRUC) { compteur++; if (cell.length() > 0) { list.add(true); } } else if (cell.type() == MACHIN) { compteur++; if (cell.length() > 0) { list.add(true); } } } } if (list.size() == compteur) { ... // truc fait si toutes les cellules editables sont remplies }
je ne comprend même pas comment on peut arriver écrire ça...

avatar

2404

C'est effectivement crade, mais ça reste compréhensible, et ça fait ce que c'est sensé faire. On a déjà vu bien pire ^^
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2405

Tiens, la CSS des résultats des sondage est pas terrible, le texte augmente la taille des cellules qui ne sont plus du tout proportionnelles aux nombres de votes, je vais corriger ça.

(sinon je ne comprends pas trop le rapport avec le fait d'avoir fait du Java ou non ?)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2406

Comme dit 0², c'est du code moche mais lisible. Mais moche (et pas du tout optimisé). Je ne fais pas jeter la pierre, il doit bien y avoir 2/3 trucs comme ça (bon, peut-être pas aussi crade grin) dans des programmes que j'ai pu faire, essentiellement parce qu'il a fallu ajouter un contrôle à l'arrache.
avatar

2407

Zeph (./2405) :
(sinon je ne comprends pas trop le rapport avec le fait d'avoir fait du Java ou non ?)
Ça ressemble à du code de quelqu'un qui n'a fait que du C bas-niveau, et qui ne sait pas qu'on peut faire la même chose de façon beaucoup plus concise dans un langage comme Java (mais ça n'explique pas toute la mocheté non plus).
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2408

il est surtout débilissime ce code puis qu'on ne fait qu'ajouter des trucs a la liste pour les compter, ce qui est deja fait via le compteur...

2409

Voilà, c'est surtout ça : ça ressemble à un truc ajouté à l'arrache sans réaliser que l'info est déjà présente.
avatar

2410

j'ai volontairement rendu plus lisible le code : en vrai il y a des "instanceof" et des cast partout rendant le code très difficile à lire (en vrai ça fait 50 lignes).

Ce qui me choquait surtout c'est l'algorithme.
Même un développeur ayant fait que du C, n'ira pas parcourir tout le tableau pour savoir si il est vide ou plein : dès là première cellule non rempli, c'est qu'il n'est pas plein, pas besoin de regarder toutes les autres, ni de compter le nombre de cellules, encore moins de créer une liste de booléen tous à true.
avatar

2411

Zerosquare (./2407) :
Ça ressemble à du code de quelqu'un qui n'a fait que du C bas-niveau, et qui ne sait pas qu'on peut faire la même chose de façon beaucoup plus concise dans un langage comme Java (mais ça n'explique pas toute la mocheté non plus).
Ah je n'avais pas l'impression que c'était si bas niveau que ça ou qu'il y avait moyen d'améliorer sensiblement la lisibilité du code sans toucher à l'algo, tu penses à quoi par exemple, remplacer les boucles par des iterateurs ou ce genre de choses ?

En revanche l'algo est atroce, rien à redire à ça ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2412

SCPCD (./2410) :
Même un développeur ayant fait que du C, n'ira pas parcourir tout le tableau pour savoir si il est vide ou plein : dès là première cellule non rempli, c'est qu'il n'est pas plein, pas besoin de regarder toutes les autres, ni de compter le nombre de cellules, encore moins de créer une liste de booléen tous à true.
Ah, c'est seulement ça que c'est censé faire ? Effectivement c'est du foutage de gueule dans ce cas grin

Zeph (./2411) :
Ah je n'avais pas l'impression que c'était si bas niveau que ça ou qu'il y avait moyen d'améliorer sensiblement la lisibilité du code sans toucher à l'algo, tu penses à quoi par exemple, remplacer les boucles par des iterateurs ou ce genre de choses ?
Je ne connais pas les langages comme Java, mais instinctivement, j'aurais dit qu'on pouvait utiliser au moins un foreach, et tester si le type fait partie d'une liste prédéfinie pour éliminer la duplication du code (même si en fait, rien qu'avec du C pur on peut déjà faire mieux que l'exemple : switch (cell.type()) { case TRUC: case MACHIN: compteur++; if (cell.length() > 0) { list.add(true); } break; } ) .
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

2413

Zerosquare (./2412) :
Ah, c'est seulement ça que c'est censé faire ? Effectivement c'est du foutage de gueule dans ce cas grin
n'est-ce pas ? cheeky
avatar

2414

Oui, c'est pour ça que je trouve que ça ressemble beaucoup à un truc rafistolé à l'arrache à partir d'un code déjà existant mais dont la finalité a changé.
avatar

2415

nil : en fait l'info n'existe pas déja, mais il utilise une liste comme accumulateur au lieu d'une simple variable entière...

2416

Ben si, il a déjà l'information dans compteur, pas besoin d'avoir une liste en plus ?
De l'extérieur, ça ressemble à une situation où on avait initialement deux listes permettant d'emmagasiner d'un côté toutes les valeurs dans une cellule de type TRUC, et d'un autre toutes les valeurs de type MACHIN. Sauf qu'à un moment donné, cette information n'a plus été pertinente donc c'est juste un booléen qui a été stocké de façon globale et fait double emploi avec l'accumulateur. Enfin, j'espère que c'est ça, la justification, parce que sinon c'est vraiment quelqu'un qui ne sait pas ce qu'il fait cheeky
avatar

2417

Le compteur et la liste ne comptent pas le meme chose:

Compteur compte le nombre de cases de type MACHIN et TRUC
La liste compte le nombre de MACHIN et TRUC qui ont une valeur de rentré.
Je ne pense pas qu'il y ai deux listes, mais plutot une liste avec des elements qui peuvent avoir plusieurs genres qui sont défini par l'utilisateurs a l'utilisation. Peut etre qu'il y a un type SANS et BIDULE que ce code ignore parce qu'il s'en fout.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2418

Hm, soit, mais c'est quand-même mieux d'avoir (qui revient en gros à ce qu'a fait 0² [moins l'idée d'avoir une liste de booléens, parce que je n'en vois pas du tout l'intérêt], je laisse les gens comme PpHd calculer s'il vaut mieux un switch ou un if dans ce genre de situations en terme de cycles tongue )

if ((cell.type() == TRUC) || (cell.type() == MACHIN))
{
	compteur++;
	if (cell.length() > 0)
	{
		compteur2++;
	}
}

Après, en optimisant, on a :
if (((cell.type() == TRUC) || (cell.type() == MACHIN)) && (cell.length() == 0))
{
	allCellsWithValues = false;
	break;
}
(Et il faut un contrôle supplémentaire sur allCellsWithValues dans la première boucle pour avoir un second break le cas échéant)/
avatar

2419

L’optimisation des if est à vrai dire inutile, ça rends peu lisible et ton compilateur ferra aussi bien si ce n’est mieux.

Mais oui il est évident que deux compteur sont la solution, en tout cas avec le bout de code qu’on a à disposition.
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

2420

Zerosquare (./2412) :
Je ne connais pas les langages comme Java, mais instinctivement, j'aurais dit qu'on pouvait utiliser au moins un foreach, et tester si le type fait partie d'une liste prédéfinie pour éliminer la duplication du code
Justement, comme il y a une condition dans la boucle remplacer par une écriture plus concise (genre tab[i].contains(cell => cell.type() == TRUC)) risquerait de transformer deux boucles en une. À part la factorisation dont tu parles je ne suis pas sûr qu'il y ait tellement de variantes tellement meilleures si on veut conserver l'algo initial. Mais même dans ce contexte ça m'intéresse de voir ce que chacun considère comme une amélioration, par exemple les propositions de Nil que je n'aurais pas tendance à suivre bien que je n'aie que des arguments de goûts et de couleurs dessus ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2421

je vote également pour la seconde solution de Nil
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

2422

(perso je parle du changement d'écriture, pas du changement d'algo qui vient avec ; on peut dissocier les deux)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

2423

Après, pour un tableau à une dimension, j'aurais clairement fait le choix d'un while pour un arrêt plus propre (naturellement, je n'aime pas les break dans les if, que je trouve difficile à lire dès que le code est un peu long). Mais là, parcourir un tableau à deux dimensions juste avec des while me semble compliquer la lecture du code pour pas grand chose.
avatar

2424

moi j approuve pas ta 2e solution, elle n'est pas a temps constant, du coup elle a une vulnérabilité par side-channel de type timing attack qui permet de déterminer quel champ n'est pas rempli.

2425

flanker (./2421) :
je vote également pour la seconde solution de Nil
Idem, je vote moi aussi pour ça.

squalyl (./2424) :
moi j approuve pas ta 2e solution, elle n'est pas a temps constant, du coup elle a une vulnérabilité par side-channel de type timing attack qui permet de déterminer quel champ n'est pas rempli.
Il n'y a que très peu de contextes où ce serait un problème (genre du code qui travaille avec des clés cryptographiques). Les side channel attacks ne doivent pas servir d'excuse pour du code inefficace.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

2426

(il déconnait, t'inquiète grin)

2427

Ouais, si je dois me préoccuper des side channel attack dans mes programmes de gestion, je pense que je peux arrêter de bosser tout de suite grin
avatar

2428

c'est un problème dès qu'un processus susceptible de manipulations cryptographiques tourne sur la machine.

2429

Donc typiquement si tu proposes de l'https ?
avatar

2430