vitanix a écrit 27 commentaires

  • # C'est une IA ingénieur en informatique

    Posté par  . En réponse au lien Introducing Devin, the first AI software engineer. Évalué à 2 (+2/-0).

    C'est la première IA qui est un ingénieur en informatique. Il peut par exemple créer un site. Ils disent qu'il est mieux que les autres IA.

    Reste a savoir si c'est vraiment le cas. Il n'est pas accessible à tout, il faut faire une demande.

    Ils cherchent des dev aussi, donc c'est pas encore un métier qui va disparaitre.

  • # la nouvel IA Q*

    Posté par  . En réponse au lien Intelligence artificielle : à OpenAI, la victoire des « pressés » sur les « prudents ». Évalué à 1.

    J'ai trouvé un autre article sur les raisons pour lesquels il a été viré. Il semble qu'il avait un nouveau projet qu'il n'avais pas informé tout le monde.

  • # Licenciement et IA

    Posté par  . En réponse au lien FAQ: pourquoi ils embauchent pour virer? l'IA aux USA? etc. Évalué à 3.

    C'est une femme qui vie à Miami et qui partage ça vie. Elle est dans la Tech avec un poste de Chef de projet. Elle a été licencié 2 fois cette année, pour être remplacer par des IA.

    Elle a son explication sur la raison des vagues de licenciement des entreprises technologiques (Facebook, Google, Intel, etc…), et elle le fait partager. Cela permet d'avoir une remonté du terrain sur l'emploie aux USA.

  • # Coding game

    Posté par  . En réponse à la dépêche Apprendre en s'amusant. Évalué à 4.

    Il y a aussi codingame : https://www.codingame.com/start
    Ce site permet d'apprendre ou de se perfectionner à la programmation avec des jeux. Il y a plusieurs langages. C'est une équipe française qui le gère. Il y a aussi un escape game de programmation.

  • [^] # Re: Le lien et les commentaires sur le changement de licence

    Posté par  . En réponse au lien Mold : changement de licence et tempête de mer**. Évalué à 1.

    Ça montre que rien n'était décidé. Et il est en train de créer une société pour gérer le financement du projet.

  • # Financement d'un projet open source

    Posté par  . En réponse au lien mold linker pourrait changer de licence pour une licence non open-source. Évalué à 2.

    Un des gros problèmes dans les langages compilés comme le C, le C++, le Rust, c'est la lenteur du build. mold linker est un très beau projet, qui permet d'accélerer le build pour les langages compilés, en réduisant le temps de linkage. Cela intéressera aussi les distributions ArchLinux-like, pour accélérer les temps d'installation.

    L'auteur cherche des financements. Si vous avez des connaissances qui seraient intéressés de financer ce projets, contacter l'auteur.

  • [^] # Re: applications concernées

    Posté par  . En réponse au lien cve-2022-42889 : text4shell fait suite à log4shell. Évalué à 4.

    Certaines versions de BitBucket sont impactées

  • # Zig

    Posté par  . En réponse au journal Ces langages avec lesquels il faut tout réécrire. Évalué à 1.

    Zig m'a l'air intéressant. Il a comme philosophie :

    Focus on debugging your application rather than debugging your programming language knowledge.

    En plus, il n'a pas de GC, et il est sur au niveau du typage. Bun, l'appli pour remplacer nodejs entre autre a été développé avec Zig.

    Par contre, une chose intéressante, c'est que ces nouveaux langages ne sont pas objets. C'est le cas aussi de Rust et Go.

  • [^] # Re: Est-ce que c'est pas un peu tôt?

    Posté par  . En réponse au lien It's time to stop using C and C++ for new projects, says Microsoft Azure CTO. Évalué à 1.

    Je suis tout à fait d'accord avec toi. Rust est très sécurisé, mais difficile à utiliser. Pour remplacer le C et le C++, le pense que Nim, Zig ou V, sont mieux car, plus simple d'utilisation, tout en aillant les outils moderne, sans GC, et surtout rapide à l’exécution. Carbon aussi pourrait être intéressant, mais il n'est pas encore disponible.

  • # La page de la BCE

    Posté par  . En réponse au lien Tremble Bitcoin : Amazon désigné pour créer l’Euro numérique par la BCE. Évalué à 3.

    La page de la BCE est ici.
    L'idée c'est de faire participer 5 entreprises pour faire un prototype d'euro numérique.

  • # Le prix de la licence

    Posté par  . En réponse au lien Akka devient privateur. Évalué à 3.

    Si ton entreprise fait moins de 25 millions de $ de chiffres d'affaire, c'est gratuit. Sinon, c'est payant, avec environ 2000 dollards par coeur et un minimum de 40 coeurs, donc la licence la plus basse est à 80000 dollards. Il y a des licences plus cher. Tout est ici. Je suppose que ça ce multiplie par le nombre d'applications.
    Je suis pas sur que toutes les boites qui l'utilisent peuvent payer autant pour cet outils. C'est dommage car c'est un outils puissant.

  • # Langage Carbon

    Posté par  . En réponse au journal Google forke C++. Évalué à 10.

    J'ai lu un peu la doc du langage ici. Voici un exemple de code :

    package Sorting api;
    
    fn Partition[T:! Comparable & Movable](s: Slice(T))
         -> i64 {
      var i: i64 = -1;
    
      for (e: T in s) {
        if (e <= s.Last()) {
          ++i;
          Swap(&s[i], &e);
        }
      }
      return i;
    }
    
    fn QuickSort[T:! Comparable & Movable](s: Slice(T)) {
      if (s.Size() <= 1) {
        return;
      }
      let p: i64 = Partition(s);
      QuickSort(s[:p - 1]);
      QuickSort(s[p + 1:]);
    }
    

    Au niveau des différence que j'ai trouvé :
    - les littéraux numériques ne sont pas en octal, et ils peuvent être de taille 128 bit et 256 bit.
    - il y a un type String et un type StringView avec un StringView en lecture seule
    - il existe le type tuple, un type slice
    - il y a un opérateur move pour déplacer une valeur. Dans l'instruction :

    x = ~y; 
    

    apres cette instruction, y est dans un état indéfini.
    - il y a une instruction return var. L'idée c'est de déclarer une variable comme type de retour, et quand on appel return var, ça va retourner cette valeur.

    fn MakeCircle(radius: i32) -> Circle {
      returned var c: Circle;
      c.radius = radius;
      // `return c` would be invalid because `returned` is in use.
      return var;
    }
    
    • il y a une instruction match qui a l'air pas mal par rapport aux tuples
    fn Bar() -> (i32, (f32, f32));
    
    fn Foo() -> f32 {
      match (Bar()) {
        case (42, (x: f32, y: f32)) => {
          return x - y;
        }
        case (p: i32, (x: f32, _: f32)) if (p < 13) => {
          return p * x;
        }
        case (p: i32, _: auto) if (p > 3) => {
          return p * Pi;
        }
        default => {
          return Pi;
        }
      }
    }
    
    • il n'y a pas de GC
    • le langage peut créer des objets du C++ et les manipuler
    • il n'y a pas de préprocesseur à la C. Il y aura un système de métaprogramming, mais il n'est pas documenté.
    • on peut créer des classes, et l’héritage est simple. la création d'un objet est simple :
    var sprocket: Widget = {.x = 3, .y = 4, .payload = "Sproing"};
    
    • Les classes ont des destructeurs
    • il existe un type choix :
    choice IntResult {
      Success(value: i32),
      Failure(error: String),
      Cancelled
    }
    
    • il y a un système de package, un mécanisme d'importation, et un mécanisme de namespace
    • il y a des génériques qui peuvent être déclaré au niveau d'une méthode ou d'une classe
    • il y a des interfaces
    • il y a la surcharge d'opérateur
    • il n'y a pas d'exception

    Le langage n'est pas fini, et il y a des parties qui sont en cours de conception.

  • [^] # Re: https://killedbygoogle.com/

    Posté par  . En réponse au journal Google forke C++. Évalué à 6.

    Après avoir lu ça, il me semble que le principal problème c'est que les équipes de Google ne peuvent pas convertir tout leur code C++ dans un nouveau langage. Il faut que le nouveau langage puisse s'interfacer avec le C++. Il y a plein de langages qui s'interfacent assez bien avec le C et les struct, mais pour le C++, c'est plus compliqué.

    Par exemple, si carbon appel une méthode du C++ qui prends en paramètre un vecteur d'une classe en C++. il va falloir créer les objets du C++ dans Carbon, puis créer un vector de la librairie C++ dans carbon, et après faire l'appel à la méthode. Et je ne parle même pas des problèmes de méthode template, du Name mangling, et autres joyeuseté du C++.

    D’ailleurs, on dirait qu'ils vont migrer tout leur code C++ sur Carbon, et apres au revoir C++. Ils seront plus ou moins compatible jusqu’à C++17, et pour C++20, ils vont faire au cas par cas :

    Interoperability will target C++17. Any interoperability support for future versions of C++, including features such as C++20 modules, will be based on a cost-benefit analysis. Exhaustive support should not be assumed.

  • # Contre l'avortement et pour les armes

    Posté par  . En réponse au lien "N'oubliez jamais qu'il suffira d'une crise[...] pour que les droits[...] soient remis en question". Évalué à 0.

    Si j'ai bien compris, la constitution n’autorisera plus les avortements, c'est chaque état qui décide. Donc une femme enceinte ne peut pas avorté si elle est dans un état qui l'interdit. Par contre, toujours grâce à la constitution américaine, les hommes ont le droit de s'entretuer dans la rue avec un pistolet, y compris dans les états qui l'interdisaient jusqu’à présent.

    Moi je suis contre ces 2 mesures, mais j'ai l'impression qu'il y a pas mal d'américain qui voulaient ça, en tout cas parmi ceux qui votent. Après c'est sur, qu'ils ne pourront pas dire qu'il faut rependre la liberté dans le monde, et d’ailleurs, c'est des mesures qui se rapprochent de l’Afghanistan, même s'il y a encore de la marge entre les deux pays.

  • # Licence d'un fichier vide

    Posté par  . En réponse au journal Challenge: Écrire la plus petite implémentation de /bin/true. Évalué à 2.

    Par contre ton fichier vide, tu ne peux pas lui mettre de licence. Parce que s'il y a une licence GPL3 par exemple, ça poserait des problèmes à pas mal de projets qui ne sont pas en GPL3.

  • # Résumé

    Posté par  . En réponse au lien Elyse, l'appli mobile pour choisir le candidat à la présidentiel va devenir open source. Évalué à 3.

    C'est une application qui permet de trouver le candidat qui nous correspond en "swipant" à la tinder sur les propositions des candidats à la présidentielle.
    Il y a l'air d'y avoir pas mal de problèmes techniques et aussi sur l'algorithme de désignation du meilleur candidat. Du coup, ils vont passer en open source pour monter l'algorithme et demander l'aide de la communauté.

  • [^] # Re: audit

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 1.

    Combien d'entre vous sont developpeurs et combien d'entre vous réalisez directement ou via une tierce partie des audits sécurité de vos logiciels et en particulier de toutes les bibliothèques que vous utilisez pour vos programmes?
    

    Dans ma boite on fait, il y a des audit de sécurité systématiquement avant mise en prod. nous on utilise spring boot avec logback, donc on n'a pas été impacté par ce trou de sécurité.

  • # Isolation des accès réseaux

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 1. Dernière modification le 27 décembre 2021 à 16:06.

    Pour moi, ce qui manque, c'est la possibilité de limiter l'accès réseau et l'accès au FS de façon simple, sans passer par du selinux. Par exemple si je pouvais indiquer que cette application ne peut se connecter qu'à l'url http://masecondeapli/api/*, ce trou de sécurité ne ne poserait pas. Pour le filesystem, si l'appli n'avait accès en lecture/écriture qu'a une sous partie du FS réel, cela permettrait de limiter fortement les attaque de ransomeware.

    Le top, ce serait une vrai gestion des applications comme dans android, mais avec une gestion plus fine des droits, pour indiquer que l'application n'a accès qu'aux url x, y et x et aux répertoires a en lecture, b en écriture et c en lecture/écriture.

  • # Résumé

    Posté par  . En réponse au lien Changement de licence pour LLVM et appel à l'aide. Évalué à 2.

    La fondation LLVM change la licence de LLVM pour la passer à une licence Apache 2 + LLVM exception. Pour cela, ils ont besoin de l'accord de tous les développeurs qui ont contribué. Ils en sont à 94% du code avec la nouvelle licence. Plus de détails dans le lien.

  • [^] # Re: Java cours derrière Scala ?

    Posté par  . En réponse au journal TapTempo en Java 17. Évalué à 4.

    Oui en effet, Java se rapproche de Scala. La prochaine grosse évolution c'est le pattern matching sur les types avec les classes sealed. La vidéo Devoxx présente certaines évolutions. Il va y avoir aussi des coroutines.

    Le problème pour ces évolutions, c'est qu'il faut rester compatible avec les anciens programmes (c-a-d que la compilation des anciens programmes fonctionnent toujours), et que les principaux outils (eclipse, maven, hibernate, etc…) soient compatibles. C'est pour cela que c'est un peu long.

  • [^] # Re: C'est du pinaillage mais le ne vaudrait mieux pas utiliser Clock

    Posté par  . En réponse au journal TapTempo en Java 17. Évalué à 3. Dernière modification le 07 novembre 2021 à 16:27.

    J'ai corrigé sur la version 1.0.2.
    J'ai utilisé System.nanoTime()
    Comme ça s'il y a un décalage horaire pendant le fonctionnement de TapTempo, les valeurs seront toujours justes.

  • [^] # Re: C'est du pinaillage mais le ne vaudrait mieux pas utiliser Clock

    Posté par  . En réponse au journal TapTempo en Java 17. Évalué à 1.

    Je ne connaissait pas ce problème. C'est très intéressant.

  • [^] # Re: Les techniques de sécurités

    Posté par  . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 0.

    Oui comme exemple, il y a dans spring data les requetes :

    @Query(
    value = "SELECT * FROM USERS u WHERE u.status = ?1",
    nativeQuery = true)
    Collection<User> findAllActiveUsersNative(int parametre);
    Avec cette syntaxe, tu ne peux pas faire d'injection SQL. Malheureusement, si la requete change suivant les paramètres, par exemple pour un formulaire de recherche, tu ne pourra pas utiliser cette syntaxe.

    Autre exemple, avec Google Cloud Platform, le systeme de fichier est en lecture seule. ça signifie que si un virus s'injecte dans le processus du programme, il ne pourra pas s'écrire sur le disque dur, et donc un simple redemarrage supprimera le virus, sauf bien sur s'il accède au noyau de l'OS.

  • [^] # Re: Les techniques de sécurités

    Posté par  . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 1.

    Perso j'aime pas mal OAuth

    Oui, moi aussi, je trouve OAuth bien, mais je n'ai pas encore pu le mettre en place.

  • [^] # Re: Les techniques de sécurités

    Posté par  . En réponse au journal sécurité, trop de sécurité, pas de sécurité?. Évalué à 2.

    Les techniques que tu cites sont bien, mais pas suffisantes.

    J'ai mis en place ces mécanismes en 2011. J'ai fait des amélioration en 2013/2014 en suivant certains conseils de l'OWASP. Voici une page web qui date de 2019 qui donne les explications sur comment hasher le mot de passe : Hash du mot de passe . Ça explique beaucoup de choses, et parles des problèmes sur la façon d'implémenter le tout.

    Ça ne parle que du hash, et pas de tout ce qui va autour :
    - création d'un nouveau compte avec mot de passe temporaire,
    - réinitialisation du mot de passe au bout d'un certain temps,
    - réinitialisation du mot de passe d'un utilisateur par un administrateur sans que l'administrateur connaisse le mot de passe et sans que le mot de passe circule en clair par mail,
    - gestion des logs pour savoir qui se connecte et se déconnecte et à quelle heure, et sans jamais loguer le mot de passe, ni loguer trop d'information sur l'utilisateur,
    - stockage du mot de passe en base en faisant attention que la taille des champs soit suffisamment grand pour stoker le hash,
    - blocage d'un compte de façon temporaire, s'il y a eu trop de tentatives par exemple
    - blocage d'un compte de façon permanente
    - l'envoie du mot de passe entre le navigateur et le serveur
    - etc…

    Ce que je trouverais bien c'est qu'il y a une librairie qui gère tout cela, et qui rendrait facile le respect de ces principes. Comme cela, c'est maintenu par des spécialistes et tout le monde ferais des sites mieux sécurisé. J'ai regardé récemment du coté de Spring Security, mais c'est une librairie difficile à utiliser je trouve.