Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3216 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6
Auteur Sujet :

[HS] Vos pires erreurs de programmation

n°1275236
el muchach​o
Comfortably Numb
Posté le 31-12-2005 à 09:54:56  profilanswer
 

Reprise du message précédent :
A mes débuts, en C, l'erreur classique et vicieuse, qui fait le contraire de ce qu'on voudrait :
#define LEN 20
char truc[LEN];
...
truc[LEN-1] = "\0";
 
Le compilo devrait prévenir, quand même...


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
mood
Publicité
Posté le 31-12-2005 à 09:54:56  profilanswer
 

n°1413952
jeoff
Posté le 26-07-2006 à 15:53:31  profilanswer
 

Je viens de passer une bonne partie de la journée à essayer de comprendre pourquoi cette foutue jsp ne m'affichait pas le contenu de ma table.
Ce même contenu étant tout à fait visible sous sqlplus par ailleurs.
 
La réponse tient en une instruction :
 

Citation :

commit;


 
:D :whistle: :'(


Message édité par jeoff le 26-07-2006 à 15:54:01
n°1414037
Arjuna
Aircraft Ident.: F-MBSD
Posté le 26-07-2006 à 17:48:21  profilanswer
 

ma plus grosse connerie, c'était pas vraiment un bug... mais un effet de bord du bug :D
 
sur un site que j'avais en TMA (truc totalement imbittable), on m'appelle pour un bug.
 
je demande le scénario pour reproduire. on ne m'en donne pas.
 
je teste dans tous les sens. ne reproduit pas le bug.
 
je passe la journée à vérifier ligne par ligne le code.
 
rien d'anormal.
 
ça me gave, je décide de réécrir un certain nombre de fonctions.
 
je reteste dans tous les sens.
 
tout marche toujours bien...
 
bon, ben... avec un peu de pot... je relivre.
 
le lendemain, re-appel "on a toujours le même bug".
 
fuck.
 
bon, je me repaluche tout.
rien.
 
je réécrit tout ce qui n'a pas encoré été réécrit.
je reteste...
 
relou.
 
relivraison. bug.
 
bon, ligne par ligne, je fous des gestions d'erreurs, genre "erreur ligne xxx"
 
sur la toute première ligne, genre ça me lourde, je fout comme message en cas d'erreur (genre, la page plante avant d'avoir démarrée) :
"de toute façon, vous êtes trop con pour commander sur ce site de merde"
 
reliv
 
quelques jours plus tard, appel du client furieux "votre site nous insulte !"
 
oups.
 
jamais compris comment un "if err <> 0 then" en toute première ligne d'un fichier asp pouvait se déclencher...
 
résultat, j'ai fait un copier/coller dans notepad. suppression de la page. enregistrer-sous depuis notepad. livré.
ils ne se sont plus jamais plainds. y'a des fois, faut pas chercher à comprendre moi je vous dit.
 
en tout cas, j'avais bien l'air d'un con pour le coup :o


Message édité par Arjuna le 26-07-2006 à 17:48:32
n°1414229
esox_ch
Posté le 27-07-2006 à 06:22:34  profilanswer
 

Bonjour :D
Bon bien entendu je suis aussi passé par les if($var = 'truc) en PHP/Java, par les for(int i(0);;++i) en C++ (d'ailleurs jamais compris pourquoi notre compilo m'etripait pas :heink:).
Les trucs m'aillant fait perdre le plus de temps sont :
 
Test-Retest sur une branche d'un projet alors que je commitais sur une autre branche ( :'( )
Un joli side effect que j'ai créé dans uen boite qui m'avait engagé comme stagiere ... J'ai modifié un truc dans un framework fait maison par la boite (un truc utilisé un peu partout) qui me faisait chier a me retourner des nombres negatifs alors qu'il etait sencé retourner que des positifs ou nuls, manque de bol à l'époque je pensais qu'un "finaly" etait executé uniquement si une exception était catchée, et du coups ... Bein j'avais fait un try/catch sur la positivité de la variable, et finaly { var = 0 ; } ... Problème ... Le jour même une version du produit a ete deployé chez le client (sans bien entendu avoir tout testé) et la partie "comptabilité" avait une bonne partie des chiffres egaux à 0 :D Etant vous dire que mes "collegues" ont pas étés contents :D
Ou sinon toujours dans la meme boite, le chef nous a dit qu'on avait desormais l'interdiction d'utiliser des noms de variable /des tests insultants, parceque un client avait reçu une erreur generée par une variable "taMereEnString"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1414232
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 07:09:23  profilanswer
 

le truc qui m'a le plus casse les c*** c'est une histoire de lenght() au lieu de length()
j'y avais perdu au bas mot  3 heures :whistle:
 
au tout debut y a aussi quelques forks foireux qui ont fait tomber les serveurs de la fac  :D  
 
mais la palme de la connerie (ou plutot de l'etourderie), qui a failli me valoir de reel souci,c'est quand j'ai oublie de rajouter la TVA sur les factures d'une partie des clients et que c'est passe en prod (bon ca a impacte 3 clients avant d'etre repare mais bon :D)


Message édité par betsamee le 27-07-2006 à 07:10:35
n°1414236
esox_ch
Posté le 27-07-2006 à 07:26:34  profilanswer
 

A oui c'est vrai :D Et y en a pour tous les gouts :
width, height, length :D On a de la marge pour se tromper :D heureusement que la coloration syntaxique aide :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1414420
sircam
I Like Trains
Posté le 27-07-2006 à 12:25:31  profilanswer
 

J'utilisais souvent les touches "*", "-" et ENTER du keypad, à droite du claivier.
 
Un jour, en voulant effacer certains fichiers, la promiscuité des touches *, - et ENTER aidant sur un vieux clavier, je tape un fatidique:
 

rm * [ENTER]


 
Pas de confirmation, rien, tout était parti. Mon cortex cérébral s'en est rendu compte quand j'avais le doigt sur ENTER mais n'a pu interrompre le mouvement.  :sweat:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1414435
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 12:50:59  profilanswer
 

sircam a écrit :

J'utilisais souvent les touches "*", "-" et ENTER du keypad, à droite du claivier.
 
Un jour, en voulant effacer certains fichiers, la promiscuité des touches *, - et ENTER aidant sur un vieux clavier, je tape un fatidique:
 

rm * [ENTER]


 
Pas de confirmation, rien, tout était parti. Mon cortex cérébral s'en est rendu compte quand j'avais le doigt sur ENTER mais n'a pu interrompre le mouvement.  :sweat:


 :ouch:

n°1414473
Sh@rdar
Ex-PhPéteur
Posté le 27-07-2006 à 13:25:52  profilanswer
 

ça m'est arrivé avec un chmod ça, tout pété les permissions sur les sites oueb [:ddr555]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1414482
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 13:35:42  profilanswer
 

c'est quand meme moins gore

mood
Publicité
Posté le 27-07-2006 à 13:35:42  profilanswer
 

n°1414487
Sh@rdar
Ex-PhPéteur
Posté le 27-07-2006 à 13:42:45  profilanswer
 

j'ai eu un ptit coup de stress quand même, et le log erreur apache qui pouvait plus rien lire a bien gonflé pendant 15 minutes :sweat:


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1414495
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 13:51:23  profilanswer
 

dans le style j'ai fait dernierement un petit crontab -uroot -r (au lieu du -e mon doigt a derape)
c'est pas marrant non plus :sweat:

n°1414616
pikti
I’ve done worse
Posté le 27-07-2006 à 15:27:29  profilanswer
 

Une boulette sympa et pratique que j'ai commise l'année dernière :
 
Pour la recette d'une appli Web ASP.Net, on utilisait "ASP.Net Issue Tracker Starter Kit", une autre petite appli Web gratos que certains doivent connaitre pour faire du reporting de bug.
 
Je corrige une issue et réponds un peu vite, fautes d'orthographe en prime. Or on ne peut pas éditer ses messages.
 
Je me dis "pas grave, moi je fais mes modif direct en base (je suis un och)", et au moment d'exécuter mon script d'update dans l'Analyseur de requêtes, à l'instar de betsamee, mon oeil remarque un détail qui n'arrête pas le mouvement de mon doigt vers la touche F5 :
 
un magnifique update sans clause where, résultat : 672 issues mises à jour  :sol:  
 
...et bien sûr, la base n'était pas backupée.
 
En même temps quand je corrige un bug, j'efface toute trace des autres :p
 
(bon pour l'histoire il en restait très peu des bugs, et toutes les issues existaient en version papier, ça a permis de faire la lumière sur quelques problèmes d'exploitation, comme l'absence de dump... mais sur le coup je faisais moins le malin)

n°1414622
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 15:29:19  profilanswer
 

pikti > pour cette raison, je commence toujours par taper "begin trans" dans un analyseur de requête ;)

n°1414626
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 15:31:29  profilanswer
 

dans la serie "petits trucs qui peuvent te sauver un carriere"
toujours ecrire la clause where avant le update ou delete

n°1414635
pikti
I’ve done worse
Posté le 27-07-2006 à 15:36:04  profilanswer
 

Arjuna, betsamee > oui bien sûr, vous avez raison, et je vous rassure je ne fais jamais ce genre de manip direct sur une base de recette ou de prod...
 
Ce jour là j'ai juste.. fait une boulette  :whistle:

n°1414637
betsamee
Asterisk Zeperyl
Posté le 27-07-2006 à 15:37:07  profilanswer
 

etant donne que passe ma vie sur la base de prod je suis bien force d avoir ces petits reflexes :whistle:

n°1414701
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 16:06:57  profilanswer
 

betsamee a écrit :

dans la serie "petits trucs qui peuvent te sauver un carriere"
toujours ecrire la clause where avant le update ou delete


et ne jamais se servir de la souris dans toad
(parceque le bouton "commit" à côté du bouton "rollback", c'est mal, j'ai un collègue qui a vidé une table de quelques millions de lignes comme ça un coup :D heureusement, y'avait un lock sur une ligne qui a bloqué oracle, et on a pu obtenir de l'admin qu'il fasse un kill -9 sur les process d'Oracle... du coup on n'a rien perdu [:anathema]

n°1414706
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 16:08:52  profilanswer
 

betsamee a écrit :

etant donne que passe ma vie sur la base de prod je suis bien force d avoir ces petits reflexes :whistle:


moi c'était pire chez ce client :
-> serveur de prod hébergé.
-> problème constants sur la connection.
-> donc mise en production "en douce" du serveur de test.
-> donc pas de backup du serveur "de test qui fait de la prod".
=> d'où le kill -9 de malade sur oracle en serrant les fesses quand il a commité une connerie portant sur des millions de lignes :D


Message édité par Arjuna le 27-07-2006 à 16:09:07
n°1414795
sircam
I Like Trains
Posté le 27-07-2006 à 17:04:09  profilanswer
 

Arjuna a écrit :

et ne jamais se servir de la souris dans toad
(parceque le bouton "commit" à côté du bouton "rollback", c'est mal, j'ai un collègue qui a vidé une table de quelques millions de lignes comme ça un coup :D heureusement, y'avait un lock sur une ligne qui a bloqué oracle, et on a pu obtenir de l'admin qu'il fasse un kill -9 sur les process d'Oracle... du coup on n'a rien perdu [:anathema]


Le coup du lock qui sauve et rattraper la sauce à coup de kill -9 [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1414805
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 17:15:30  profilanswer
 

ah tiens, en répondant à un topic, je viens de me rémémorer ma connerie la plus simple (pas moi qui l'avait écrite, mais ça m'a pris des mois à trouver d'où ça venait !)
 
coup de fil du client :
"on a régulièrement des litiges avec nos clients... le site n'a pas enregistrée le bon nombre de produits dans la commande et le client est furieux"
 
ok... bon... tests... un peu tous les cas possibles... impossible de reproduire.
 
je demande une copie des factures où il y a un litige.
à chaque fois, le client a commandé pour 8 ou 9 unités d'un produit.
je regarde dans la base, trouve d'autres commandes avec 8 ou 9 unités. je demande au client "non, elles ne sont pas en litige celles-là".
 
hmpf...
 
tests, retests. lecture et relecture du code. traces de partout. réécritures de quelques morceaux. constitution de logs...
 
rien à faire. j'ai toujours des littiges, toujours sur des quantités à 8 ou 9. moi dans mes traces j'ai tout bien ce qu'il faut... c'est à dire 8 et 9 depuis le début... comprends pas !
 
agacé, après pas mal de semaines, je demande au client de me faire un topo complet :  
- ok, y'a 8 et 9 dans les commandes. mais qu'est-ce qui fait qu'il y a un litige ? moi j'ai regardé, et depuis le départ, le client a demandé 8 ou 9 unités...
- ben non, là il en voulait 10, et là il en voulait 11 (en me montrant respectivement des commandes avec 8 et 9 unités)
- :heink:
 
/me va donc se pendre quelques instants...
 
je vais sur le site.
tape 10 en face d'une quantité.
"add to cart"
et pof ! j'en ai 8 !
j'en rajoute deux.
et pof ! j'ai 10 !
j'en rajoute 1
je suis passé à 9 !
j'en rajoute 11
18 :sweat:
 
:pt1cable:
 
/me retourne donc fixer un peu mieu la corde que la première fois
 
je regarde mon code...
 
inputCart.value = parseInt(inputCart.value) + parseInt(inputQte.value);
 
je fais des alert de mes input, de mes parseInt et... les 10 deviennent 8 et 11 devienent 9 :o
 
après regardage sur la MSDN, je découvre le paramètre radix à la fonction parsInt()
Je rajoute 10 en radix, et depuis, plus de problème.
 
putain d'erreur con ! quand t'es pas au courant, ça s'invente pas que JS bosse en octal par défaut !


Message édité par Arjuna le 27-07-2006 à 17:16:22
n°1414806
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 17:16:11  profilanswer
 

sircam a écrit :

Le coup du lock qui sauve et rattraper la sauce à coup de kill -9 [:pingouino]


on est warrior ou on l'est pas :D

n°1414807
kadreg
profil: Utilisateur
Posté le 27-07-2006 à 17:16:17  profilanswer
 

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o
 
edit: livraison client bien sur :o

Message cité 3 fois
Message édité par kadreg le 27-07-2006 à 17:30:50

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1414810
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-07-2006 à 17:17:58  profilanswer
 

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o


le gars a peut-être été déçu en recevant une bouteille de parfum :spamafote:

n°1414812
Sh@rdar
Ex-PhPéteur
Posté le 27-07-2006 à 17:19:06  profilanswer
 

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o


 
 
 [:x-httpd-php] on a le record là [:petrus75]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1414911
farib
Posté le 27-07-2006 à 20:33:58  profilanswer
 

Y'a 5 minutes
 

Code :
  1. for ( i = 0 ; i < tamere ; i=+20 )
  2. {
  3. }

n°1414962
LePhasme
Les Belges domineront le monde
Posté le 27-07-2006 à 23:20:07  profilanswer
 

A un examen de C, on devait utiliser une fonction de génération de nombre réels "aléatoires" compris entre 0 et 1 qu'on avait vu au cours.
Je fais mon programme, je me dis que c'est pas la peine de déclarer les fonctions dans le main...
Tout se passe bien sauf que durant les tests les résultats sont pas bon et après vérification je vois que ma fonction random renvoit toujours 0.
Je cherche partout je modifie un peu le code toujours les warning pour les en-tête de fonction que je nie...
10 min avant la fin je me dis que je vais rendre un programme qui compile au moins sans erreur même si il tourne pas.
Forcément après avoir mis un "float random(float)" ca allait...


Message édité par LePhasme le 27-07-2006 à 23:20:53

---------------
Instagram - Mon PVT en Australie.
n°1415011
farib
Posté le 28-07-2006 à 02:31:12  profilanswer
 
n°1415074
therier
heu...coucou!
Posté le 28-07-2006 à 11:18:53  profilanswer
 


Le coup le plus salace en C++, c'est la surcharge d'opérateurs.
 
Généralement c'est pire encore quand l'opérateur surchargé fait à peu prés la même chose que l'opérateur initial....  :D

n°1415548
LePhasme
Les Belges domineront le monde
Posté le 28-07-2006 à 19:49:52  profilanswer
 

farib a écrit :

pas compris


Si tu déclares pas la fonction il considère qu'elle renvoit un int par défaut, or 0.153484 par exemple quand tu le converti en int ça vaut 0.


---------------
Instagram - Mon PVT en Australie.
n°1415549
farib
Posté le 28-07-2006 à 19:51:53  profilanswer
 

ok
 
mais y a pas d'erreur de compil si tu declares pas la fonction :??:


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°1415554
LePhasme
Les Belges domineront le monde
Posté le 28-07-2006 à 19:59:37  profilanswer
 

Juste un warning dans mon cas.


---------------
Instagram - Mon PVT en Australie.
n°1601234
christophe​_d13
L'efficacité à tout prix.
Posté le 20-08-2007 à 16:26:08  profilanswer
 

Code :
  1. if (i=b) ...


L'erreur de frappe classique ou l'oublie quand on tappe trop vite.
 


---------------
http://www.ikalizer.fr
n°1601270
MagicBuzz
Posté le 20-08-2007 à 16:58:33  profilanswer
 

christophe_d13 a écrit :

Code :
  1. if (i=b) ...


L'erreur de frappe classique ou l'oublie quand on tappe trop vite.


j'arrête pas de la faire celle là... :D
 
heureusement, en C# il aime pas ça :

Code :
  1. int a = 1;
  2.  
  3.            if (a = 2)
  4.            {
  5.                MessageBox.Show(a);
  6.            }


 


Erreur 1 Impossible de convertir implicitement le type 'int' en 'bool' C:\Users\MagicBuzz\Documents\Visual Studio 2005\Projects\Test\Test\Form1.cs 18 17 Test


 
Que c'est bien de travailler avec un langage fortement typé :)
 
Ceci dit, en cherchant bien on arrive à merder quand même mais c'est moins évident et y'a pas d'erreur à proprement parler ;)

Code :
  1. if ((a = 2) == 2)

Message cité 1 fois
Message édité par MagicBuzz le 20-08-2007 à 17:02:52
n°1601274
e-deby
Posté le 20-08-2007 à 17:01:43  profilanswer
 

Code :
  1. DELETE FROM truc
  2. -- WHERE machin


 
putain de raccourci "commenter"  :sweat:

n°1601395
Gf4x3443
Killing perfection
Posté le 20-08-2007 à 20:15:28  profilanswer
 

MagicBuzz a écrit :


j'arrête pas de la faire celle là... :D
 
heureusement, en C# il aime pas ça :


 
Faut assumer de ne pas compiler avec -Wall... :o
 
En ce qui me concerne, un temps incommensurable pour faire un shell script pour l'executer en setuid root, mais qui veut quand même pas avoir les droits une fois executé.
 
Refaire le même en C, et faire un bug report pour bash. Mes tous débuts, je m'en souviendrais longtemps de cella là [:ddr555] Qu'est ce que j'ai pris ce jour :D

n°1601398
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 20-08-2007 à 20:17:07  profilanswer
 

e-deby a écrit :

Code :
  1. DELETE FROM truc
  2. -- WHERE machin


 
putain de raccourci "commenter"  :sweat:


c'est pourtant bien pratique pour faire des choses vilaines [:rhetorie du chaos]

n°1638007
black_lord
Truth speaks from peacefulness
Posté le 07-11-2007 à 10:23:19  profilanswer
 

kadreg a écrit :

J'ai livrée le produit avec comme valeur par défaut à un paramètre "grosse merde qui renacle" :o
 
edit: livraison client bien sur :o


[:rofl]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1638182
Mxtrem
Posté le 07-11-2007 à 13:13:05  profilanswer
 

Erreur à la con qui m'a fait perdre 3h ou j'ai failli avoir deux crises cardiaques :fou:
 
Je modifiais mon fichier php mais voyait toujours la même erreur sur le site (chaque minute me fait perdre des ronds donc je commence à criser :fou:). A chaque fois j'uploadais donc le fichier, modifié, reuploadais... toujours l'erreur.
Je me dis que ça vient peut être du serveur, je commence donc à tripatouiller dedans... encore plus d'erreurs. J'appelle donc OVH, très désappointé, en les sommant de régler le problème au plus vite :fou:
 
Au bout de quelques heures donc je regarde bêtement pour client ftp et remarque que je suis connecté sur le mauvais serveur....
Erreur pas vraiment de programmation mais je me devais de la raconter :D
(on peut assimiler ce post à une honte oui :D)

n°1640690
bapho13
Usager usant
Posté le 10-11-2007 à 15:37:33  profilanswer
 

Erreur que je viens de faire. Ma base de données sous MySQL s'appelle maison. Je suis actuellement en train de tester mes scripts de création et donc j'ai du dropper la base à la main parce qu'elle s'était mal créée.
 
Hélas, la fatigue aidant j'ai eu le droit à un beau

Code :
  1. drop database mysql


 
Où comment se compliquer la vie gratuitement [:hahaguy]


Message édité par bapho13 le 10-11-2007 à 15:45:03
n°1640736
Gf4x3443
Killing perfection
Posté le 10-11-2007 à 19:25:46  profilanswer
 

Se connecter avec un utilisateur qui a plus de droits que nécessaire...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6

Aller à :
Ajouter une réponse
 

Sujets relatifs
Programmation Macro pour Powerpoint HEEEELPCherche tutoriaux pour Programmation 3D avec DIrectX !
Programmation ASPI : besoin d'aideQue faire des offres d'emploi postées sur Programmation ?
doc as400 + programmation ILE ou RPG 4Pb de programmation objet
[CNMO] aide sur la programmation ISOcherche qqu'un pour m'apprendre à faire de la programmation...
Site sur la programmation (Tutoriaux DirectX et OpenGL + Jeux)[C++] question bête sur la programmation et les pointeurs...
Plus de sujets relatifs à : [HS] Vos pires erreurs de programmation


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)