Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Jonathan Winandy
    @ahoy-jon
    c'est bon à savoir dans les faits, merci pour l'info!
    idir
    @iDumbo_gitlab
    slt tous le mode je voudrai savoir s'il exist un moyen d'impoter une lib compiler (un .jar ) durant l'exécution d'un prg scala ? ( et de l'utiliser bien sûr )
    j'ai vu un peu scala reflection mais je crois que c'est plus pour créer dynamiquement des instance de class déja défini dans le code
    François Armand
    @fanf
    @iDumbo_gitlab oui, mais il n'y a rien de spécifique à scala ici, ca utilise les mêmes infrastructure que java, en regardant comment faire pour java tu devrais pouvoir
    idir
    @iDumbo_gitlab
    merci @fanf je me disais aussi que je devais passer par java car scala peux exécuter du java nativement j'ai trouver ça comme debut de solution : https://stackoverflow.com/questions/14741338/java-reflection-running-a-external-jar-and-referring-to-its-classes
    si tu a des ressource sur ça en java ça serai avec plaisir ( même des mots clé :D)
    François Armand
    @fanf
    @iDumbo_gitlab nous on utilise https://github.com/ronmamo/reflections pour pouvoir charger des plugins au lancement de notre appli, ca marche bien (ie: les jar sont déjà dans le classpath, mais on charge les implémentations au boot)
    je ne sais pas si ca correspond à tes besoins
    @ugobourdon
    @ubourdon
    Sinon tu as OSGi => ok je sors
    idir
    @iDumbo_gitlab
    @fanf carrément :thumbsup:
    François Armand
    @fanf
    OSGi, c'est bien, c'est juste que son design space est compliqué et qu'en vrai, peu de gens veulent/ont réellement besoin de cette complexitée - mais le coût en API à supporté est souvent rédibitoire (ie: ca ne semble pas facile d'avoir un sous-ensemble "mais en fait, je n'ai pas besoin du rechargement à chaud" qui simplifie vraiment les API)
    bref. C'est comme ça qu'on se retrouve à redémarrer nos applis.
    Loïc Descotte
    @loicdescotte
    désolé on m'avait envoyé un jeu de données foireux , j'efface ma question
    lmeyer
    @LeonardMeyer
    Bonjour les scalaistes français. Je viens vers vous car j'ai pas eu de réponse via les canaux officiels. Quelqu'un a déjà fait des requêtes via Oauth2 en Scala via HTTP4s ? Mon besoin est juste côté client, et non serveur, que via API, pas de web. Je ne trouve rien de très concret en Scala pour faire ça. Actuellement j'ai juste un endpoint qui me renvoie le token via des credentials. Donc je pourrais sans doute faire une requête au startup pour récupérer un token et le mettre dans toutes mes requêtes. Mais je me demande s'il y a pas un truc intégré
    François Armand
    @fanf
    @LeonardMeyer désolé, jamais fait ce genre de choses
    lmeyer
    @LeonardMeyer
    Oui je vois que personne a jamais fait sur genre de chose sur tout gitter ahah
    rimeh bennjima
    @rimeh-bennjima

    Bonjour,

    object webSocketSpec extends MessagingSpec with RestCall {
    override def is: SpecStructure = "Specification to check the messaging".title ^ sequential ^
        s2"""
              UserCreatedMessage    ${e1.pendingUntilFixed}
          """
    
    
    override def userId: UserId = PostUser("user1")
    override def token: String = postSession("admin")
    
    
    def e1 = todo
    
    }
    
    
    abstract class MessagingSpec  extends TestKit(ActorSystem("messagingTests"))
        with ImplicitSender
        with SpecificationLike
        with ClassLogging {
    
      def userId: UserId
      def token: String
    
    ....
    }

    lorsque j'exécute la spécification, je constate que le contenu de l'ID utilisateur et du token est nul, car l'exécution des deux méthodes postUser et postSession n'est pas encore terminée.
    y a-t-il des propositions pour attendre la fin des deux méthodes et prendre les bonnes valeurs ?

    etienne
    @crakjie
    Bonjour, j'ai une question con.
    Pourquoi le compilateur n'aime pas avoir deux function surcharger qui on le meme type apres erasure ?
    Normalement il devrais avoir selectionner les functions avant l'erasure non?
    Guillaume Martres
    @smarter
    parce que dans le fichier .class que le compilateur génère, tu ne peux pas avoir deux overloads avec la même signature, sinon tu ne pourrais pas les distinguer
    tu peux éviter le problème en changeant le nom de la méthode générée, mais du coup ça complique l'intéropérabilité avec Java
    c'est ce que permet l'annotation @targetName: http://dotty.epfl.ch/docs/reference/other-new-features/targetName.html
    etienne
    @crakjie
    et oui, j'avais oublier cette histoire d'interop c'est vrais que les truc function$1 c'est pas ideal
    sur tout que sa risque de changer a chaque build
    etienne
    @crakjie

    Je voie parfois des colegue qui essais de gere les cas de trait scelle avec des asInstanceOf[Cas]
    a la

    val a = x.asInstanceOf[Cas1]
    val r = doSomething(a)

    es-ce qu'une utilisation similiare en for-comprention vous choque ?
    Avec une methode qui retourne une Monad Erreur

    val r = for {
      a <- x.get[Cas1]("Nope")
    } yield {
       doSomething(a)
    }
    François Armand
    @fanf
    le premier cas est faux, car il y a une erreur pas traité, et c'est ca qui est mal. Ensuite, que tu fasses ça dans un for ou du pattern matching, à la fin ça finit toujours en isInstanceOf/asInstanceOf
    etienne
    @crakjie
    Oui exactement, L'idee ici est de ne pas sortir toute l'artillerie lourde du pattern matching (en terme de boilier plate) pour avoir quelque chose de visuellement plus simple.
    Nicolas Deverge
    @ndeverge
    Bonjour à tous,
    quelle est votre analyse sur l'abandon de Play Framework par Typesafe ?
    François Armand
    @fanf
    @ndeverge tu veux dire par lightbend ? ;) C'est une boite, et il font des choix d'allocation liés au but de la boite, et clairement ils ont décidé que leur coeur de métier, c'était "faire le backend du web serverless statefull" (ca, c'est très fortement marqué par la reprise de la direction par Jonàs). En plus, le "rachat/intégration" initial de play par lightbend était surtout opportuniste (profiter d'un framework hype), dirigé par l'idée que "un framework web est la killer app qui lance des langages au niveau entreprise" (je ne me souvient plus qui l'avait dit, en prenant évidemment RoR comme référence), alors qu'ils n'avaient pas vraiment ça dans le sang et on plutôt dénaturé ce qui faisait la hype de play, et que clairement ce n'est pas vrai en 2020 (et pour m'envoyer des fleurs, je disais que Akka était la killer app de scala en 2009, donc je ne vais pas me contredire maintenant que ca se réalise officiellement).
    Bref: c'est sûrement la solution la plus propre et le plus claire (à tous les niveaux, dont le positionnement de lightbend sur l'ecosystème).
    1 reply
    @ugobourdon
    @ubourdon
    Bonjour à tous. Je cherche à pouvoir lancer avec sbt mes script Scala. Je m'explique, sur mes projets scala, j'ai des scripts en Scala pour différentes action de PROD, et d'habitude je les placent dans mon sous dossier test/scala dans le package scripts et je peut les lancer en faisant sbt "test:runMain scripts.MonScript".
    Je cherche à savoir comment je peux faire pour avoir directement un dossier scripts/scala et pouvoir lancer mes scripts depuis sbt "scripts:runMain scripts.MonScript"
    Jonathan Winandy
    @ahoy-jon
    J'ai cherché un peu, j'ai pas trouvé, il faudrait créer un scope qui extends Runtime (comme Test ou IntegrationTest) ... ça serait un bon truc à avoir sur les projets
    dans le doute, je mettrais ça dans "it:runMain scripts.MonScript" si tu n'utilises pas les tests d'integration
    @ugobourdon
    @ubourdon
    ok merci.
    Après l'idée est que cette "étape" ne soit pas une étape du build (comme test ou it)
    Seth Tisue
    @SethTisue
    This room seems inactive. Shall we shut it down? Is there a different French chat server we should list at https://www.scala-lang.org/community/#chat-rooms ?
    3 replies