Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierChlouchloutte ¯\_(ツ)_/¯

YouTube - Un monde obèse | ARTE

18 juin 2021 à 11:01

Un super reportage tourné par Arte qui parle de l’obésité dans le monde.

Il est très bien construit pour amener son propos.
L’obésité est développée dès l’enfance avec des armes marketing et légales très développées par des lobby vraiment puissants. La consommation d’une alimentation mal équilibrée entraîne des problèmes intestinaux sur plusieurs générations (et qui s’empire a chaque génération)

Bref c’est un peu long, parfois un peu contemplatif, mais vraiment intéressant !

Ce qui m’amène 2 pistes de réflexion :
1) le régime Paléo n’a pas tout à fait tort dans le sens où ramener du gras et de la viande apporte satiété et ne fait pas grossir - attention toutefois au côté un peu extrême de ce régime alimentaire, personnellement je ne pratique pas

2) le véganisme, qui encourage la mauvaise pyramide alimentaire basée sur des produits sucrés et peu nourrissant, n’est pas forcément bon pour la santé ni tenable - il faut vraiment le faire par conviction morale, pas dans l’optique d’améliorer sa santé ou de maigrir, au risque de se prendre un revers très sérieux niveau poids
Permalien

Note: Angular - Utiliser le mécanisme des Forms de base plutôt que celui du Framework

22 mars 2021 à 15:27

Dans ce cas, l'event à binder n'est pas (submit) mais (ngSubmit) :

<div class="container">
    <div class="logo">Create a new account!</div>
    <div class="register-item">
      <form #myform="ngForm" (ngSubmit)="register(myform)" class="form form-register">

        <div class="form-field">
              <label class="user" for="register-username"><span class="hidden">Name</span></label>
              <input name="name" id="register-username" type="email" class="form-input" placeholder="Name" ngModel required>
        </div>
        <div class="form-field">
          <label class="user" for="register-email"><span class="hidden">Email</span></label>
          <input name="email" id="register-email" type="email" class="form-input" placeholder="Email" ngModel required>
        </div>

        <div class="form-field">
          <label class="lock" for="register-password"><span class="hidden">Password</span></label>
          <input name="password" id="register-password" type="password" class="form-input" placeholder="Password" ngModel required>
        </div>

        <div class="form-field">
          <input type="submit" value="Register">
        </div>
      </form>
    </div>
</div>

Permalien

Le privilège cissexuel - Antichesse - Chlouchloutte ¯\_(ツ)_/¯ - Les petits liens de Lou - Antichesse

28 janvier 2021 à 20:51

Bah, tu sais bien, Antichesse, que je fais l’effort de lire les gens qui me retournent la politesse. Tu m’as proposé un texte intéressant, j’ai répondu à la politesse avec une autre vision, issue de mon vécu.
Je ne prétend pas avoir raison, ni même que autrui a tort, j’explique les éléments qui me semblent en désaccord avec mon expérience. Et si derrière, je me suis trompée, ben ça arrive. Je changerai peut-être même d’avis dans quelques temps. C’est fort possible ! Les nouvelles informations apportent de nouvelles opinions !

Pour le coup du terme « auteur », je ne pensais pas que les termes « auteure » ou « autrice » avait été inclus au dictionnaire, je savais qu’il y avait discussion, mais j’étais restée sur le fait qu’on dit toujours « Madame Le juge » ou « Madame Le Ministre », mais c’est probablement dû au fait qu’il s’agit de titres et non de postes. Au temps pour moi, j’avais pas suivi, désolée.
Permalien

Le privilège cissexuel - Antichesse

28 janvier 2021 à 12:56

Remarques sur le

Disclaimer : je souhaite discuter et apporter un point de vue différent. Je n’ai pas souhaité être agressive ni insultante. Si jamais c’est le cas, n’hésitez pas à me dire ce qui a été mal interprété, que j’en tienne compte par la suite. Merci. (On se croirait dans une vidéo YouTube hi hi)

J’ai bien lu le texte, je me permet de partager mon opinion.

Déjà je redoute une traduction de l’anglais vers le français un peu approximative.

Je rappelle que « gender » a deux traductions directes en français :

  • Genre - dans le sens de catégorie / classification / règles et caractères communs (ex: un genre littéraire) pour des pronoms
  • Sexe - littéralement

Dans l’autre sens, genre ne se traduit en « gender » que pour signifier des catégories de mots, et la chaise n’a pas de rapport avec le sexe féminin. C’est juste la langue qui s’est construite par accrétion, de cette manière.

Donc si on parle de genre, la meilleure traduction serait le rattachement au sexe d’une personne.
Exemple linguee :
« The survey asks respondents to specify their age and gender »
« Le questionnaire demande aux répondants de préciser leur âge et leur sexe »

Mais bon, on conviendra que c’est plus pratique de traduire par genre, et de parler de construction de genre, en tant que construction de catégorie sociale.
Donc du coup, je me demande si, quelques fois, on ne perd pas le contenu initial au profit d’une interprétation personnelle...

Pour le faciliter la tâche, je vais partir du texte pour construire ma réflexion.

« nous projetons constamment et activement nos idées et suppositions quant à la masculinité et la féminité sur chaque personne que nous rencontrons »
Je suis complètement d’accord avec cette vision, chacun dispose de ses propres critères subjectifs concernant le stéréotype de genre selon qu’il ait été inspiré par playboy / têtu ou Marie Curie / Einstein (ou autre bien sûr).
La définition du stéréotype de femme / homme est dans les yeux de celui qui regarde. Deux personnes auront des visions différentes de ce que doit / ne doit pas / est / n’est pas / peut / ne peut pas faire les personnes de chaque genre, mais dont certains éléments se rejoignent parfois, car le stéréotype de genre est une construction sociétale, qui est acquise dès la plus tendre enfance à grand coup de « le bleu et les voitures pour les garçons », « le rose et les poupées pour les filles », avec un gradient plus ou moins marqué selon les parents que l’on a. Ainsi, homme comme femme, nous apprenons très vite à nous conformer à une vision stéréotypée autour des genres.
Et c’est la raison pour laquelle les standards de beauté sont à ce point divergents à travers le monde, selon les pays. Et que beaucoup de monde trouve un partenaire dans sa vie. On ne voit pas la même chose chez l’autre.
Pour la suite, je ferai donc une distinction entre le sexe de naissance (homme / femme) et première traduction de « gender », qui est inné - et le stéréotype de genre (dictats hommes - femmes), deuxième traduction de « gender », qui sont de pures créations de la société et appris par les individus dès le plus jeune âge.

Nous passons beaucoup de temps à analyser les stéréotypes émis par les individus autour de nous. Stéréotypes de genres, oui, mais aussi de milieu culturel (la petite chaînette sur les lunettes des femmes de lettre - ha ha), de classe sociale ou même de groupe culturel (adepte du foot - de métal...).
Cette analyse de l’autre va nous permettre d’identifier ce que nous pouvons attendre ou espérer des autres.
Si j’ai besoin d’une serviette hygiénique, je demanderai plutôt à une personne qui a adopté les codes du genre féminin. Si je souhaite fonder une famille, je vais chercher une personne qui réponde aux codes de ma vision d’une figure parentale (vêtements liés à la classe sociale - attitude envers les autres (pourquoi pas les enfants) - et bien sûr, perspectives de fonder une famille donc codes du genre qui me garanti une reproductibilité). Si je souhaite passer un bon moment au stade, je me mettrais du côté des personnes ayant un maillot de la même couleur que le mien.
Nous avons tous des attentes par rapport aux autres (l’auteur n’en manque pas d’ailleurs), et renvoyer certains codes facilite la lecture d’autrui.

Un exemple : si une personne se présente à un entretien d’embauche en survêtement pour un poste de banquier, le jury va garder un doute légitime quand à sa capacité à adopter les codes vestimentaires et attitudes attendus et liés au poste.
Une société est constituée de codes et de stéréotypes.

Après, tous les stéréotypes ne sont pas bons, et il est important d’en remettre en question. C’est d’ailleurs le fer de lance de la lutte féministe. Changer quelques stéréotypes (autour du genre justement). Grâce à cela, les femmes peuvent porter des pantalons, ne pas s’épiler les jambes, etc.
Il y a encore du boulot du côté des hommes dont très peu d’entre eux ont acquis les codes jupe - talons - maquillage mais cela peut aussi s’expliquer par l’inconfort de ces attributs (sans parler des trucs moulants, souvent incompatibles avec une affection pour la bière).

J’estime pour ma part que libre à chacun de faire ce qu’il veut, mais le risque à ne pas renvoyer les bons codes, c’est de perdre en légitimité. C’est un jeu de dupe, d’où le terme « costume » d’entreprise. Tout est apparat, tout est code et image.

Du coup je ne suis pas d’accord avec cette lecture de la situation : « la plupart des cissexuelLEs supposent que toutes les personnes qu’illes rencontrent sont aussi cissexuelles, tout comme la plupart des hétérosexuelLEs supposent que toutes les personnes qu’illes rencontrent sont aussi hétérosexuelles ».
Puisque l’on parle de codes liés au stéréotypes de genres, si tu adoptes un code, il y a de fortes chances que tu sois classé selon ton stéréotype de genre.

Ensuite, derrière vient l’espoir de chacun de ce qu’il peut obtenir de l’autre. Si tu es un homme et que tu vois une personne avec les codes du stéréotype de genre féminin, tu vas te demander quelles sont tes chances de coucher avec / fonder une famille avec / discuter avec / demander un tampax pour ta femme (décidément il va revenir celui là).
Si la personne n’a aucune attente envers quelqu’un, quel que soit son stéréotype de genre, il n’y aura pas de questionnement par rapport à l’autre. Tout le monde est invisible et ignoré tant qu’il n’éveille pas dans le regard de l’autre la potentialité d’une réponse à un de ses besoins.
Un individu jugé « laid » (selon les critères de sa culture) est très souvent invisibilisé, par exemple.
Et ensuite, évidemment, personne ne viendra te voir pour te demander « bonjour, vous ne seriez pas trans par hasard ?». Franchement, malpoli / 20... en tous cas, je considère que ça ne se fait pas. La question sera abordée si jamais cette information est un pré-requis a un besoin auquel l’autre pourrait répondre. Il sera d’ailleurs abordé différent, comme par exemple « je voudrais 3 enfants, et toi ? », qui est à la fois une vérification de compatibilité, mais aussi de capacité.

Du coup, ce passage nécessite une discussion : « Pour la plupart des cissexuelLEs, le fait qu’illes se sentent à l’aise en habitant le genre qui leur a été assigné, et le fait que les autres personnes confirment ce sentiment de naturel en les genrant correctement, les autorise à développer un sens de la légitimité à l’égard de leur propre genre : illes se sentent autoriséEs à se nommer femme ou homme. »
Il existe toute une phase très difficile qui s’appelle l’adolescence, ou chacun apprend petit à petit a découvrir et assumer son corps. Certains se l’approprient avec du sport, des tatouages, des piercings, des coupes de cheveux, des photos (ou plutôt des like) Instagram, mais cette période est celle où le jeune adulte développe sa perception de lui-même et se retrouve ou non dans les stéréotypes et normes que la société impose (et encore une fois, je ne suis pas spécialement d’accord avec tous ces stéréotypes, c’est le but de la lutte féministe).
Beaucoup d’ailleurs rejettent cette transformation, il faut du temps pour s’accepter. Il arrive très souvent que l’on ne trouve l’acceptation de soi qu’à travers le regard de l’autre, et donc des attentes de l’autre par rapport à soi. Ce qui explique le sujet des figures parentales, exprimant l’approbation de la société sur soi-même. Ce que les parents enseignent à leurs enfants, ce sont bien les codes et conventions pour vivre en société (avec le fameux cliché du string pour les adolescentes - bête noire des parents qui veulent cadrer l’évolution de leur enfant à un stéréotype acceptable, selon leurs critères).

Donc je ne peux pas être d’accord avec cette affirmation : « illes se considèrent comme les arbitres ultimes pouvant statuer sur qui a le droit de se nommer femme ou homme »
Les individus ne sont capables que d’une chose : apprécier l’adoption des codes de stéréotype chez l’autre, puisqu’ils sont poussés par la société et « connus de tous ». Ils s’y sont eux-mêmes conformés, consciemment ou non, par apprentissage.

On en arrive à ce passage : « Le mythe le plus courant utilisé pour justifier le privilège cissexuel est l’idée que les cissexuelLEs héritent le droit de se nommer femme ou homme en raison d’être néE dans ce sexe précis. En d’autres mots, les cissexuelLEs voient leur légitimité de genre comme un droit de naissance. »
Hé bien non justement, c’est l’inverse ! Il faut reprendre la définition de cissexuel : qui est en phase entre son sexe et les codes de son genre. La phrase de l’auteur est une négation de la définition de cissexuel.
Certes, la première traduction de « genre » définit un homme ou une femme par son adn et sa naissance. Mais ton adéquation ou non aux stéréotypes de genre est un apprentissage.
Il n’y a aucun lien entre être cissexuel et être né homme ou femme. Héloïse en est un exemple. Hors les hommes efféminés sont des hommes, parce que sexe et stéréotype de genre sont deux choses distinctes !

Du coup, lorsque la personne parle de son histoire : « Dans la sphère des interactions sociales, la seule différence entre mon genre transsexuel et leur genre cissexuel est que mon appartenance au genre féminin est généralement déclassée et placée en seconde zone, comme une imitation illégitime de la leur. »
Là je trouve qu’on touche quelque chose. La notion d’imitation, qui est au cœur de l’adoption de codes de stéréotypes est une construction normale de l’individu. Si l’auteur a été surpris de découvrir cela tard, cela fait longtemps que l’on sait que les enfants apprennent par mimétisme. Tout le monde passe par cette « imitation légitime ». Et comme l’on copie ce qui nous entoure, l’on finit par adopter les stéréotypes qui nous entourent. C’est le cas au travail avec les costumes, dans son lotissement lorsque l’on parle de streetwear ou de bcbg, mais aussi lorsque l’on parle de féminité et de masculinité.

Et lorsque l’auteur finalement témoigne : « En fait, l’évidence cissexuelle rend insignifiant mon sexe de naissance, et les autres supposent automatiquement que je suis née femelle (en se basant uniquement sur le fait qu’illes m’ont genrée femme). »
Il démontre lui même que ce sont les stéréotypes de genre et l’adoption de codes sociétaires qui définissent la perception dans le regard de l’autre. La preuve, les autres t’ont légitimé en tant que femme. Ton sexe de naissance et ton adn sont bel et bien des informations médicales.
Si le but de l’auteur est de pointer du doigt que la standardisation de l’individu par adoption des codes de stéréotype rend invisibles / standards les individus, ça n’est pas du tout une révélation. Personne ne va chercher à savoir si tu étais d’un autre code genré avant ou pas, tu as les codes d’un stéréotype, et on te traite et on attend des choses de toi en tant que tel. Et en même temps, si la première question que l’on devait poser était « t’as toujours été un homme ? », on se retrouverait à crier à la discrimination (légitime je pense).

Du coup, ce ressenti « Une autre remarque fréquente, "je n’aurais jamais deviné que tu étais transsexuelle", me félicite essentiellement de ressembler à une cissexuelle, insinuant une fois encore que les cissexuelLEs sont par essence meilleurEs que les transsexuelLEs. » est lié à l’idée que l’auteur a des autres.
Les gens sont en train de dire que ton adoption des codes est parfaite, et que tu as bien compris le modèle poussé par la société, c’est donc une validation d’un chemin parcouru par tous, mais tu l’interprètes comme un acte de dénigrement. C’est nier le parcours de l’autre, qui lui aussi s’est approprié les codes par apprentissage. En plus de cela, si tu as fait ton coming out trans, qu’espérais-tu comme réaction ?
Tu informes tout le monde « j’ai eu le cancer », et on te répond « j’aurais jamais deviné que tu avais pu frôler la mort ». C’est assez normé comme réponse. Que répondre d’autre sans devenir intrusif dans la vie de l’autre au risque de poser des questions qui pourraient être vues comme malsaines ou voyeuristes ?

De ce fait, le concept de « privilège cis » me gêne dans le sens où l’on parle d’une convention acquise par apprentissage et approbation de la part de la société, la ou l’auteur voit quelque chose d’inné. « Privilège » qui semble accordé à tous ceux qui respectent les codes et normes liés a un concept, indépendamment de leur sexe.

« Et la différence majeure entre mon histoire de vie de femme et la leur est que j’ai eu à me battre pour mon droit à être reconnue en tant que femme, alors qu’elles ont toujours eu le privilège de simplement considérer ceci comme acquis. »
Et bien non, justement. On apprend à se maquiller, on apprend à choisir ses vêtements, on apprend à se conformer aux attentes des autres et c’est tout le sujet de la polémique autour des réseaux sociaux comme Instagram qui envoient des codes de plus en plus normés. Tout le monde acquière ou lutte contre le stéréotype de genre.
Le meilleur exemple est la société japonaise, hyper conformiste parce que l’on agit pour rendre service à l’autre. On porte un costume pour ne pas embarrasser l’entreprise. On ne dit pas ce qu’on pense pour ne pas gêner. Le regard de l’autre passe avant l’individualité. On rentre dans le moule et on s’efface pour être accepté. Et je ne dis pas que c’est bien, il y a beaucoup de problèmes au Japon.

Je suis d’accord avec la considération souvent archaïque et beauf que certaines personnes peuvent avoir envers les personnes trans, il faut changer cela. Ça n’est pas correct. Je pense d’ailleurs que les médias ont fait beaucoup de mal sur l’image des trans.
Mais comme l’auteur le dit lui même, cis ou trans, on passe par une phase d’imitation des stéréotypes pour apprendre à les intégrer avec justesse dans les yeux des autres.

Là ou je pense que les trans vivent quelque chose de très dur, c’est lorsque leurs interlocuteurs découvrent qu’il y a inadéquation entre le stéréotype renvoyé et les attentes qu’ils peuvent avoir envers la personne. Comme par exemple un homme amoureux qui souhaite des enfants avec quelqu’un qui est trans et ne peux pas répondre à son besoin. L’interlocuteur se sent trahit et cela peut se manifester par un rejet violent, laissant la personne trans dans un mal-être très dur, qui sera vu comme illégitime, car elle n’a pas cherché à nuire. Attentes et déception sont les deux faces d’une même pièce.

Pour moi, la lutte importante que je souhaite mener, c’est celle contre les stéréotypes de genre. Un homme qui s’habille en mini-jupe et se maquille à outrance n’est à mon sens pas plus une femme, parce que je n’estime pas que ce stéréotype issu de playboy soit révélateur de ce qu’est une femme. Cette construction sur ce qu’est / doit faire / ne doit pas faire / doit porter une femme / un homme est un vrai problème.
Je revendique le droit aux hommes de porter des jupes et des talons, de se maquiller (merci la Corée lol) et de s’épiler, sans être catégorisés « efféminées ».
Être un homme ou une femme, ça n’est pas un trait de personnalité. C’est une information médicale.
Permalien

Re: Antichesse et Lou sur le débat de l’accès aux toilettes - OpenNews - Antichesse

26 janvier 2021 à 12:40

Petite anecdote marrante pour vous : les triple toilettes existent déjà.

Les troisièmes sont réservées aux personnes handicapées.

Merci d’avoir considéré qu’ils sont des sous-humains, ils doivent être ravis.
Ce sont des toilettes aménagés et adaptés pour leurs besoins personnels, et je pense qu’ils sont contents de voir qu’on a pensé à eux.

Tout est question de point de vue, et refuser celui des autres est tout aussi détestable que de se voir refuser sa propre opinion.

Et oui, j’attend toujours qu’on m’explique ce que signifie « se sentir femme », je connais assez de femmes (j’en suis une), pour bien me rendre compte que nous sommes toutes hyper différentes, avec des valeurs différentes.
Une femme qui ne porte pas de talons est-elle moins une femme ?
Un homme qui porte des talons est-il moins un homme ?
Une femme qui n’est pas douce est-elle moins une femme ?
Un homme qui est doux est-il moins un homme ?
Une femme qui aime les femmes est-elle moins une femme ?
Un homme qui aime les hommes est-il moins un homme ?

Je ne comprend pas la phrase « je me sens femme » parce que je suis une femme et que je ne considère pas les stéréotypes de genre comme rendant les personnes moins homme ou femme.

Je constate un problème au niveau de l’éducation genrée des enfants, du bleu et du rose, des jeux infirmières ou médecins selon le genre, qui orientent des choix de vie.

Mais tu peux être la plus queer des queer, aimer les robes et les talons, te maquiller plus que moi, je ne t'enlèverai jamais ton droit à être un homme car je considère que tes préférences de consommation ne sont pas importantes. Tu restes un homme qui a droit de consommer comme il l’entend. Ne te considère pas « femme » parce que tu consommes des attributs « réservés » à l’autre genre.
Refuser ce que l’on est au prétexte que l’on a pas de droit de consommer ce que l’on veut, qu’elle violence...
Après si le souhait d’un changement de sexe est exprimé, que la personne est majeure et avertie, cela devrait être libre à chacun (et ça l’est). Mais j’espère que ça n’est pas motivé par des raisons de consumérisme. Vous avez le droit de consommer ce que vous voulez.
Permalien

Etats-Unis : Un algorithme raciste a privé des patients noirs d’une greffe de rein dont ils avaient besoin - Choses vues, sur le web et ailleurs - Antichesse (o ^ω^ o) - Les petits liens de Lou - Antichesse

12 décembre 2020 à 09:18

Je rattrape ma lecture en retard...

J’ai lu la série de posts sur ce problème, que je comprend parfaitement, quand on bosse dans un SI on est surpris de constater à quel point certains devs ou même leur management peuvent s’en b~ l~ c~ d’écrire des tests (étant moi même impliquée, je lutte pour le retour des tests mais personne n’est prêt à remettre en question son confort pour moi. Bande de s~ xD), donc je ne serai pas surprise que cet algo n’ait juste pas été testé ou alors qu’avec uniquement un ou deux voire trois cas nominaux par un QA de bonne volonté :

  • personne âgée qui a un rein défaillant
  • enfant de 8 ans avec un cœur malade
  • personne d’âge moyen mais fumeur

D’ailleurs si aucune couleur de peau n’est définie, quelle valeur prendra cette variable par défaut ? Est-ce vraiment la couleur de peau ou l’ethnie qui est indiquée ?
On pourrait me dire que ce genre d’information ne devrait pas être prise en compte, et honnêtement je n’en sais rien, je ne suis pas médecin. Je suppose qu’en fonction des ethnies, les risques de maladies génétiques ne sont pas les mêmes, et que cette information doit avoir un intérêt, mais très honnêtement je n’en ai aucune certitude, donc je ne vais pas partir dans le procès d’intention, et juste partir du constat que ça existe.

Bref, il serait intéressant de voir comment est foutu le logiciel ! Si c’est un réseau de neurones derrière, alors les gens vont être déçus, c’est le jeu de données étalon en entrée qui a influencé les résultats futurs. Pas de volonté perverse derrière cela. Vu que le réseau de neurones décide tout seul des critères d’affectation, et qu’on a aucun moyen de vérifier les critères qu’il a choisi, il a peut être fait un lien direct implicite noir -> pauvre -> mauvais candidat, puisque les données en entrée l’ont conduit à se calibrer de cette manière (les personnes noires de son jeu de données d’entrée ont été refusés à 80% par exemple - après il faut voir pourquoi, mais ça l’IA s’en moque). Si en plus l’IA a mis en relation pauvre -> drogue ou pauvre -> obésité, alors là c’est mort, t’es foutu.
L’IA n’est pas prête à décider en autonomie sans une revue par un être humain.

Néanmoins je voudrais rajouter un autre point, qui me semble important et qui me dérange dans vos échange avec Lou.
Vous passez votre temps à parler des États-Unis d’Amérique comme si les choses se passaient là-bas comme en France. La lutte des classes est une histoire typiquement Française et la lutte raciale appartient aux E-U. N’apportez pas l’un chez l’autre.
J’ai regardé quelques vidéos d’expatriés noirs américains en France pour voir leur avis, à eux, concernant le traitement des personnes de couleurs.

APARTÉ un peu troll : d’ailleurs je rappelle ce bel effort des universités américaines, qui ont classé les ethnies et considèrent que les ressortissants maghrébins, les personnes des Émirats Arabes Unis, et les asiatiques sont blancs (moi ça ne me dérange pas, à voir ce que pensent les concernes, se sentent-ils privilégiés ?). D’ailleurs les espagnols et les portugais sont blancs aussi, mais les mexicains sont latinos... MAIS ARRÊTEZ DE CLASSER LES GENS BON SANG ! Ça n’a aucun sens...
Source : un serbe sur YouTube xD https://m.youtube.com/watch?v=0c4cf6JkSnc

Bref, je reviens aux témoignages des personnes noires Américaines à Paris. Je retiens plusieurs choses :

  • Aux US le sentiment communautaire noir est très développé (ils se saluent dans la rue sans se connaître par exemple)

  • À Paris, ils n’ont pas réussi à créer des groupes de rencontres dédiés aux personnes noires, personne n’était intéressé (pourquoi ? Apparemment parce que les personnes noires en France viennent de beaucoup d’endroit, Gabon, Sénégal, ... et ne se sentent pas proches les uns des autres, là ou, aux US, l’immigration noire est moins facile du fait de la distance. Les noirs américains sont souvent issus d’une même histoire)

  • Aux US, les personnes restent énormément entre communauté. La personne de la vidéo (que j’ai mis ci-dessous pour référence) dit même que les noirs Américains se sont « self-segregated » (ségrégués eux-mêmes)

  • À Paris, les expatriés noirs ont eu le sentiment d’être égaux aux autres personnes, et même, les petites attentions communautaires leur ont un peu manqué (je comprend c’est chouette d’appartenir à une famille)

Bref l’une des vidéo que j’ai trouvé intéressante sur le sujet, et que je vous partage :
https://m.youtube.com/watch?v=HNiWNfzP1sw

Donc je comprend le souhait de se rattacher à quelque chose que l’on connaît mais :

  • les personnes noires en France ne sont pas de la même origine que les noirs Américains et il y a de fortes chances que leurs soucis à eux soient liés à la pauvreté.
  • les personnes noires aux US sont dans des communautés actives, et ils y a des fortes chances que les problèmes de ségrégation là-bas soient différent du contexte français.

Donc je pense qu’il serait intéressant d’éviter de ramener les problèmes américains en France et les problèmes France aux US (de toutes façons, la plupart des américains ne savent même pas que l’on existe, sauf pour les marques de luxe).

Prenez soin de vous, et mangez des légumes !
Permalien

How to generate keystore and truststore

4 décembre 2020 à 14:14

Allez on le note, on sait jamais...

1.Generate keystore(At server):

keytool -genkey -alias bmc -keyalg RSA -keystore KeyStore.jks -keysize 2048

2.Generate new ca-cert and ca-key:

openssl req -new -x509 -keyout ca-key -out ca-cert

3.Extracting cert/creating cert sign req(csr):

keytool -keystore KeyStore.jks -alias bmc -certreq -file cert-file

4.Sign the “cert-file” and cert-signed wil be the new cert:

openssl x509 -req -CA ca-cert -CAkey ca-key -in cert-file -out cert-signed -days 365 -CAcreateserial -passin pass:yourpass

5.importing the ca-cert to keystore file:

keytool -keystore KeyStore.jks -alias CARoot -import -file ca-cert

6.import cert-signed to keystore:

keytool -keystore KeyStore.jks -alias bmc -import -file cert-signed

7.Copy ca-cert into client machine and generate truststore: (At client)

keytool -keystore truststore.jks -alias bmc -import -file ca-cert

8.Copy ca-cert into client machine and generate truststore: (At server)

keytool -keystore truststore.jks -alias bmc -import -file ca-cert-c

Permalien

Note: Réussir à surcharger la configuration Spring Boot

28 août 2020 à 13:48

Moi ce que je voudrais, c'est pouvoir définir MES valeurs par défaut pour mon application Spring-Boot, que je pourrais surcharger avec un fichier properties.

Donc, je veux surcharger programmatiquement les valeurs par défault de Spring-Boot, et quand même permettre la surcharge par fichier. Dans l'idée, ça marche :

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.core.env.Environment;
import org.springframework.core.env.PropertiesPropertySource;

import java.util.Properties;

@Configuration
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = true)
public class DatabaseConfiguration {

    private static final Logger LOGGER = LoggerFactory.getLogger(DatabaseConfiguration.class.getCanonicalName());

    public static final String DATABASE_URL = "jdbc:h2:./db/dbfile;MODE=MySQL;";
    public static final String DATABASE_USER = "sa";
    public static final String DATABASE_DRIVER = "org.h2.Driver";
    public static final String DATABASE_SCHEMA = "PUBLIC";

    @Autowired
    private Environment env;

    @Value("${spring.datasource.url:}") // Defaulted with empty value
    private String databaseUrl;

    @Value("${spring.datasource.username:}") // Defaulted with empty value
    private String databaseUser;

    @Value("${spring.datasource.password:}") // Defaulted with empty value
    private String databasePassword;

    @Value("${spring.datasource.driver-class-name:}") // Defaulted with empty value
    private String databaseDriver;

    @Value("${spring.datasource.schema:}") // Defaulted with empty value
    private String databaseSchema;

    private void overrideProperty(String name, String currentValue, String defaultValue) {
        if (currentValue == null || currentValue.isEmpty()) {
            currentValue = defaultValue;

            ConfigurableEnvironment configurableEnvironment = (ConfigurableEnvironment) this.env;
            PropertiesPropertySource propertySource = (PropertiesPropertySource) configurableEnvironment.getPropertySources().get("myProps");
            Properties myProperties = new Properties();
            if (propertySource != null) {
                for (String propertyName : propertySource.getPropertyNames()) {
                    myProperties.put(propertyName, propertySource.getProperty(propertyName));
                }
            }
            myProperties.put(name, currentValue);
            configurableEnvironment.getPropertySources().addFirst(new PropertiesPropertySource("myProps", myProperties));
            System.out.println("Property " + name + " not found and defaulted to => " + currentValue);
        } else {
            System.out.println("Property unchanged " + name + " => " + currentValue);
        }
    }

    /**
     * I swear to you, I tried to override configuration !!!
     */
    @Bean
    public void defaultConfiguration() {
        this.overrideProperty("spring.datasource.url", this.databaseUrl, DATABASE_URL);
        this.overrideProperty("spring.datasource.jdbc-url", this.databaseUrl, DATABASE_URL);
        this.overrideProperty("spring.datasource.user", this.databaseUser, DATABASE_USER);
        this.overrideProperty("spring.datasource.driver-class-name", this.databaseDriver, DATABASE_DRIVER);
        this.overrideProperty("spring.datasource.schema", this.databaseSchema, DATABASE_SCHEMA);
    }
}

Mais mon script s'exécute après la création de la DataSource et pas moyen de l'exécuter avant tout le reste T__T

Faut je creuse encore...
Permalien

Note: jenkins - Add a parameters live from a shared lib

3 août 2020 à 13:16

In a Groovy class:


private final Script script;

public MyClass(Script script) {
    this.script = script;
}

public myMethod() {
    this.script.env.test = "prout"
    this.script.println(this.script.env.test)

    this.script.properties([
       this.script.parameters([
            this.script.string(defaultValue: "${MY_VALUE}", description: 'the value', name: "${the_name}", trim: true),
            this.script.password(defaultValue: "${MY_PASSWORD}", description: 'the password', name: "${the_password}", trim: true)
        ])
    ])
}

In the pipeline:

stage('My Stage') {
    steps {
        script {
            MyClass toto = MyClass(this);
           toto.myMethod();
        }
    }
}

Permalien

Note: Jenkins - Ansible : Une ligne pour pinger une VM

26 mai 2020 à 15:55

Le Jenkinsfile utilisé :

pipeline {

    agent {
        node { label 'With-Ansible' }
    }

    environment {
        VM_CREDENTIALS = credentials('my-vm-credentials')
        VM_USER = "${VM_CREDENTIALS_USR}"
        VM_KEY = "${VM_CREDENTIALS_PSW}"

        HOST_NAME = "my-vm-host"
    }

    stages {

        stage('PING MACHINE') {
            steps {
                script {
                    println " ========== PING ${HOST_NAME} ========== "
                    sh "ansible all -i ${HOST_NAME}, -m ping -u ${VM_USER} --extra-vars=\"ansible_ssh_pass=${VM_KEY} ansible_connection=ssh ansible_port='22' ansible_ssh_common_args='-o StrictHostKeyChecking=no'\""
                }
            }
        }

    }

}

Il faut laisser la virgule :)
Permalien

Huffpost - Coronavirus: À Paris, la police évacue l'esplanade des Invalides bondée

21 mai 2020 à 08:16

Y a-t-il vraiment des gens qui s’indignent du fait que les parcs - attendez on m’indique que c’est le seul parc ouvert à paris - donc que le seul parc de Paris accessible soit blindé de monde ?

Je pose la question : avez vous dans votre entourage quelqu’un qui annonce changer de jeans toutes les semaines ? Nettoyer son costume toutes les semaines ? Garder les mêmes chaussettes deux jours de suite ?

Vous ne voyez pas le rapport ?

Et si maintenant je vous dit que que les masques de protection ne sont pas distribués aux français mais vendus par les supermarchés ?
J’ai vu une enseigne vendre les 5 masques 30€ (oui mais l’imprimé etait trop joli hin hin).

À ce prix, votre connaissance qui change peu de vêtement parce que « nan mais ça sent pas », il va en acheter combien, des masques ? Un ? Allez peut être deux...

Combien de fois par jour va-t-il changer de masque ? Combien de fois par semaine ? À quelle fréquence va-t-il les laver ?

Et puis il va aller travailler, au même endroit que vous, après avoir pris la ligne 13 du métro, qui est toujours bondée.

Quel est le plus risqué : être ensemble dans un parc sans masque ou serrés dans le métro avec des masques souillés ?
Pour moi c’est exactement pareil.

Déconfiner sans tester et sans distribuer de masques jetables, c’est accepter une forme de fatalité.
Quitte à porter le même masque tous les jours pour des raisons de coût, autant ne rien porter du tout.

Les gens sont libres d’aller travailler dans des conditions tout sauf sanitaire, mais pas libres d’être tassés dans un parc le week-end.

Je vous rappelle que Castaner n’a pas renvoyé ses enfants a l’école.
Encore un article pour diviser les français.
Permalien

Note: Exécution de code javascript dans une page Confluence

4 mai 2020 à 14:50

Hello,

Petite note, pour plus tard.
Supposons que je doive utiliser Confluence et que je veuille un module de vote... Et que cette macro ne soit pas disponible !

Comment faire ?

Dans votre page Confluence, rajoutez un composant "HTML" (macro). Si c'est du JS, bon mettez le à la fin de la page, si c'est du css, mettez-le au début (soyons propres).

Confluence propose JQuery. Il est accessible via le raccourci AJS.xxx.

Si vous avez besoin de stocker des variables, l'API REST Confluence (version > 5.5) permet de stocker des properties.
Attention cependant, les seuls types REST dispos sont GET, POST, DELETE. Pas de PUT, ce qui veut dire qu'à chaque changement, il faut faire un DELETE - POST !

Voici un exemple codé rapidement. Ma property à stocker s'appelle "election" :

    <ac:layout-cell>
      <ac:structured-macro ac:macro-id="33e368de-3e17-4323-908c-2bb1639febe3" ac:name="html" ac:schema-version="1">
        <ac:plain-text-body><![CDATA[
<script type="text/javascript">
AJS.toInit(function() {

    var votes= {"votesPourA": 0, "votesPourB": 0};

    function deleteElections() {
       jQuery.ajax({
          contentType: 'application/json',
          type: 'DELETE',
          url: contextPath + "/rest/api/content/" + AJS.params.contentId + "/property/elections",
          success: function(response) {
              updateVotes();
          },
          error: function(error) {
              if(error.status== 401 || error.status== 402 || error.status== 403) {
                  alert("you need to be connected in order to vote")
              }
          }
        });
    }

    function updateVotes() {
        jQuery.ajax({
          contentType: 'application/json',
          type: 'POST',
          url: contextPath + "/rest/api/content/" + AJS.params.contentId + "/property",
          data: "{ \"key\" : \"elections\", \"value\" : \""+ JSON.stringify(votes).replace(/"/g, '\\"') +"\" }",
          success: function(response) {
            retrieveVotes();
          },
          error: function(error) {
              if(error.status== 401 || error.status== 402 || error.status== 403) {
                  alert("you need to be connected in order to vote")
              }
          }
        });
    }  

     function retrieveVotes() {
        jQuery.ajax({
          contentType: 'application/json',
          type: 'GET',
          url: contextPath + "/rest/api/content/" + AJS.params.contentId + "/property/",
          success: function(response) {
             response.results.forEach(function (item, index) {
                if(item.key == "elections") {
            votes = JSON.parse(item.value);
                    AJS.$("#voteAspan").text(votes.votesPourA + ' votes');
                    AJS.$("#voteBspan").text('votes.votesPourB + ' votes');
        }
            });
          }
        });
    }  

    AJS.$("#votePourAButton").click(function() {
         votes.votesPourA = votes.votesPourA + 1;
         deleteElections();
    });

    AJS.$("#votePourBButton").click(function() {
         votes.votesPourB = votes.votesPourB + 1;
         deleteElections();
    });

    setTimeout(() => { retrieveVotes() }, 2000);  // This is because AJS.params.contentId property is not available immediatly.

 });
</script>
]]></ac:plain-text-body>
      </ac:structured-macro>
    </ac:layout-cell>

Permalien

Note: Nested Copy in Typescript - sans classe de serializer

27 avril 2020 à 10:55

Désérialiser des objets depuis le JSON vers des entités typées en Typescript est un besoin que l'on peut rencontrer n'importe quand.

Voici ce que je fais de mon côté, afin de pouvoir profiter pleinement des méthodes de mes objets.

Pour un objet simple, ceci suffit :

export class Identity {

    public name: string;
    public age: number;

    public constructor(init?: Partial<Identity>) {
        Object.assign(this, init); 
    }
}

Dès que l'on commence à avoir des collections, il faut ajouter un peu d'intelligence (on part du principe que la classe Adress aura un constructeur qui permet cette initialisation, voir dessous) :

export class Contact {

    public adresses: Address[];
    public phone: string;

    public constructor(init?: Partial<Contact >) {
        Object.assign(this, init); 
       if (init != null) {
            this.adresses= init.adresses== null ? [] : init.adresses.map(it => new Address(it));
        }
    }
}
export class Address{

    public city: string;

    public constructor(init?: Partial<Address>) {
        Object.assign(this, init); 
    }
}

Si on a des "nested objects", donc des classes qui ont d'autres classes en attribut, on fait comme ceci :

export class Person {

    public identity: Identity;
    public contact: Contact;

    public constructor(init?: Partial<Person>) {
        Object.assign(this, init); 
       if (init != null) {
            this.identity= init.identity== null ? null : new Identity(init.identity);
            this.contact= init.contact== null ? null : new Contact(init.contact);
        }
    }
}

Et enfin, comment on s'en sert - dans les grandes lignes (passke quand même, hein !):

return this.http.get(`/api/person/${personId}`)
            .toPromise()
            .then((response: any) => new Person(JSON.parse(response)) );

Permalien

Note: Liquibase - Mais pourquoi est-ce aussi plébiscité ?

24 avril 2020 à 13:18

Il y a des jours comme ça, dans notre existence, où l'on se prend à rêver à une autre vie... Et oui, aujourd'hui on m'a demandé de rédiger un tuto sur comment utiliser Liquibase. T_____T

Du coup, je vais noter ici tout ce que je trouve vraiment regrettable concernant cette techno :

  1. La documentation sur le site officiel est vraiment bâclée. Le "Get Started" ne donne même pas un "Hello World".
  2. La classe de base ne permet pas l'usage d'une DataSource existante directement
  3. La documentation officielle encourage les développeurs à écrire leurs scripts de migration de base en XML. Quand je lis ceci :
    <changeSet id="1" author="bob">
    <createTable tableName="testTable">
    <rollback>
        <dropTable tableName="testTable"/>
    </rollback>
    </changeSet>

    Je me demande tout de suite, et si jamais je dois lancer mes scripts sans Liquibase ?

  4. Je mentionne rapidement la promesse du rollback qui ne vaut que si tu appliques des méthodes Crafts sur ta gestion de base, et dans ce cas, ils ne servent plus à rien (que fait-on si le script de rollback plante ? Comment fait-on un rollback d'un drop de données ?).
  5. Le XML, bon sang, LE XML ! Mais pourquoi ?! (référence : DOOOOOOOM ! MOTHERFUCKING DOOM !)

J'agrandirai la liste avec mes nouvelles remarques. En attendant je recommande Flyway <3
Permalien

❌
❌