Letho a écrit 342 commentaires

  • # GNUstep ?

    Posté par  . En réponse à la dépêche Window Maker 0.96 est plus ergonomique. Évalué à 2.

    J'ai utilisé Window Maker lors de mes premiers émois Linuxiens – ce qui doit remonter à une RedHat 5.2. J'en garde un super souvenir.

    Sur un sujet proche, quelqu'un saurait-il ce que devient le projet GNUstep ? Étoilé donnait envie il y a quelques années, mais cela semble au point mort.

  • [^] # Re: actualiser..

    Posté par  . En réponse au journal petit topo des messageries sécurisées, et leurs alternatives. Évalué à 1.

    C'est clairement plus qu'un simple système de messagerie, mais il y a le module Talk de Nextcloud : https://nextcloud.com/talk/

  • [^] # Re: Logique

    Posté par  . En réponse au journal Profil validé. Évalué à 1.

    Merci de la découverte, je viens d'acheter les 5 premiers tomes 🙂

  • [^] # Re: Question sur un vieux livre

    Posté par  . En réponse au journal Les nouveautés folles furieuses de Common Lisp en 2022: la revue. Évalué à 2.

    Eh bien bravo, je viens encore de commander un livre. Je ne te remercie pas.

  • # Un grand oui

    Posté par  . En réponse au journal Une API normée pour accéder aux factures (1ere étape). Évalué à 4. Dernière modification le 06 janvier 2023 à 16:11.

    C'est à mon sens une excellente idée, qui me trotte également dans la tête depuis quelques temps. Et en tant que dev, je serai ravi de pouvoir participer.

    Simple suggestion : je vois qu'il existe deux ressources distinctes pour les représentations JSON des factures et le téléchargement du PDF. Il s'agit pourtant conceptuellement de la même ressource. Ne serait-il pas plus simple de pouvoir préciser dans le header accept le format souhaité ?

    # Liste des factures en JSON
    GET {apiRoot}/invoices
    Accept "application/json"
    
    # Détail d'une facture en JSON
    GET {apiRoot}/invoices/{idFacture}
    Accept "application/json"
    
    # Détail d'une facture en PDF
    GET {apiRoot}/invoices/{idFacture}
    Accept "application/pdf"
    

    La norme Obapi pourrait dans ce cas préciser que proposer une représentation PDF de la facture est obligatoire.

  • [^] # Re: les anciennes choses..

    Posté par  . En réponse au journal Ces langages avec lesquels il faut tout réécrire. Évalué à 1. Dernière modification le 04 octobre 2022 à 01:53.

    C'est ce que j'avais cru comprendre en survolant un peu de documentation. En gros, l'opérateur new renvoie en C++ un raw pointer référençant le tas, et l'idée est de ne jamais utiliser de variable intermédiaire pour ce dernier mais par convention de le passer directement au « constructeur » de smart pointer qui lui sera sur la pile ?

    var foobar = std::unique_ptr(new SomeFantasticClass());

    (syntaxe sans doute très très approximative)

    Le smart pointer est le seul à connaître le raw pointer, et je suppose qu'il libère la mémoire quand foobar sort du scope.

    J'ai bon ?

    Ça ressemblerait effectivement un peu aux types Box<T> et Rc<T> en Rust (ou Arc<T>, je ne sais pas si shared_ptr est thread-safe ?)


    C'est malin, je vais devoir ajouter C++ à ma liste de langages à tester.

  • [^] # Re: les anciennes choses..

    Posté par  . En réponse au journal Ces langages avec lesquels il faut tout réécrire. Évalué à 2. Dernière modification le 01 octobre 2022 à 04:50.

    Question sans doute naïve, mais je suis curieux :)

    J'ai pratiqué un peu de Rust, mais pas de C++. De ce que j'en comprends, le principe de borrowing via & en Rust permet de libérer la mémoire de façon déterministe au moment de la compilation. Ce n'est pas le cas quand on utilise par exemple le type Arc<T>, qui fonctionne avec un compteur de référence – et donc au runtime.

    Les smart pointers de C++ semblent plus proches de ce dernier cas ?

  • # Gleam

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

    Je me suis promis d'essayer Gleam un jour prochain.

    Typage statique + VM Erlang + modèle acteur. Miam.

    https://gleam.run/
    https://github.com/gleam-lang/gleam

  • [^] # Re: Solution alternative: Arango

    Posté par  . En réponse au journal J'ai demandé le multi-database à Neo4J. Évalué à 3.

    Je ne l'ai jamais essayé, mais j'ai trouvé ceci :

    https://age.apache.org/

    C'est une extension PostGres pour faire de l'orienté graphe. Et cela gère Cypher. Deux points plutôt positifs pour toi ;)

    Un article en parlant : https://www.fabiomarini.net/going-multi-model-with-postgresql-and-apache-age-experimenting-with-graph-databases/

  • [^] # Re: blockchain et crypto-monnaie sont deux choses différentes

    Posté par  . En réponse au journal Ethereum prépare son passage de Proof of Work à Proof of Stake. Évalué à 10.

    des libertaires

    Des libertariens. S'il te plaît ;)

  • [^] # Re: Rétroéclairage

    Posté par  . En réponse à la dépêche L’ordinateur portable modulaire : La lumière au bout du tunnel. Évalué à 3.

    Du coup, ca sera un clavier compatible avec votre futur laptop ; est-ce qu'au moment de sa sortie il sera prévu une option pour le prendre sans clavier ? Ma collection qui prend la poussière commence à devenir assez imposante ;)

    Il semblerait que oui, dixit la page KissKissBankBank :

    « Mais, [le clavier] est surtout compatible avec notre ordinateur modulaire le Cairn Mesa, étant un de ses… modules ! Vous pourrez le fixer et l’enlever d'un simple geste. Bien entendu, il sera possible d'acquérir l'ordinateur portable modulaire sans le clavier, si vous l'avez déjà acheté. »

  • [^] # Re: Kamoulox !

    Posté par  . En réponse au journal Golang, oops you did it again. Évalué à 2.

    Merci pour l'article, j'utilisais ce pattern sans en connaître le nom.
    De façon générale, les publications de ce site ont l'air super intéressantes ; ça me donnerait presque envie de me mettre à F# ou OCaml.

  • [^] # Re: Ça m'énerve

    Posté par  . En réponse à la dépêche Différences de genres dans la contribution au code libre. Évalué à 2.

    De tout cœur, merci.

  • [^] # Re: Dans la lignée des commentaires sur VS / VSCode

    Posté par  . En réponse au sondage Développeur Libristes, oui ! mais macOS, Visual Studio et Azure ?. Évalué à 5.

    Visual Studio Code étant apparu en 2015, je suppose que tu parles de Visual Studio ? ;)

  • [^] # Re: Vidéo

    Posté par  . En réponse au journal Wordle is the new TapTempo. Évalué à 3.

    Et en français, l'excellente vidéo de Science Étonnante :

    JE CRAQUE WORDLE ! 🟩⬛🟨⬛🟨 (grâce aux maths)

  • [^] # Re: Orbital?

    Posté par  . En réponse au journal Desktop : enfin du choix, enfin un langage de programmation sérieux. Évalué à 2.

    C'est ce que propose Compose en Kotlin. C'est assez génial à utiliser, et en ce qui me concerne je l'ai déjà adopté pour le dev Android. Et il y a un support multi-plateforme.

    Je rêverais de pouvoir faire du GTK4 de cette façon.

    https://developer.android.com/jetpack/compose
    https://www.jetbrains.com/lp/compose-mpp/

  • [^] # Re: Autres tentatives avortées

    Posté par  . En réponse au sondage Mon adaptation de Dune préférée. Évalué à 6.

    À propos de l'adaptation (avortée) de Jodorowsky, il faut absolument voir cet extraordinaire documentaire :

    Jodorowsky's Dune (2016)
    https://www.allocine.fr/film/fichefilm_gen_cfilm=220938.html

  • [^] # Re: Lapin compris

    Posté par  . En réponse au journal Letlang, encore un nouveau langage de programmation. Évalué à 2.

    Merci (sincèrement).

    Je suis développeur, mais ne suis pas passé par une école d'ingénieur. Je touche assez rapidement à mes limites quand il s'agit de mathématiques – ce qui est d'autant plus frustrant que je trouve cela passionnant.

    Je viens de me trouver un cours sur ZFC, je vais aller potasser cela ;)

  • [^] # Re: Lapin compris

    Posté par  . En réponse au journal Letlang, encore un nouveau langage de programmation. Évalué à 1.

    Pardon, il fallait lire if (x = 3) ## false sur la dernière ligne. Si un gentil modo passait dans le coin ;)

  • [^] # Re: Lapin compris

    Posté par  . En réponse au journal Letlang, encore un nouveau langage de programmation. Évalué à 1. Dernière modification le 08 janvier 2022 à 13:51.

    Je dis peut-être une bêtise, mais ne pourrait-on pas considérer qu'une variable représente l'ensemble des valeurs possibles selon les contraintes définies ?

    Définir x := 2 reviendrait à affecter à x le singleton { 2 }.

    L'opérateur = ne serait alors que du sucre syntaxique pour les ensembles à un seul élément : pour une variable x représentant un singleton et une valeur n, x = n serait équivalent à n in x.

    Et l'on pourrait réécrire le code ci-dessus de cette façon :

    let x: int
    
    if (3 in x) ## true
    
    if (3 = x) ## false
    
  • [^] # Re: Génial

    Posté par  . En réponse au journal Une boite à meuh qui fait pas "meuh". Évalué à 4.

    À vrai dire, le seul logiciel à télécharger est Android Studio. C'est lui qui s'occupe de manager les SDKs, l'émulateur, etc. Ce n'est pas tout léger, j'en conviens. Mais c'est à mon sens un outil efficace, et même plutôt agréable une fois qu'on a pris le temps de le connaître un peu.

    Et non, pas besoin du moindre compte Google (ni de quelque compte que ce soit) pour développer une application, encore heureux. Par contre, si tu veux qu'elle soit disponible sur le Play Store, il te faudra effectivement un compte développeur Google. Mais rien n'empêche de fournir ton logiciel sur un store alternatif, ou encore directement sous forme d'apk.

  • [^] # Re: Représentation de Windows...

    Posté par  . En réponse au journal Dual OSchool Free Software Pack. Évalué à 5.

    Je m'avance sans doute, mais quand j'ai lu « réinsertion », « adulte », et « coupé du monde », j'ai tout de suite pensé à de la réinsertion de prisonniers.

    Si tel était le cas, l'image du boulet serait peut-être un peu limite ;)

  • [^] # Re: We need more

    Posté par  . En réponse au journal opensara: un nouveau jeu libre. Évalué à 1.

    Je m'auto-corrige. Il ne s'agit pas de

    const Receiver<MyProtocol> receiver = {
        onSomeMessage: (payload) => {
            console.log(payload);
            return true;
        }
    }

    Mais plutôt de :

    const receiver: Receiver<MyProtocol> = {
        onSomeMessage: (payload) => {
            console.log(payload);
            return true;
        }
    }

    Si un gentil modo passait par ici ;)

  • [^] # Re: We need more

    Posté par  . En réponse au journal opensara: un nouveau jeu libre. Évalué à 2. Dernière modification le 15 octobre 2021 à 16:22.

    Les types somme sont représentables en Kotlin via les sealed classes :

    // Dans le même fichier
    sealed class Player()
    
    class Warrior(var strength: Int): Player()
    class Wizard(var mana: Int): Player()
    
    // Pattern matching exhaustif
    when (player) {
        is Warrior -> player.strength
        is Wizard -> player.mana
    }

    Après, j'en conviens, c'est peut-être un chouïa moins élégant qu'en TypeScript :

    type Warrior = { strength: number };
    type Wizard = { mana: number };
    type Player = Warrior | Wizard;

    De façon plus générale, et bien qu'étant plus habitué au typage nominal, je trouve incroyablement expressif le typage structurel de TypeScript (je pense entre autres à toi, keyof) ; on a pu faire des choses vraiment sympas avec. Du genre :

    type MyProtocol = {
        someMessage: {
            payload: string,
            response: boolean,
        }
    }
    
    const receiver: Receiver<MyProtocol> = {
        onSomeMessage: (payload) => {
            console.log(payload);
            return true;
        }
    }

    Cela peut paraître tout bête, mais je trouve chouette de pouvoir exprimer le fait qu'une structure prenant en charge MyProtocol doive implémenter des handlers de la forme onLeNomDuMessage. Avec bien sûr la vérification des types d'entrée et de sortie.

  • # Code

    Posté par  . En réponse au journal Livre pour expliquer l'architecture informatique aux enfants. Évalué à 3.

    J'avais adoré Code de Charles Petzold, et je le recommande à quiconque veut en savoir plus sur le fonctionnement d'un ordinateur. Mais bien que ce soit un livre extrêmement didactique, j'ai peur que ce ton neveu ne soit tout de même un peu jeune. Et je ne suis même pas certain qu'il soit traduit en français. :/