#javascript-typescript

1 messages · Page 36 of 1

weary torrent
#

Et un avantage majeur que je trouve à Tailwind, c'est que les composants sont directement intégrés au projet et ne sont pas dans les node_modules, ce qui fait que tu peux les custom facilement, et tout le monde aura les mêmes modifs 👍

crisp ice
#

Bonjour, j'ai une question. J'ai un bot qui utilise MySQL. La commande fonctionne, mais il y a une commande qui ne saisit pas les informations dans la base de données, mais tout fonctionne. Ou une autre commande qui, lorsqu'on clique sur le bouton marche/arrêt, échoue, et ma base de données présente une latence, car mon bot envoie les journaux près de 30 minutes plus tard.

N'hésitez pas à me contacter si vous pouvez m'aider.

tired ice
crisp ice
tired ice
#

Au lieu de faire ça :

await bot.db.query('INSERT INTO blacklist_user (userid, raison, moderateur) VALUES (?, ?, ?)', [userId, raison, moderateurId]);

Pourquoi tu fais pas ça :

await bot.db.query(`INSERT INTO blacklist_user (userid, raison, moderateur) VALUES (${userId}, ${raison}, ${moderateurId})`);
#

Après regarde si ta db et tes tables on le bon nom

#

et regarde avec tes logs, est ce que le code s'arrête

#

pour voir où est ce que ça bloque

plucky nymph
#

Enfin ce qui est sûr, c’est que la latence n’est pas causée par le fait que ce soit une requête préparée, c’est plutôt rare

tired ice
#

Tu as quoi comme db ?

plucky nymph
dire latch
#

@crisp iceTu as régler ton soucis ?

crisp ice
#

j'arrive pas

dire latch
crisp ice
# tired ice Au lieu de faire ça : ```js await bot.db.query('INSERT INTO blacklist_user (user...

j'ai sa mon loaddatabase

const config = require('../config.json');
const axios = require('axios'); // Assurez-vous que axios est installé

module.exports = (bot) => {
  const db = mysql.createConnection({
    host: config.BDD.host,
    port: config.BDD.port,
    user: config.BDD.user,
    password: config.BDD.password,
    database: config.BDD.database,
    charset: config.BDD.charset,
  });

  // Fonction pour vérifier la connexion à la base de données
  const checkDBConnection = () => {
    db.ping((err) => {
      if (err) {
        console.log("[DB] - Échec de la connexion à la base de données", err);
        
        // Envoie d'un message au webhook Discord si la connexion échoue
        axios.post('https://discord.com/api/webhooks/1342470136753426555/', {
          content: '@niniraya La connexion à la base de données a échoué !',
        })
        .then(() => console.log("[DB] - Webhook envoyé à Discord"))
        .catch((error) => console.log("[DB] - Erreur lors de l'envoi du Webhook", error));
      } else {
        console.log("[DB] - Requête envoyée: ping");
        console.log("[R] - Réponse: Réussi (connexion toujours active)");
      }
    });
  };

  // Lancer la vérification toutes les 30 secondes
setInterval(checkDBConnection, 300000); // 300 000 ms = 5 minutes

  return db;
};```
crisp ice
#

dans tout mes autre commande ou il le faut et dans mon loaddatabase

dire latch
#

Ok

#

La table est créer ?

#

Ta essayés de console.log ?

crisp ice
#

table créer

#

tout

#

ya aussi une autre commande qui bugs enft je crois ya un blem de db mais je comprend pas quoi

dire latch
#

Ta connexion qui doit pas être bon 🤔

crisp ice
autumn tendon
crisp ice
dire latch
autumn tendon
crisp ice
#

"Bonjour, j'ai une question. J'ai un bot qui utilise MySQL. La commande fonctionne, mais il y a une commande qui ne saisit pas les informations dans la base de données, mais tout fonctionne. Ou une autre commande qui, lorsqu'on clique sur le bouton marche/arrêt, échoue, et ma base de données présente une latence, car mon bot envoie les journaux près de 30 minutes plus tard.

N'hésitez pas à me contacter si vous pouvez m'aider."

autumn tendon
crisp ice
#

oui

#

bien sur

keen narwhal
#

Déjà, qu'est-ce qui se passe quand tu lances ta commande ? Tu dis qu'il y a un bug, mais précisément, qu'est-ce qui est supposé se passer et qu'est-ce qui arrive ?

torn fog
#

@crisp ice Tu peux faire ça pour avoir les retours d'erreurs des commandes MySql, ça te donnera des meilleurs pistes


await bot.db.query(
                        "INSERT INTO blacklist_serveur (serveurid, raison, moderateurid) VALUES (?, ?, ?)",
                        [serveurId, raison, moderateurId], (err,res) => {
                            if (err) {
                                console.error(err)
                                return;
                            }
                        }
                    );

dire latch
ocean bluff
dire latch
plucky nymph
crisp ice
# ocean bluff utilise sqlite3

Je vais déjà essayer sa solution car sa me fait chier tout de même de refaire mes codes entier mais après si j'ai pas le choix

plucky nymph
#

Tu n’as pas réussi à résoudre ton problème ?

crisp ice
keen narwhal
ocean bluff
keen narwhal
#

Écrit les données sur papier et envoie les par courrier à ceux qui les demandes

plucky nymph
marble tartan
#

mémorise

keen narwhal
#

L'administration Française pendant beaucoup trop de temps :

keen narwhal
#

Sinon, tu as réussi à régler ton soucis ?

feral oyster
plucky nymph
feral oyster
#

nan c'est bon merci

weary torrent
#

Carré mdr

pure tiger
#

normalement quand tu build ton app pour la prod ce message n'apparait plus

plush lava
#

ui

plucky nymph
#

Principe d’un devtool notlikethis

humble dirge
#

👋 Bonsoir je viens de rejoindre le discord.
J'ai 36 ans et suis formé en tant que Concepteur Développeur d'Applications Mobile/Desktop depuis 2 semaines.
Auriez vous des "cheat sheet" en fr, et tout autres choses qui pourraient m'être utile en JS et algorithmie ?

plucky nymph
humble dirge
#

@plucky nymph Merci bien 🙏 je vais aller checker ça 🙂

plush lava
humble dirge
#

Sympa et clair sans avoir 50 lignes de commentaires entre les codes 🙂

humble dirge
#

Si vous avez un site avec des exercices qui permettent d'évoluer échelons par échalons de manière pédagogue je suis prenneur aussi 😅
Les cours sont assez condensés, le temps que j'ai en dehors des cours je le consacre quasi qu'au code car j'aime et suis plus que motivé.

torn fog
#

@humble dirge tu peux t'amuser à faire du codingame

humble dirge
# torn fog <@662976077509165108> tu peux t'amuser à faire du codingame

J'ai était faire un petit tour oui, encore du mal en quasi 2 semaines d'avoir l'entièreté de la logique de programmation et l'algorithmie mais j'avoue le site est super, j'ai réussi quelques petits exos débutant en Py et JS.
Le fait de ne pas assimiler et bien maitriser rapidement est "frustrant" pour ma part, un collègue dev-web m'as dit qu'il me faudrais 1 mois vois 2 pour etre vraiment à l'aise à se niveau la, car la syntaxe ne me pose pas spécialement probleme en elle même.

#

En tout cas merci pour vos conseils c'est sympa de votre part 🙂 🙏

glass cargo
humble dirge
#

Bonsoir, quelqu'un saurais m'aider ou m'aiguiller ?
J'ai un exercice de calculatrice NPI en JS, je suis quasi au resultat voulu mais je bloque 😕

humble dirge
fresh stag
#

Salut, j'aimerais avoir un avis : j'utilise fetch pour upload des images et des sons, mais j'aimerais avoir un système de progress bar pour afficher le pourcentage de l'upload. D'après ce que j'ai compris, il y a une méthode avec XMLHttpRequest qui permet de faire ça assez simplement, mais j'ai cru comprendre que ce n'est plus trop utilisé. J'aimerais donc savoir quelle fonction vous auriez utilisée à ma place et pourquoi.

(J'utilise aucun framework sur ce projet c'est full natif)

compact shoal
#

Hey salut j'ai une question la partie à la suite du commentaire // Redirection vers une autre page après connexion devrait renvoyer sur la page mais il ne se passe rien (si vous voulez j'ai aussi le code des autres systèmes) ```// Gestion de l'état de connexion
onAuthStateChanged(auth, async (user) => {
const userInfo = document.getElementById("user-info");
const profileImg = document.getElementById("profile-img");

if (user) {
    const userDoc = await getDoc(doc(db, "users", user.uid));
    if (userDoc.exists()) {
        const data = userDoc.data();
        userInfo.textContent = `Connecté en tant que : ${data.pseudo}`;
        if (data.photoURL) {
            profileImg.src = data.photoURL;
            profileImg.style.display = "block";
        } else {
            profileImg.style.display = "none";
        }
    } else {
        userInfo.textContent = `Connecté en tant que : ${user.email}`;
        profileImg.style.display = "none";
    }
    
    // Redirection vers une autre page après connexion
    window.location.href = "/nouvelle-page.html";
    document.getElementById("logoutBtn").style.display = "block";
} else {
    userInfo.textContent = "Pas connecté";
    profileImg.style.display = "none";
    document.getElementById("logoutBtn").style.display = "none";
}

});

fierce grotto
#

ton windows href devrait être juste après le (document.getElementById("logoutBtn").style.display = "block";) une fois que toutes les informations liées à l'utilisateur sont bien mises à jour

compact shoal
compact shoal
#

Okk

fierce grotto
compact shoal
frail dove
#

avec les css tu dois faire une DIV avec lequel tu mets une position fixe et tu mets aux deux éléments width: 100%; height: 100%;

tired ice
#

Yo les gars, je dev actuellement un bot discord et je voulais savoir, comment on fait pour « voir » les SKU

#

J’y arrive mais que pour les abonnement

toxic glen
#

quelq'un aurait des petit exo pour s'entrainer sur react (niveau débutant)

half oracle
#

tu display un 0, et avec un bouton tu augmente de 1 en 1 à chaque clic

#

ensuite tu fais un bouton pour 10 en 10

#

ensuite pour 100 en 100

#

ensuite dans le négatif

#

-1 / -10 / -100

#

et ensuite tu fais une calculatrice

#

un bouton pour reset le compteur aussi

pure tiger
plush lava
#

"n utilisant l'ia sa a fini come sa" ben tu sais pourquoi du coup mdr

mossy belfry
#

non c'est vrai j'ai abusé

#

premier degres j'ecris pas comme sa

#

de

#

base

#

ptn

#

la

#

d

#

je viens de faire

sleek lava
#

qui pourrais maider a installer atm10 sur mon pterodactyl svp

queen ocean
mossy belfry
#

Pls

mossy belfry
#

je de vun bot gestions

#

et sa fait 3 jours j'ai sa

#

j'ai cette erreur quand je clique sur les interaction

glass cargo
mossy belfry
#

c'est quoi votre pb

#

j'ai tenté la premiere fois sa ma fait la même car j'ai fait une fautes de frappes

glass cargo
#

C'est juste une blague pas la peine de s'énerver

mossy belfry
#

bref aider moi pls

glass cargo
#

Et l'erreur que tu as signifie que l'interaction a déjà été gérée

mossy belfry
glass cargo
#

Plusieurs raisons pour laquelle cette erreur survient :

  • Le bot a été lancé plusieurs fois
  • Quelque part dans ton code tu repond/followUp l'interaction
mossy belfry
glass cargo
#

N'importe où en fait

mossy belfry
#

ouais dans tout les cas, je devrais pas le mettre

glass cargo
#

Non c'est pas ce que j'ai dis

mossy belfry
#

et ducoup non je n'est pas de Followup

glass cargo
#

Je pense savoir d'où vient l'erreur

mossy belfry
glass cargo
#

interaction.update(...) = Modifier la réponse de l'interaction
interaction.message.edit(...) = modifier le message sur lequel se trouve le bouton

mossy belfry
#

ouais j'ai bien l'uptade

#

je vais le changer avec le interaction.message.edit(...)

glass cargo
#

Et après tu dois marqué l'interaction comme "gérée" avec un await interaction.deferUpdate()

mossy belfry
#

donc await interaction.deferUptade() dans mon collect et le interaction.message.edit(...)

#

mais j'ai encore une erreur

#
      throw new DiscordAPIError(data, "code" in data ? data.code : data.error, status, method, url, requestData);
            ^

DiscordAPIError[10062]: Unknown interaction
    at handleErrors (C:\Users\matja\Desktop\node_modules\@discordjs\rest\dist\index.js:727:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async BurstHandler.runRequest (C:\Users\matja\Desktop\node_modules\@discordjs\rest\dist\index.js:831:23)
    at async _REST.request (C:\Users\matja\Desktop\node_modules\@discordjs\rest\dist\index.js:1272:22)
    at async ButtonInteraction.reply (C:\Users\matja\Desktop\node_modules\discord.js\src\structures\interfaces\InteractionResponses.js:194:22) {
  requestBody: {
    files: [],
    json: {
      type: 4,
      data: {
        content: '❌ Erreur : bouton inconnu.',
        tts: false,
        nonce: undefined,
        enforce_nonce: false,
        embeds: undefined,
        components: undefined,
        username: undefined,
        avatar_url: undefined,
        allowed_mentions: undefined,
        flags: 64,
        message_reference: undefined,
        attachments: undefined,
        sticker_ids: undefined,
        thread_name: undefined,
        applied_tags: undefined,
        poll: undefined
      }
    }
  },
  rawError: { message: 'Unknown interaction', code: 10062 },
  code: 10062,
  status: 404,
  method: 'POST',
  url: 'https://discord.com/api/v10/interactions/1363088851316375562/aW50ZXJhY3Rpb246MTM2MzA4ODg1MTMxNjM3NTU2MjpNalZtSXY4RXJpWTB1aTk5SlM2RW5SRGlEZkk5SDB6SVV5ZzZRQXlhTU5HTTl2SGQ0Y0dIc2xwR1dHTnpIQmhzdkJ1a3c4bFFFTm05dG5VMDFjRjc0ODljZlVnMG1ZVmQzYlZmZ280aGlOWVF1NUkyRVNveDc3TTVidDZhY1E0Zg/callback?with_response=false'
}

Node.js v22.2.0
PS C:\Users\matja\Desktop\DEV\glout> 
#

@glass cargo

glass cargo
#

Ton "Erreur bouton inconnu" là, il vient d'où ?

mossy belfry
glass cargo
#

Pourtant ça vient bien de quelque part kapp

mossy belfry
#

au début je pensais que il y avait un autre fichier avec le même name de commands, car je fais des backup ducoup

mossy belfry
#

pourtant même en recherchant sa trouve rien

glass cargo
#

Dcp faut que tu trouves d'où ça vient et que tu fasse en sorte qu'il arrête d'essayer d'envoyer ce message

glass cargo
mossy belfry
# glass cargo ¯\_(ツ)_/¯

mon collect il est bon on est daccord ?

                collector.on('collect', async (interaction) => {
                    if (interaction.user.id !== message.author.id) {
                        return interaction.reply({ content: 'Vous ne pouvez intéragir avec ce message', flags: 64 });
                    }
                
                    await interaction.deferUpdate();
                
                    if (interaction.customId === 'prev') {
                        currentPage = (currentPage - 1 + totalPages) % totalPages;
                    } else if (interaction.customId === 'next') {
                        currentPage = (currentPage + 1) % totalPages;
                    }
                
                    await interaction.message.edit({ embeds: [generateEmbed(currentPage)], components: [buttons] });
                });
glass cargo
#

Ouaip le collector est bon

mossy belfry
glass cargo
#

Regardes du ton côté de ton évènement interactionCreate, ça doit venir de là

mossy belfry
#

le fichier est fait

#

mais il y même pas une ligne

glass cargo
#

bah....

#

C'est ton code ?

mossy belfry
#

ducoup j'en fait un quand même ?

glass cargo
#

tu dois forcément en avoir un quelque part

#

sinon t'aurais pas cette erreur

mossy belfry
#

nop

#

j'en ai pas

formal vapor
#

Bonjour.
Vous aurez pas un code pour sécuriser un bot discord

glass cargo
#

Faudrait changer de disque un jour

charred timber
plush lava
#

ptdrr

plush lava
#

Je pense pas que tu puisse nativement, quelqu'un avait ajouter des caractères invisibles il me semble pour corriger ce problème, mais ça risque de se casser encore + sur des écrans plus petits notamment les mobiles

#

PS: Les mentions ne fonctionnent pas dans un embed, je ne comprends pas ton raisonnement si celui-ci est de ping des membres avec un rôle spécifique @robust jay

robust jay
robust jay
#

C'est vraiment nul les embed en fait mdr

static valve
#

qui m'aide svp

#

🥺

edgy adder
#

sinon tu as des plugins dans vscode qui te permettent de plus afficher le warn

#

Tailwind CSS IntelliSense je crois

wet temple
static valve
lucid niche
static valve
iron monolith
#

Pourquoi mon image se retrouve dans ton bot Arendaz

#

j'y ai passé du temps

robust jay
#

Et j’ai bien précisé que ce n’était pas la mienne

iron monolith
robust jay
#

Pas ici effectivement, je pensais que le message était dans le screen

#

Vraiment désolé mais c’est simplement l’utilisation de l’URL et non l’utilisation de l’image

#

Sincèrement désolé pour l’utilisation de l’URL de l’image pour mes testes. J’aurai effectivement dû précisé la provenance de cette dernière. Cependant, je peux affirmer que la commande de mon bot /send_embed demande un URL modifiable au lancement de la commande et ce n’est pas une image intégrée dans le code du bot.
Pour te rassurer, c’est aussi pour un bot d’animation, pour annoncer les événements qui se déroulent chaque jours, donc aucun lien avec discord ou des services.

Si tu as besoin de quelque chose de supplémentaire pour appuyer mes paroles ou d’excuses additionnels, c’est avec plaisir car je sais que le travail fourni derrière doit être excessivement long et difficile

#

@iron monolith

iron monolith
olive iris
#

business is business

robust jay
#

Yes aucun soucis, je ne compte pas en utiliser, ça ne rentre pas dans le domaine du bot

#

Après, pour un autre serveur, peut être

#

Je t’en parlerai si besoin

lone lagoon
#

[BOT DISCORD]

Bonsoir j'ai un soucis avec mon bot discord j'ai fait un message quand les personne rejoint le serveur (guildMemberAdd.ts) (index.ts)

sauf que quand quelqu'un rejoint ça n'envoie pas le message dans le salon et je n'ai aucune erreur dans ma console

iron pebble
#

genre GatewayIntentBits.GuildMembers

safe zodiac
#

yes

lone lagoon
cerulean pond
lone lagoon
iron pebble
lone lagoon
iron pebble
#

Sa doit venir de ton bot

#

Il doit manquer des permissions

#

Sur ton serveur ou sur le discord portal dev

lone lagoon
lone lagoon
iron pebble
lone lagoon
timber sierra
#

C'est dur javascript ou pas ?

iron pebble
timber sierra
#

G jamais try

iron pebble
#

Simple et intuitif, je trouve. En plus, il y a énormément de tutos et d’aide de nos jours

iron pebble
#

Vite fais mais là je suis principalement sur du .js

timber sierra
iron pebble
#

Sa dépend mais je préfère java perso

timber sierra
iron pebble
# timber sierra Okk

Après sa dépend aussi l’utilisation que tu veux genre si tu veux faire des .exe des trucs automatique c’est mieux python 🐍

keen narwhal
#

ok

lone lagoon
timber sierra
#

Après javascript g jamais fais mais python c'est plus simple

keen narwhal
#

anyone got mac robolx hacks

iron pebble
iron pebble
#

Mais essaye de créer un fichier évent ou tu prend tout les évent de tes membre qui on rejoint ou quitter le serveur

#

Pour loger tes membres de join et leave dans un salon logs

#

Et si sa déjà sa ne marche pas alors il y a un problème dans tes codes

lone lagoon
#

en faite c'est bon c'est juste que j'avais oublier de mettre le nombre d'intents dans mon main.ts

iron pebble
#

Mdr 😂

noble mountain
#

Bonsoir bonsoir,

J'ai l'habitude de dév avec nextjs 14.1.4 et j'ai décidé de passer sur la dernière version avec turbopack et non webpack. J'ai une erreur avec ma route /api/auth/[...nextauth] qui me dit que concrètement j'ai des imports de headers, cookies et params alors que je n'ai rien dans mon route.ts :

import NextAuth, { NextAuthOptions } from 'next-auth'
import CredentialsProvider from 'next-auth/providers/credentials'
import { prisma } from '@/lib/prisma'
import { compare } from 'bcryptjs'

export const authOptions: NextAuthOptions = {
  providers: [
    CredentialsProvider({
      name: 'credentials',
      credentials: {
        email: { label: 'Email', type: 'email' },
        password: { label: 'Mot de passe', type: 'password' },
      },
      async authorize(credentials) {
        if (!credentials?.email || !credentials?.password) return null

        const user = await prisma.utilisateur.findUnique({
          where: { email: credentials.email },
        })

        if (!user) return null

        const isValid = await compare(credentials.password, user.motDePasse)
        if (!isValid) return null

        return {
          id: String(user.id),
          email: user.email,
          nom: user.nom,
          prenom: user.prenom,
          role: user.role,
        }
      },
    }),
  ],
  pages: {
    signIn: '/login',
  },
  callbacks: {
    async jwt({ token, user }) {
      if (user) {
        token.role = user.role
        token.id = user.id
      }
      return token
    },
    async session({ session, token }) {
      session.user.id = token.id
      session.user.role = token.role
      return session
    },
  },
  session: {
    strategy: 'jwt',
  },
  secret: process.env.NEXTAUTH_SECRET,
}

const handler = NextAuth(authOptions)
export { handler as GET, handler as POST }

Dites moi que je suis pas fou ? J'ai même modifier mon package.json pour contourner turbopack mais rien à faire '-' Une analyse statique trop stricte depuis la 15.3 de Next ?

midnight falcon
#

oi

iron pebble
#
import CredentialsProvider from 'next-auth/providers/credentials';
import { prisma } from '@/lib/prisma';
import { compare } from 'bcryptjs';

export const runtime = 'nodejs'; // Ajoutez cette ligne pour spécifier le runtime classique

export const authOptions: NextAuthOptions = {
  providers: [
    CredentialsProvider({
      name: 'credentials',
      credentials: {
        email: { label: 'Email', type: 'email' },
        password: { label: 'Mot de passe', type: 'password' },
      },
      async authorize(credentials) {
        if (!credentials?.email || !credentials?.password) return null;

        const user = await prisma.utilisateur.findUnique({
          where: { email: credentials.email },
        });

        if (!user) return null;

        const isValid = await compare(credentials.password, user.motDePasse);
        if (!isValid) return null;

        return {
          id: String(user.id),
          email: user.email,
          nom: user.nom,
          prenom: user.prenom,
          role: user.role,
        };
      },
    }),
  ],
  pages: {
    signIn: '/login',
  },
  callbacks: {
    async jwt({ token, user }) {
      if (user) {
        token.role = user.role;
        token.id = user.id;
      }
      return token;
    },
    async session({ session, token }) {
      session.user.id = token.id;
      session.user.role = token.role;
      return session;
    },
  },
  session: {
    strategy: 'jwt',
  },
  secret: process.env.NEXTAUTH_SECRET,
};

const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };```
serene tangle
# iron pebble essaye sa !

Hello, j'ai également un problème avec Next de pré-rendering. J'utilise un wrapper qui s'occupe de fetch côté serveur et ensuite je les transmet en côté client en théorie cela fonctionne bien en dev mais lors du build il n'arrive pas à pré-rendre les fetchs apparement ce serait un problème avec l'url relative cependant je n'arrive pas à voir les alternatives existantes en dehors de tout mettre en client. Si quelqu'un se sent demander moi les extraits certains sont un peu long pour les envoyés ici

young stream
#

...

serene tangle
noble mountain
serene tangle
noble mountain
#

Tu simules une URL absolue en locale pendant ton build, tu ajoutes un NEXT_PUBLIC_API_BASE_URL dans ton .env.local

serene tangle
#

Je peux t'envoyer les codes en p v pour que tu me donnes ton avis ? Car j'ai essayer une structure c'est peut être aussi en cause

noble mountain
#

Et tu modifies tes fetchs

#

Ou sinon tu mockes tes données

#

Mais sans code je peux pas t'aider plus la

serene tangle
noble mountain
#

Alors la

#

si ton localhost fonctionne pas même avec une URL absolue c'est chaud, c'est soit Next build ne lance pas le serveur API, getStaticProps ou ``getServerSideProps` tournent pendant le build sans accès au serveur lancé par next dev et pas de backend actif durant le build donc -> l'erreur fetch arrive

#

Mais la sincèrement, il faut du code

#

@serene tangle

#

J'ai vu ton code et si c'est logique que ça merde XD

#

En gros, tu utilises des fetchs directs vers /api/.... durant le build, via un wrapper serveur (BoardStatsWrapper), or pendant next build, le serveur d'API n'est pas lancé, donc localhost:3000/api/... ne répond pas

Même avec baseUrl = "http://localhost:3000", ça ne peut pas marcher à moinsde lancer le serveur en parallèle, ce qui n'est clairement pas la pratique recommandée pour ce pré-rendering

serene tangle
noble mountain
#

la solution pour moi c'est mocker tes données si process.env.NODE_ENV === "development" (propre et simple)

serene tangle
noble mountain
#

Exactement, si tu les mocks ce n'est pas tes vraies données mais le but c'est uniquement de pouvoir build localement sans que ça plante, la tu veux juste mock temporairement pendant le build local pour tester l'intégration ou voir ton rendu, en prod ce sera bien tes vraies données qui seront fetch

serene tangle
noble mountain
#

C'est ça, c'est soit tu mock tes données temporairement pendant le build (le plus simple en dev local) soit ouais comme tu dis, séparer ton API dans un serveur Node ou Express externe, qui tourne en parallèle et l'appeler via une URL absolue, ça marcherait même pendant le build car le serveur d'API serait déjà lancé. Mais franchement, pour du dev local juste pour tester le rendu, la première solution est 1000x plus simple et clean

serene tangle
noble mountain
#

Pas de soucis, après c'est mon avis, peut-être que d'autres quand ils verront les messages auront une meilleure solution mais ça me paraît la plus adaptée personnellement sur le papier

serene tangle
cerulean pond
serene tangle
serene tangle
noble mountain
#

Bonjour !

Petit problème avec Next, j'avais pas remarqué qu'en prod mon code faisait tout merder avec une erreur dans le build donc j'ai recommencé mon code qui est beaucoup plus propre, j'ai supprimé mon .next et tout pour effacer le cache mais rien à faire, il garde toujours l'ancien code en cache et j'arrive pas à m'en débarasser...

#

Si quelqu'un a une petite idée, je suis preneur

serene tangle
fierce grotto
#

🤣

#

donc si tu trouve sa m'intéresse

noble mountain
noble mountain
#

Tellement dépité que j’ai demandé à ChatGPT dans un espoir si grand mais pareil

keen narwhal
noble mountain
#

Il faut savoir que je l’ai repassé en Webpack car pas tout à fait à l’aise avec Turbopack pour le moment

noble mountain
#

Après généralement j’utilise très peu l’IA

#

Que en termes de gain de temps et encore

keen narwhal
#

Jdis pas qu'il est parfait mais bcp moins de restriction au niveau codage

#

Chatgpt est plus pour dans la vie de tout les jours

candid loom
#

Bonjour, comment se passe le travail ?

noble mountain
elder ether
#

MErci 🤙🏽

cedar cobalt
#

last time i have seen someone with gpt code i wanted to puke.

burnt dune
craggy smelt
#

gemini 2.5 pro est mieux

burnt dune
#

Perso je suis avec Copilot + Claude 3.7 et c'est un carry total

#

t'envoi toute ta codebase le bordel il s'arrête jamais

craggy smelt
#

github copilot perso au moins j'ai tout en un

burnt dune
craggy smelt
#

ta dis copilot

burnt dune
#

bah github copilot on se comprend

craggy smelt
#

non

burnt dune
#

je vais pas écrire des Word non plus

#

mdrr

craggy smelt
#

copilot c'est microsoft

#

fin bon

burnt dune
#

GitHub c'est MS aussi mtn

#

bref

#

Mais claude 3.7 est sur Visual Studio et ça c'est cool

#

mais le Github copilot est beaucoup plus en retard que sur le VSC

proven current
#

l'erreur : ✅ Connecté en tant que KRAKEN TIME#5862
Erreur lors de l'extraction de la musique : Error: Could not extract functions
at C:\Users\morga\Documents\Formation\botdiscord\discord-bot\node_modules\ytdl-core\lib\sig.js:20:11
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)

noble mountain
#

Tu auras moins de problème que ytdl-core-discord

proven current
noble mountain
# proven current ok merci j'essaie sa

Le problème c'est que Youtube change régulièrement sa façon d'encapsuler les vidéos donc par conséquence les extracteurs de ce type sont cassés

proven current
craggy smelt
#

lavalink >>

noble mountain
#

Aussi, ça fonctionne très bien

#

Je me rappelais plus du nom

craggy smelt
#

bien mieux que distube

proven current
silver charm
#

slt je fais un bot discord et je dois faire passer toute les valeur d'une colonne release_time dans cette condition : if (Date.now() >= releaseTime) et jsp comment faire du coup pour utiliser une boucle for comme ça vu que c'est dans une db

silver charm
#

et j'utilise mariadb sur debian

#

mais tkt depuis j'ai réglé le problème

timid arrow
#

Oh ok

spice warren
timid arrow
timid arrow
cobalt delta
#

Hello petite question savez-vous comment récupérer l'achat d'un membre via un bot (Boutique discord) pour envoyer un message et attribuer un rôle juste après ?

fierce grotto
glass cargo
#

Je confirme

#

@cobalt delta

fierce grotto
fierce grotto
#

Nn moi j'te parle du shop discord pas des shop serv

glass cargo
#

Ah att

#

Tu parles de ça ?

fierce grotto
#

Nn ça c'est le shop serv le shop discord c'est là où t'as les avatar deco

#

oui exactement

glass cargo
#

C'est pour ça que j'ai mal compris x)

#

Tu crois que c'est ça qu'il veut ? Parce que je vois pas trop l'intérêt thonk

fierce grotto
glass cargo
#

x)

cobalt delta
glass cargo
#

Voir le screenshot que j'ai envoyé plus haut

cobalt delta
#

Yes j'ai cru voir mais je vois pas comment le mettre en place

glass cargo
#

Tu utilises discordjs ?

cobalt delta
#

yes

glass cargo
cobalt delta
#

ah juste dans le main ?

glass cargo
#

Yep

glass cargo
cobalt delta
#

Parce que j'ai un dossier event je pensais qu'il fallait add direct là bas

glass cargo
#

Ah

cobalt delta
#

Oui x)

glass cargo
#

Ben si t'as un handler tu le mets là évidemment ^^

tired ice
tired ice
# glass cargo Je confirme

C'est bien pour les bots mais il me semble que c'est un évènement lorsque tu changes la description, le nom, etc, de ton objet pas si un membre l'achète

glass cargo
#

Regardes pour entitlementUpdate, t’as entitlement renewed

#

Donc ça correspond forcément à l’action de l’utilisateur

tired ice
#

dcp c'est automatique

glass cargo
#

entitlementCreate lorsque la personne s’abonne

tired ice
#

il me semble mais oui je vois ce que tu veux dire

#

Autant pour moi j'ai confondu avec un autre truc

compact shoal
#

Bonjour est-ce qu'il est possible pour un seul robot de modifier sa photo de profil et son nom de manière dynamique avec les serveur profile ?

glass cargo
compact shoal
#

GPT m'aurait donc menti

glass cargo
#

Tous les endpoints qui concernent les profils (que ça soit pour get ou update) sont réservés aux utilisateurs

#

Même si je suppose que c'est pas l'objectif

compact shoal
#

Vsi je désinstalle discord

glass cargo
#

Privacy ¯_(ツ)_/¯

frail dove
#

juste c'est quoi l'event pour détecter quand un membre boost ?

#

et celui quand un membre rejoint le serv ?

plush lava
#

Il n'y en a pas par défaut, il faut aller chercher dans l'event "raw" qui est un fourre tout

keen narwhal
#

C'est plutôt l'événement guildMemberUpdate

#

Relatant si son statut de booster évolue

#

Et pour l'événement se déclanchant "quand un membre rejoint le serveur"

#

C'est guildMemberAdd

frail dove
keen narwhal
# frail dove merci ^^

Ton lien d’invitation par rapport au serveur de dev n’est plus valide tu peux me l’envoyer stp ?

frail dove
#

c'est pour ça qu'il n'y a personne mdr 😂

#

ah

#

dcp je fais quoi mdrr

keen narwhal
cobalt delta
#

Hello ! Quelqu'un sais comment détecter un tag spécifique sur un membre pour lui attribuer un role en discord js ?

frail dove
frail dove
#

nelly.tools

cobalt delta
fleet remnant
# cobalt delta Yes

Pour le moment avec discordjs c'est pas possible mais je crois que tu peux faire ça avec l'api de discord

cobalt delta
#

Ah mince

#

J'ai pas trouvé sur la doc

fleet remnant
#

Ah bah non c'est pas encore exposé

cobalt delta
#

Je vais check sur discord dev

serene tangle
#

Salut à tous, j'ai un problème que je n'arrive pas à identifier sur mon projet next en particulier sur les routes avec un paramètre. Les paramètres ne sont généralement pas asynchrone sauf que si je les éxécutes de manière synchrone j'ai une erreur : ``` Error: Route "/api/dashboard/cards-board/unvalid/[id]" used params.id. params should be awaited before using its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis
at PUT (src\app\api\dashboard\cards-board\unvalid[id]\route.ts:9:27)
7 | ): Promise<NextResponse<{ success: boolean } | { error: string }>> {
8 | try {

9 | const id_card = params.id;et si je le met en awaitUnexpected error: TypeError: Cannot read properties of undefined (reading 'id')
at PUT (src\app\api\dashboard\cards-board\valid[id]\route.ts:9:27)
7 | try {
8 | const params = await context.params;
9 | const id_card = params.id;
| ^ ```

#

Si quelqu'un peut m'aider à démystifier ce problème ca m'aiderait beaucoup, merci

#

(précision en synchrone ca fonctionne mais toujours l'erreur)

serene tangle
serene tangle
dapper wedge
#

Yoo tout le mondee

#

j'aimerai ajouter l select menu sur le contenaire mais j'arrive pas

noble mountain
serene tangle
noble mountain
#

ah nan mais att pardon

#

C'est const { id } = await context.params;

#

et il faut bien que tu laisses Promise<{ id: string }>

analog yew
#

HELLO

#

J'ai un problème

#

j'aimerais transmettre un champ qui a été mis à jour dans mon composant père à mon composant fiche, pour que le composant fiche l'affiche, en react

#

comment peut on faire ça ?

#

l'équivalent en angular ce serait @Input()

#

mais y a pas ça en react 🙃

#
return (
    <section>
    <div class="field">
      <label class="label">Titre de film</label>
      <div class="control">
        <input class="input" type="text" placeholder="Choisissez votre film" onChange={handleSetMovie}/>
      </div>
    </div>

    <span>
        la taille de found movies de search : {foundMovies.length}
        </span>


//ICIIIIII
    <ListOfMovieCards
    listMovies={foundMovies}

    />


    </section>

    );
#

le code en question

#

enfin la partie qui pose problème

#

(notifiez moi si vous répondez, sinon je vois pas les réponses.)

analog yew
#

je te dis si ça me débloque

analog yew
analog yew
#

ça fonctionne, merci encore 🙌

plush lava
#

hello, quelqu'un connait un framework qui supporte les components v2 fonctionnant sous discordjs?

glass cargo
#

Mais discordjs support les components v2 meh

plush lava
glass cargo
#

Par framework, tu veux dire un truc comme sapphire ?

normal lichen
#

Hello hello, je vois que sa parle de components v2 discord, je n'ai absolument pas suivit les nouveautés, c'est quoi qui change concrètement ? tout ou simplement la façon dont ils sont créer et gérer ?

queen ocean
#

C’est le résumé rapide mdr

normal lichen
#

C'est à dire mettre un bouton directement dans le corps de l'embed a la place de a la suite ? c'est cool comme ajout ! La maniere de créer un components a changer du coup ou c'est toujours les mêmes builder ?

queen ocean
queen ocean
normal lichen
#

parfait merci je regarderais a tout sa !

solemn cloak
#

J’ai besoin d’aide

#

Qui est disponible pour en discuter ?

noble mountain
#

et

glass cargo
pale orchid
#

Je te le vole

glass cargo
#

Les stickers d'0rion sont insane

#

Merci @cyan iron myman

sour shell
glass cargo
cyan iron
brisk blade
#

Bonjour pouvez vous me donner votre avis sur la meilleure façon d'apprendre js et facile ?
Merci

astral finch
brisk blade
#

Ok maiq video ou livre

fiery tartan
# brisk blade Ok maiq video ou livre

en fait lance toi des petits projets et cherche sur internet les différentes façons de faire les choses, tu trouvera toujours des solutions sur stackoverflow

apprend les bases des langages de progra comme:

  • Qu'est-ce qu'un langage orienté objet
  • Qu'est-ce qu'une variable
  • Comment fonctionne une fonction
  • Comment fonctionne le DOM sur un site

et ça te donnera une bonne base

#

et surtout apprend à correctement chercher sur internet (trop peu de gens savent faire les bonnes recherches)
et ne t'appuis par sur les IA au début (à éviter à tout prix pour apprendre, sauf si tu veux lui demander de te donner des pistes pour corriger du code par exemple)

pure tiger
jaunty tartan
#

Merci désolé

pure tiger
serene tangle
#

Hello, quelqu'un connait un moyen de sécurisé l'accès aux routes d'une api sans authentification réel et sans passer par un filtrage d'ip ? J'ai vu que potentiellement un API Gateway ou Reverse Proxy pourraient faire le taff mais je m'y connais pas trop alors si quelqu'un à déja pu experimenter je suis preneur

serene tangle
karmic gate
#

Tu peux aussi indiquer une liste d'urls autorisées dans le cors

brazen geyser
#

Bonjour, actuellement j'ai ajouter un message d'accueil à mon bot mais j'ai remarque quand un utilisateur quitter puis rejoint à nouveau le discord le message ne s'envoie pas vous avez une idée ou pas ?

    client.on('guildMemberAdd', async (member) => {
        try {
            const guild = member.guild;
            const channel = guild.channels.cache.get(config.WELCOM_CHANNEL_ID);
            if (!channel) return;

            const embed = buildWelcomeEmbed(member.user, member.guild.name, member.guild.memberCount);
            channel.send({ embeds: [embed] });
        } catch (error) {
            console.error('Erreur en envoyant le message de bienvenue :', error);
        }
    });
plush lava
# brazen geyser Bonjour, actuellement j'ai ajouter un message d'accueil à mon bot mais j'ai rema...

tu dois débugger ton code pour savoir si tout fonctionne:

Dans le cadre de discord.js on utilise les événements (guildMemberAdd dans ce cas là). Ajoute un console log juste après la déclaration de l'évenement (ligne 2) de sorte a bien vérifié si ton évenement est envoyé à chaque fois. SI tu remarques qu'aucun log ne s'affiche après que l'utilisateur rejoint à nouveau le discord, c'est ton évenement qui pose problème. Sinon, répète cette étape avec les différentes parties de ton code

ivory inlet
#

guildMemberAdd ce trigger que si c'est la première fois que l'user rejoint si je crois bien

plush lava
#

ça m'étonnerait fortement, ça impacterait beaucoup de systèmes

brazen geyser
#

En fait là dans ce code il y a pas les console.log mais pourtant dans ma console les log ce déclenche mais il y a pas le message sur Discord

brazen geyser
#
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers
    ]
fiery tartan
# brazen geyser ```js intents: [ GatewayIntentBits.Guilds, GatewayIntentBits...

essaye de mettre ça dans ton client, ça peut éventuellement marcher

const { Client, GatewayIntentBits, Partials } = require('discord.js');

const client = new Client({
  intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers
  ],
  partials: [ Partials.GuildMember ],
});
brazen geyser
#

d'acc je viens d'ajouter le coter partials je test est je te dit merci 🙂

normal lichen
#

can you write this in javascript or typescript please 👀

onyx flame
#

Salut j'aimerai savoir vous faite comment vous pour récupérer précisement le logs audit ? car par exemple j'ai mon bot sur un gros serveur plus de 200k personne il y a beaucoup de logs de creation de channel par exemple, mon bot il arrive pas a vérifier qui a vraiment crée quel salons car il y a trop de logs donc parfois il ce trompe d'executor.

queen ocean
queen ocean
#

Jsuis pratiquement sur que tu auras plus ton problème de mauvaise data avec ca yes

#

car tu vas pas avoir besoin de fetch le log

dire oriole
#

Salut, petite question avec un bot discord en TS, sans l'intent GUILDS_MEMBERS on peut récupérer le nombre total d'utilisateurs d'un serveur, mais sans compter les bots ?

shadow belfry
#
  • check_1 - Tu peux récupérer le nombre total (guild.memberCount)

  • cross_1 - Tu ne peux pas de manière fiable exclure les bots sans GUILD_MEMBERS

  • creativeteam - Pour un comptage fiable : il te faut l’intent GUILD_MEMBERS et idéalement faire un guild.members.fetch() pour remplir le cache.

#

@dire oriole

dire oriole
#

Yep c'est ce qu'il me semblait, tempis
(après bon, si je demande sur un serv c'est pour justement ne pas avoir une réponse gpt)

shadow belfry
burnt dune
#

Des idées comment je pourrai faire une animation de transition de page liquide du style https://www.david-hckh.com/.
J'utilise actuellement :

  • React Vite
  • Framer
  • Tailwind v4.1
fierce grotto
plush lava
#

ça m'a l'air effectivement d'être du svg morphing

#

Y'a un mask aussi qui est appliqué

fiery tulip
#

canva dynamique

#

y'a beaucoup de caca désolé

burnt dune
#

Ok super merci je vais me renseigner là dessus 👌

jagged osprey
#

Bonjour, est-ce que quelqu’un ici a déjà testé BiomeJS ?

pure tiger
chrome heart
noble mountain
#

Bonsoir bonsoir,

Petit problème avec une repo front next back nest que j'essaie de dockeriser et impossible de récupérer prisma dans mon backend :

=> ERROR [backend 6/7] RUN ls -la prisma                                                                                                                                                                           1.2s 
------
 > [backend 6/7] RUN ls -la prisma:
0.685 ls: cannot access 'prisma': No such file or directory
------
failed to solve: process "/bin/sh -c ls -la prisma" did not complete successfully: exit code: 2

pourtant je pense avoir tout fait correctement ? :

docker-compose.override.yml :

version: "3.8"

services:
  backend:
    volumes:
      - ./apps/backend:/apps/backend
      - ./apps/backend/prisma:/apps/backend/prisma
    command: npm run start:dev
    environment:
      - NODE_ENV=development

  web:
    volumes:
      - ./apps/web:/apps/web
    command: npm run dev
    environment:
      - NODE_ENV=development

docker-compose.yml :

version: "3.8"
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile.frontend
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
    depends_on:
      - backend

  backend:
    build:
      context: .
      dockerfile: Dockerfile.backend
    ports:
      - "4000:4000"
    environment:
      - DATABASE_URL=postgresql://admin:admin@postgres:5432/axorys
    command: npm run start
    depends_on:
      - postgres

  postgres:
    image: postgres:17.5
    environment:
      POSTGRES_DB: axorys
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: admin
    ports:
      - "5432:5432"
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Dockerfile.backend :

FROM node:20

WORKDIR /apps

COPY . .

WORKDIR /apps/backend

RUN npm install

RUN ls -la prisma

RUN npx prisma generate --schema=prisma/schema.prisma

EXPOSE 4000

CMD ["npm", "run", "start:dev"]
#

J'ai rajouté un find . -type f -name "schema.prisma"

#

Et j'ai aucun retour donc il ne me copie pas mon dossier

#

Sauf que j'ai aucune foutre idée de pourquoi

#

C'est bon j'ai trouvé le problème, j'ai fais full merde sur mon compose kapp

pure tiger
glass cargo
#

Le retour du jeu en 3d 👀

pure tiger
#

lui c'est différent, j'ai un mois pour le faire

#

là c'est fait en une journée, ce matin je suis partit de ça :

const BASE_MAP = [
  ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'],
  ['X', 'A', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'],
  ['X', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'X'],
  ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'C', 'X'],
  ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'C', 'X'],
  ['X', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'X'],
  ['X', 'C', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'],
  ['X', 'C', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X'],
  ['X', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'X'],
  ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'B', 'X'],
  ['X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X']
]
pure tiger
glass cargo
split quiver
#

Hello !
Ca va ?

Seriez-vous m'aider avec cet emoji ? ( ConfusedFace )

import { useEffect } from "react";
import { useRouteError } from "react-router-dom";

import ConfusedFace from "../assets/icons/ConfusedFace.svg"
import Arrow from "../assets/icons/Arrow.svg"

import Button from "../components/button.jsx"
import Footer from "../components/footer.jsx"

export default function ErrorPage() {
  const error = useRouteError();

  useEffect(() => {
    document.title = "Oops ! - Lucas - Étudiant & Développeur en quête d'opportunités 🚀";
  }, []);

  return (

    <div id="error-page" className="min-h-screen flex flex-col justify-center items-center text-center p-6 text-[#333333]">
        <h2 className="text-9xl font-bold mb-4">Oops!</h2>

        <h1 className="text-2xl font-semibold flex items-center gap-2">
          Quelque chose s'est mal passé
          <img src={ConfusedFace} alt="Emoji avec tête confuse" className="h-6 w-6" />
        </h1>

        <p className="italic text-sm text-gray-400">
            Erreur: {error.statusText || error.message}
        </p>

        <Button className="mt-10 inline-flex items-center py-1 rounded-lg transition duration-200 bg-[#333333] text-white">
          <img src={Arrow} alt="Flèche de retour" className="w-4 h-4 transform rotate-180" />
          <span className="text-sm font-medium text-white">Retour à la page d'accueil</span>
        </Button>

        {/* <Footer /> */}
    </div>
  );
}
plush lava
#

En effet quelque chose s'est mal passé PepeClown

split quiver
fleet remnant
#

J'ai pas trop compris ton soucis 🤔

split quiver
#

Comme sur ma version pc

fleet remnant
#

Mets un span autour de ton texte et réduit un peu sa taille

#

Ah non j'ai rien dit j'avais pas vu que c'était dans le h1

#

pourquoi tu ne ferais pas une div qui englobe ton h1 et ton img ?

pure tiger
fierce grotto
# split quiver

tu peux ajouter un flex-nowrap à ton h1 & un inline-block à ton img

fierce grotto
# fleet remnant pourquoi tu ne ferais pas une div qui englobe ton h1 et ton img ?

C'est pas forcément nécessaire vu que l'émoji doit faire partie du titre donc le garder dans le h1 suffit largement pas besoin de wrapper dans une div sauf si il veut les séparer visuellement ou sémantiquement mais là en l'occurrence suffit juste d'ajouter un flex-nowrap à son titre et un inline-block à son image pour qu’elle reste bien alignée et ne bouge pas ^^

fierce grotto
pure tiger
fierce grotto
pure tiger
fierce grotto
split quiver
keen narwhal
pure tiger
dusky swift
celest island
#

je sais pas trop ou demandé ça, mais j'expose mon problème ici. Je suis en train de faire un projet next personnel avec un bdd postgre avec supabase. En local tout fonctionne, je decide de mettre en prod sur vercel et je me tape une erreur 500. J'ai bien vérifié, l'url de la base est parfaitement la bonne, le nom de la variable aussi. aurais-je oublié quelque chose?

celest island
#

PS: mes variable d'envrionnements:

DATABASE_URL="postgresql://postgres:mon mot de passe@db.wvjennavzdakfkompkki.supabase.co:5432/postgres"
grave lily
#

est-ce que vous connaitrier une biblio ou script qui get le json de toutes les coord de la souris + le temps qu'elle reste sur chacune des coord

ocean bluff
#

ça en fait beaucoup de coordonner à enregistrer

#

t’en a besoin pour quoi ?

grave lily
#

oui pour visualiser comme la vision thermique

#

là ou ils restent le plus possible

ocean bluff
grave lily
#

pour chaque coordonné:
x, y et le temps qu'il reste sur la coordonné

ocean bluff
grave lily
#

oui

ocean bluff
# grave lily oui

il n’y a pas de module spécifiquement pour ton problème mais pourquoi tu ne le fais pas toi même ? tu peux utiliser mouse-change (il ya sûrement mieux que ce module) ou faire le track toi et puis t’aura juste a enregistrer la cordonné et si elle ne bouge pas pendant ton temps minimum tu l’enregistres avec la durée

grave lily
#

c'est obligé le temps minimum

grave lily
ocean bluff
ocean bluff
grave lily
#

oui

ocean bluff
# grave lily oui

après je te conseil de pas faire pixel par pixel mais prendre des zones genre 50pixel par exemple

#

car 1980x1080 ça fait bcp

grave lily
#

oui ça peut prendre moins d'espaces dans le dictio

ocean bluff
#

et pourquoi dans un json enft ?

grave lily
#

pr ensuite le send dans la db, pour analyser ensuite /jour, /mois, et autres par user

ocean bluff
grave lily
#

créer un centre de donné

ocean bluff
grave lily
#

c'est bon j'ai réussi mrc encore

grave lily
#

tu connaitrais un module ou script?

grave lily
#

comme ça mais sur un site web selon le temps de repos de la souris:

#

t'as un exemple sur mouseflow

ocean bluff
#

t’arrivais pas à faire quoi ?

#

dans la vision thermique ?

#
#

@grave lily

grave lily
#

je test

grave lily
ocean bluff
grave lily
#

il prend pas en compte node avec react

#

jsp comment l'utiliser avec react

ocean bluff
#

il doit en avoir plusieurs

burnt dune
grave lily
#

complètement mais opensource

#

vu que c'est commerciale

burnt dune
#

Licence MIT donc aucun problème pour l'utilisation commerciale

grave lily
#

j'ai pas trouvé d'exemple react/node dans la doc

burnt dune
#

ça date un peu mais à voir si ça marche encore

grave lily
#

mrc t'es trop fort

#
[plugin:vite:import-analysis] Failed to resolve entry for package "@sarpere/heatmapjs-react". The package may have incorrect main/module/exports specified in its package.json.```
#

ça marche pas

burnt dune
#

ah

#

t'as essayé de voir si tu pouvais pas extraire des fichiers en le téléchargeant en zip sur le gh

#

après pour l'opti pour react ça sera compliqué

#

pcq le DOM va tout casser

#

à voir si c'est possible de garder la partie heatmap mais sans une vraie map

ocean bluff
grave lily
#

oui

#

mrc de tester des choses

ocean bluff
# grave lily mrc de tester des choses

alors moi j'ai utilisé les cellules ça rend moins cali mais le systeme soi mm est pas si chiant chaque cellule a une valeur attribué commencant a 0 puis a chaque pssage je l'augmente de 1 et avec une fonction thermalColor je peux avoir ce resultat

grave lily
#

t'aurais le code stp

grave lily
ocean bluff
ocean bluff
#

bon apres c'est ameliorable

grave lily
#

t'as fais un effet blur

ocean bluff
grave lily
#

tqt je vais custom

ocean bluff
#

@grave lily j'ai utilisé browserify pour pouvoir utiliser le module npm tu veux je tenvoie le bundle et le code

grave lily
#

oui je veux bien @ocean bluff

ocean bluff
# grave lily oui je veux bien <@466962388709670933>

index.js

const z = 50

let zoneWidth = window.innerWidth;
let zoneHeight = window.innerHeight;

function getThermalColor(value) {
  value = Math.min(Math.max(value, 0), 20);

  const norm = value / 20;

  const r = Math.round(128 + (255 - 128) * norm);
  const b = Math.round(128 * (1 - norm)); 

  return `rgba(${r}, 0, ${b}, 1)`;
};

function updateDimension() {
      const zone = document.getElementById("zone");
      zone.innerHTML = '';

      zoneWidth = window.innerWidth;
      zoneHeight = window.innerHeight;

      document.getElementById("zone").style.width = `${zoneWidth}px`;
      document.getElementById("zone").style.height = `${zoneHeight}px`;

      const cols = Math.floor(zoneWidth / z);
      const rows = Math.floor(zoneHeight / z);
 
      for (let y = 0; y < rows; y++) {
        for (let x = 0; x < cols; x++) {
          const index = y * cols + x;

          const cell = document.createElement("div");

          cell.classList.add("cellule");
          cell.style.width = `${z}px`;
          cell.style.height = `${z}px`;
          cell.style.backgroundColor = `rgba(129, 0, 127, 1)`
          cell.style.left = `${x * z}px`;
          cell.style.top = `${y * z}px`;
          zone.appendChild(cell);
        };
      };
    };

updateDimension();
window.addEventListener('resize', updateDimension);

let ancientIndex;
let cellules = [];

require('mouse-change')(function(_, x, y) {
    const cols = Math.floor(zoneWidth / z);

    let col = Math.floor(x / z);
    let row = Math.floor(y / z);
    const index = row * cols + col;
    
    let cell = document.getElementsByClassName('cellule')[index];

    if (!cell || index === ancientIndex) return;

    ancientIndex = index;
    let cellule = cellules.find((e) => e.index === index);

    if(cellule) {
      cellule.value += 1;
      cell.style.backgroundColor = getThermalColor(cellule.value);
    } else {
      cellules.push({index: index, value: 0});
    }
});
#
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <style>
      html { overflow-y: hidden; }
      html { overflow-x: hidden; }

      #zone {
        position: relative;
      }

    .cellule {
      pointer-events: none;
      position: absolute;
      box-sizing: border-box;
      filter: blur(20px);
    }

    body {
      background-color: rgba(129, 0, 127, 1);
    }
  </style>
</head>

<body>
  <div id="zone"></div>
  <script src="bundle.js"></script>
</body>

</html>
#

le module npm c'est mouse-change

#

@grave lily

grave lily
#

il sert à quoi le bundle

ocean bluff
grave lily
#

ok

ocean bluff
#

si tu veux en savoir +

ocean bluff
grave lily
#

je test

grave lily
#

je veux que ça soit le contraire

ocean bluff
#

si il ne change pas t'augmente la valeur

#

apres je pense ça va faire un truc bizzare

grave lily
ocean bluff
#

mais ça doit pas etre bien chiant de modifier ça

#

62 jcrois

grave lily
ocean bluff
grave lily
#

c'est nul (simpson)

ocean bluff
#

donc ptet tu devrais rajouter une iteration je pense

ocean bluff
grave lily
#

oui je test

ocean bluff
#

tu connais la valeur de la derniere cellule ta cas faire une boucle a coté

grave lily
#

Quand je change de coord 2* rapidement cela laisse les blocs bleues éphémère, je voudrais les enlever

#

@ocean bluff

ocean bluff
grave lily
#

c'est bon j'ai réussi

#

c'est ça qui changeait des choses:

#
const index = y * Math.floor(dimensions.width / z) + x;
            points.push({ ...cells[index] });```
#

mais j'ai un autre problème, quand je reste longtemps, le carré s'enlève

ocean bluff
#

plutot le bloc

grave lily
#

jsp

split quiver
#

Hello !
Ca va ?

Une idée de la lib utilisé ?

ivory inlet
#

shadcn @split quiver

split quiver
bright badge
#

(id: string): any =>; comment fix ça

#

(typescript)

ivory inlet
#

Sans plus de contexte et de code difficile de t'aider @bright badge

glass cargo
#

À la limite tu mets des {} vides

bright badge
glass cargo
bright badge
stray tulip
#

🦧

ivory inlet
#

il a déjà réglé son problème 🐒

stray tulip
#

🦧

bright badge
primal yacht
#

hi

split quiver
#

Hello !
Ca va ?

J'ai chercher de la doc pour déployer une app react sur un vps. J'avoue que j'ai jamais fait ça encore ! Si vous avez de la doc je suis preneur. Je ne sais pas trop comment faire !

ivory inlet
#

si c'est du next ou autre framework te fais pas chier fou sur docker et regarde comment déployer un docker

#

si c'est du static tu as juste a le foutre sur ton vps et a faire pointer ton ndd dessus

burnt dune
#
RewriteEngine On
RewriteBase /

# Si la requête est pour index.html, rien à réécrire
RewriteRule ^index\.html$ - [L]

# Si le fichier ou dossier demandé existe, ne rien faire
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# Rediriger toutes les autres requêtes vers index.html
RewriteRule . /index.html [L]
#

ça c'est un htaccess basique en React très utilie si tu fais de react router (SPA)

ivory inlet
#

les gars faut propagande pour docker, c'est tellement moins chiant mdrrr

burnt dune
#

pas envie d'arriver sur un problème XY

ivory inlet
burnt dune
#

@ivory inlet t'es un pro docker ?

ivory inlet
#

AU bureau on nous a fais uen formation dessus et franchement, mêmes mes side project je les ai foutu docker

#

pas un pro docker a fond mais je le conseille vivement

burnt dune
#

Tu saurais comment je peux installer python dans un conteneur en marche ?

#

Sans refaire une image

ivory inlet
#

tu accéde au conteneur en cli avec docker exec et tu install python dedans

#

après si tu veux garder les modifs tu fais un docker commit

burnt dune
#

ok nice

#

j'ai pas les perm pour le faire

#

dans le conteneur

#

c'est pas mon image de base

#

il y a pas sudo et je peux pas installer sans mettre sudo hm

ivory inlet
#

toi aussi 🦧

burnt dune
#

tant pis

junior vessel
#

Hello !
J'aimerai me lancer en React (javascript ou typescript peu importe), vous auriez des liens vers des forma ou ressources intéressantes à prendre (hors doc j'ai déjà !).
Merci par avance !

plush lava
ivory inlet
chrome heart
glass cargo
#

Parce que pour le coup, j'utilise Coolify depuis presque 1 an, et tout ce que je peux dire, c'est que c'est trop bien

#

L'installation se fait en une commande

#

Et l'intégration à ton projet est assez simple

#

Pas besoin de générer manuellement les credentials de l'app github, etc

#

Nan franchement c'est trop bien

ivory inlet
#

👍

plush lava
#

J'allais dire un truc mais j'avais oublié mon rôle l'instant d'une seconde KaPOP

pure tiger
plush lava
#

Tranquille alors booba_oups

glass cargo
#

Encadres ton message avec ||, ça permet de le cacher pour les admins

plush lava
#

Je vais faire ça alors

fleet remnant
#

|| zizi ||

glass cargo
fleet remnant
#

oh noooooooo la polizia

idle sentinel
#

@glass cargo (désolé du ping) est-ce que ça vaut vraiment le coup de faire une SPA ? Y'a pas de réelles différences avec une app classique

glass cargo
#

Oui

#

Ça évite l’écran blanc entre les changements de page

#

Et ça rend le chargement des pages meilleurs (ça va charger composant par composant plutôt que tout d’un coup)

idle sentinel
#

ok ok, bah merci encore une fois (osekour)

glass cargo
idle sentinel
#

Salut, je débute avec Vue.js et lors de la création de mon projet j'ai pris router pour faire une SPA.
Ca m'a ainsi créé un fichier dans src/router nommé index.js avec le code suivant (que j'ai un peu modifié, notamment les noms, pour que ce soit plus simple pour moi)

import { createRouter, createWebHistory } from 'vue-router'

import Home from '../pages/Home.vue'
import About from '../pages/About.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
    },
    {
      path: '/about',
      name: 'about',
      component: About
    },
  ],
})

export default router

Mais je ne comprends pas comment l'utiliser dans App.vue, donc si quelqu'un saurait je suis preneur

burnt dune
#

J'avoue qu'ils sont beau les routeur en Vue

idle sentinel
#

sur le guide y'a ça

<script setup>
import { computed } from 'vue'
import { useRoute, useRouter } from 'vue-router'

const router = useRouter()
const route = useRoute()

const search = computed({
  get() {
    return route.query.search ?? ''
  },
  set(search) {
    router.replace({ query: { search } })
  },
})
</script>

mais j'avoue que je ne comprends pas trop comment ça fonctionne comme ça

glass cargo
#

Parce que là c’est beau, mais quand le router fait 200 lignes, il est moins beau kappo

fierce grotto
burnt dune
#

Un jour je testerai

idle sentinel
idle sentinel
#

omg ça fonctionne

glass cargo
idle sentinel
#

Salut, est-ce que quelqu'un saurait pourquoi les lignes

searchbar.addEventListener('click', () => {
  backgroundSearch.classList.toggle('active')
})

cassent tout ? si je les retire, ça affiche bien ma page. Si je les laisse, ça devient tout blanc

burnt dune
#

Check la console

#

Mais je pense que c'est le problème du DOM que je t'ai parlé l'autre fois

idle sentinel
#
searchbar.addEventListener('click', () => {})

Cannot read properties of null (reading 'addEventListener')
#

là je vois pas ce qui ne va pas

idle sentinel
#

comment tu fais la différence entre un DOM virtuel et un réel

burnt dune
#

Souvent dans les frameworks comme ça, tu remarqueras que quand tu change un peu ton code, la page se reload automatiquement

burnt dune
idle sentinel
#

nan je suis juste très c*n

#

déso du free ping par ailleurs

#

j'ai voulu attribué une classe nommée active et j'ai mis element:active dans le css 🐒

idle sentinel
# burnt dune La page charge différement

je souhaite afficher une div qui prend tout l'écran à l'utilisateur avec une transition
je la mets où ? sur la div ça ne fait rien et dans App.vue j'ai mis une div pour tout encadrer et quand je lui donne la transition rien non plus
encore désolé j'arrive à trouver juste après

burnt dune
#

mdrrr

upbeat tartan
#

Hello, je fais un bot en javascript (typescript) et je viens me rendre compte de quelque chose : si je met un bouton en style "Success", il s'affiche en vert, si je le met en "Danger", il s'affiche en rouge, si je le met en "Primary" il s'affiche en bleu, mais si je le met en "Secondary", il s'affiche aussi en bleu.

Est-ce que c'est quelque chose que je fais mal ou bien c'est une erreur venant de l'api ?

Voici un extrait de mon code, j'ai testé celui qui a été commenté, et j'obtiens le même résultat

                    // button({ emoji: '🩹', style: 'Success', customId: 'fix_permissions', disabled: channelErrors.size + permissionsErrors.length === 0 }),
                    new ButtonBuilder()
                        .setLabel('🩹')
                        .setCustomId('fix_permissions')
                        .setStyle(ButtonStyle.Secondary),
                    button({ emoji: '🚑', style: 'Primary', customId: 'reset_role' }),
                    button({ emoji: '❌', style: 'Danger', customId: 'cancel' })
#

Autant pour moi c'est un filtre qu'il y avait sur mon écran qui faisait que le gris ressortait en bleu (cherchez pas comment mais j'ai un écran qui fait ça mdr)

fierce grotto
idle sentinel
# burnt dune tqt

ça commence à prendre forme
et effectivement, je saurais pas dire pourquoi mais c'est vrai que ça à l'air plus simple avec un framework

upbeat tartan
#

Ça me rappelle une app que j'avais fait, le bouton "changer le thème" il servait à changer l'apparence du bouton, quand tu cliquais il devenait soleil ou lune en fonction du thème mais rien ne changeait mdr

tired ice
#

Salut tout le monde !

#

J'aurais besoin d'aide

#

J'ai crée des subcommands sur mon bot

#

mais impossible de faire un autocompète sur les options j'ai aucune erreur

#

Pourtant j'ai bien fais autocomplete: true

#

C'est good merci j'ai fini par trouver

idle sentinel
#

il a dit qu'il avait trouvé

robust jay
#

Hello tout le monde, vous savez si la doc pour les components V2 de discord est sortie ou pas encore ?

tired ice
idle sentinel
robust jay
idle sentinel
#

pas de soucis mdr

void spear
#

@robust jay

robust jay
#

Merci

robust stirrup
#

Bonsoir, j’ai besoin d’aide pour obfusquer mon code en webpack

pure tiger
burnt dune
#

Pourquoi faire?

pure tiger
#

aujourd'hui il y a beaucoup trop de services pour déobfusquer du js a tel point que même les développer tools te permettent de déminifier du code. Donc comment dire qu'il y a des outils qui sont très performant, la dernière fois j'en ai vu un qui utilises le moteur JSV8 pour faire le parssing avant de le retransformer en js, donc même la technique de passer pas 1000 variables temporaires est useless pour le rendre illisible. pars du principe que ton front est claire, si c'est pour ne pas te faire voler des fichier le plus simple c'est de chunck puis stream tes chunks chiffré, que tu chiffres avec des token uniques. Si c'est pour protéger le code que tu livres a un client la technique c'est de faire passer les fonctionnalités clé par tes services. Mais pour le front il y aura toujours des solutions, la preuve, netflix n'y arrives pas, si tu veux savoir ce qui fuites tu peux faire du watermarking qui fonctionnes très bien pour du b2b, ou tu peux faire du Runtime checks mais ça ce contournes encore facilement

ivory inlet
#

Puis l'utilité d'obfusquer du code front ?

smoky fog
#

Hello, dite, je suis en train de voir pour un projet react mais, c’est quoi me mieux pour react entre javascript ou TypeScript?

#

Dans les 2 cas je sais faire, mais je sais pas quoi utiliser de base

ivory inlet
#

c'est ta préférence à toi la pour le coup si tu sais faire les deux

naive chasm
smoky fog
smoky fog
#

Je cherchais

ivory inlet
#

tqt myman

smoky fog
#

et je fais unp

#

projet en vite actuellement

plush lava
#

en quoi TS améliore la sécurité ?

glass cargo
#

Bah même la modularité kapp

smoky fog
#

lié a discord.js mais c'est pas le sujet, je saos pas comment on dis, mais le rangement est bon la?

plush lava
glass cargo
smoky fog
#

et vite je mesuis habitué avec ts

plush lava
#

?

naive chasm
#

Typescript apporte trop d'avantage pour ne pas s'en servir.

Pour la sécurité, ca te permet de vérifier les données que tu envoies, recois, etc.. Couplet avec d'autres librairies, pour les appels API, le cache, etc.. ca t'évite plusieurs problèmes, notamment certaines injections.

Ensuite pour le débug, c'est un atout non considérable quand on dev ! Tu sais ce que tu envoies, ce que tu envoies, ce dont tu envoies.. Et si ton système fonctionne pas, il y a 1/4 ou 1/2 que ce soit un problème de typage.. Ce qui est bien plus simple à régler quand on sait d'ou ca vient.

plush lava
#

et spoiler alert: dans certains cas, tu ne sais pas exactement ce qui est envoyé ou reçu, d'où le fait d'utiliser les primitifs mais ça c'est autre chose

naive chasm
glass cargo
smoky fog
plush lava
#

on parle de TS uniquement depuis tout à l'heure

glass cargo
#

TS aide uniquement le développeur

#

à part ça c'est complètement inutile

plush lava
smoky fog
naive chasm
#

Après tout dépends de ce qu'on veut

smoky fog
#

(pardon pour les . random ma barre espace est peter)

plush lava
smoky fog
#

ouais je. vois

glass cargo
plush lava
smoky fog
#

apres le pb avec tout les framework qui utilise Vite

#

je fait souvent tu TS

#

mais jme suis jamais poser la question

#

c pas souvent c'est tout le temps meme

naive chasm
plush lava
#

J'ai jamais dit ça ?

plush lava
#

hors de ma vue

plush lava
naive chasm
#

A chaque gars qu'on forme de notre côté, on retrouve toujours ce any, c'est universel en ts mdrr

burnt dune
glass cargo
glass cargo
naive chasm
ivory inlet
naive chasm
#

Mais globalement, en développant avec TS, tu peux plus facilement regarder des erreurs de compilations, ou des comportements dans tes tests qui ne devraient pas être, et qui pourraient être des failles de sécurité, donc ca reste toujours utile.

glass cargo
chrome heart
#

sauf que ts est un langage compilé

glass cargo
chrome heart
#

bah le code source lui-même

plush lava
#

alors, oui mais non

chrome heart
#

ça compile en js

plush lava
#

TypeScript compile en JS compatible navigateur

#

Mais du coup en soit ça reste du code interprété

glass cargo
chrome heart
#

ts n'est pas du code interprété

#

js est du code interprété

naive chasm
#

On l'utilise sur un projet web(en gros on a une librairie d'API public, et on fait appel à un proxy serveur, et le typage statique est très intéressant pour éviter la modification de données à un point A et à un point B.). Bon dans le cas d'API, y'a pas de grands risques !(si ce n'est faire appel à une API non enregistré et ca suppose un possible risque de sécurité). Ensuite on peut régler ces soucis avec d'autres modules.

glass cargo
chrome heart
#

enfin selon l'implémentation

glass cargo
#

Donc il n'est pas compilé

chrome heart
#

transpilation si vous voulez utiliser des termes issus de branlette intellectuelle kappa

chrome heart
#

mais ts n'est pas utilisé avec un interpréteur

#

c'est js ça

glass cargo
glass cargo
plush lava
#

utiliser le terme "compiler" est un abus de langage même si en soit le process reste assez proche d'une compliation d'un langage compilé

glass cargo
#

Yep

past nimbus
chrome heart
glass cargo
#

J'avoue que dans le cas de ts, je sais jaais quel mot il faudrait utiliser 🤔

naive chasm
#

Il faut être nuancé.. ce n'est pas un langage compilé, mais pas un langage interpreté à proprement parler.

plush lava
#

malheureusement le seul terme est "compiler" mais tu ne compile pas vraiment en réalité

past nimbus
# chrome heart

C'est un abus de langage, en réalité on est sur du transpillage
Mais osef...

chrome heart
naive chasm
#

Il est compilé en javascript mais "agit" comme un langage interpreté.. Donc à voir si on lui donne cette définition ou pas x)

chrome heart
#

transpilation c'est une sous-catégorie de compilation

past nimbus
#

Olala

chrome heart
#

on veut forcément y mettre des termes différents, mais la différence même c'est juste le niveau d'abstraction de différence entre le langage source et le langage de destination

past nimbus
#

🤓

past nimbus
#

Rangez vos pénis et allez travailler

chrome heart
#

la compilation (en tout cas pour moi et pour pas mal d'autres dans le milieu des langages de prog), c'est souvent juste transformer un langage A en un langage B

plush lava
chrome heart
plush lava
#

école de gnome

chrome heart
#

mdr je viens vraiment de rechercher ça sur internet

plush lava
#

MDRRR

#

nan c'est pas ouf en vrai

burnt dune
#

c'est qui Gnome blblblb

chrome heart
glass cargo
glass cargo
#

copieur meh

plush lava
glass cargo
#

Et puis de toutes façons, KDE > Gnome

plush lava
#

sinon si tu as envie d'y aller je te conseil vraiment pas

burnt dune
#

le mec qui se répond à lui même

#

même moi je suis dans une école de golmon

chrome heart
#

je recherche juste un organislme de formation capable de décerner au moins un RNCP mdr

plush lava
#

ils nous ont fait reprendre les cours de juin à juillet stp

glass cargo
#

Pauvres gosses, du TypeScript à leur âge sue

plush lava
#

tout ça pour passer 50% distanciel et le reste c'est des cours du style devops et apache

plush lava
#

Le devops en question: on a juste installé rocky linux sur notre machine (VM)

glass cargo
#

Ouah

#

passionnant

plush lava
glass cargo
#

Au CESI ?

plush lava
#

du tout

burnt dune
plush lava
#

école paumé d'un groupe d'écoles

glass cargo
plush lava
burnt dune
#

nan mais t'as une chance sur beaucoup

plush lava
#

Ah oui ça

#

gl pour intégrer

glass cargo
#

Le CESI ?

#

Les portes ouvertes c'était vide, ça donne pas l'impression que c'est convoité kappo

plush lava
#

j'ai pas dit pour autant que les gens avaient envie d'y aller KaPOP

#

C'est comme 42 c'est connu mais pas tout le monde est fait pour cette école par exemple

burnt dune
#

Perso je suis en M1 BigData IA et je ne sais mm pas comment des gens peuvent être dans ma classe

glass cargo
#

42 faut passer la piscine

burnt dune
#

les mecs savent mm pas utiliser leur pc

burnt dune
burnt dune
glass cargo
#

CESI t'aligne les 7k et tu fais bonne impression à l'entretien, et je pense que ça peut passer tranquille

plush lava
glass cargo
#

L'IA c'est l'avenir link_mdr

burnt dune
#

ce qui est nouveau c'est la filliaire Web3 & Blockchain KappaCringe

#

il y a un cours c'est littéralement "créé votre cryptomonnaie et NFT"

plush lava
#

stylé

glass cargo
#

stylé

plush lava
#

pas trop mon kiff mais stylé

plush lava
glass cargo
#

Mais je vois pas spécialement l'intérêt

burnt dune
#

Vrmt pas mon délire

#

jsp ça attire les gens

plush lava
#

dès que ça parle d'argent c'est clair que ça les attire comme des mouches

glass cargo
#

Je connais pas trop le domaine, mais y'a tant d'emploi dans le domaine pour faire une formation sur ça ?

burnt dune
#

en vrai ça arrive mais trop peu de gens que ça intéresse

plush lava
#

j'vois pas le rapport entre l'entrepreunariat et la crypto 😭

burnt dune
#

Jsp les gens qui veulent faire une boite qui créer des NFT 😭

#

j'en sais rien moi mdrr

#

pour moi c'est la filiaire des scammeurs

plush lava
#

oui bon y'a tellement de monde sur ce marché c'est impossible de commencer aujourd'hui et de faire fortune faut déjà avoir une base

plush lava
glass cargo
burnt dune
glass cargo
#

On pourrait dire la même chose sur le cash

burnt dune
#

quand tu vois des crypto et nft dans un projet ça t'attire ?

plush lava
glass cargo
plush lava
#

et je dit pas ça parce que tu as passé ton bac

burnt dune
#

imaginons t'as un mec il met son annonce sur le site et il veut te payer en crypto, ou qu'il a un projet NTF / crypto, pour moi ça aspire moyen confiance au projet

glass cargo
#

Parlons pas de ça hein

plush lava
#

MDRRR

burnt dune
glass cargo
#

Heuresement que la NSI, cette matière de saint est là pour relever le reste kapp

#

Après faut dire que le talent ça marche qu'en NSI

#

Le reste bon....

plush lava
burnt dune
#

j'étais trop nul en NSI, j'étais pas motivé j'avais pas eu encore le déclic

plush lava
burnt dune
#

j'étais le mec dans les projets qui faisait des assets sur photoshop

burnt dune
#

c'est à partir de mon BTS que j'ai commencé à fuuuuze