Axioplase ıɥs∀ a écrit 3042 commentaires

  • [^] # Re: Typage

    Posté par  (site web personnel) . En réponse au message débutant java : opérations de base sur les listes. Évalué à 6.

    Alors, "concis", c'est pas la bonne métrique. Si t'as envie de jouer au golfe, tant mieux. Mais je n'ai aucune envie de maintenir du code qui préfère la concision (et les potentiels bugs à l'execution) simplement car c'est concis. Tu veux un containeur qui contient tes objets spécifiques, et rien d'autre, mais qui soit extensible sans aucun changement.

    import java.util.ArrayList;
    import java.util.List;
    
    class ListeExtensible {
    
        interface MyStuff { 
            public void print();
        }
    
        class MyInt implements MyStuff {
            final int i;
            public MyInt(int i) {
                this.i = i;
            }
            public void print() {
                System.out.println(this.i);
            }
        }
    
        class MyString implements MyStuff {
            final String s;
            public MyString(String s) {
                this.s = s;
            }
            public void print() {
                System.out.println(this.s);
            }
        }
    
        public void doStuff() {
            List<MyStuff> maListe = new ArrayList<>();
            maListe.add(new MyInt(1));
            maListe.add(new MyString("hello"));
            for (MyStuff element : maListe) {
                element.print();
            }
        }
    
        public static void main(String[] args) {
            ListeExtensible l = new ListeExtensible();
            l.doStuff();
        }
    }

    Pas besoin de casts (vu qu'on ne retourne jamais "Object"), on ne peut pas avoir d'erreur à l'exécution, et on peut ajouter autant de nouveau sous-types qu'on veut sans qu'on doive modifier aucun code existant. C'est, je crois, la manière de s'y prendre en Java. Alors, oui, c'est plus compliqué que Python, mais c'est ainsi. Language différent, paradigme différent.

  • [^] # Re: Typage

    Posté par  (site web personnel) . En réponse au message débutant java : opérations de base sur les listes. Évalué à 4.

    Comment les generics permettent-ils de mettre deux types qui n'ont pas de relation de sous-typage dans la liste (ce que l'OP cherche à faire), sans passer par Object (qui est objectivement une mauvaise approche en termes de design/architecture Java) ou un nouveau type ? Je ne vois pas le rapport, et mon exemple utilise des génériques (List<Integer> par exemple). Si tu pas un passage précis dans les 20+ pages de ton lien qui indique comment mettre des entiers et des chaînes dans une liste, n'hésite pas à le partager.

    S'il veut commencer par des choses plus douces, alors résoudre des exos Python en Java n'est pas une bonne idée. Python et Java sont très différents, et ce qui est élégant et simple dans l'un ne l'est pas forcément dans l'autre…

    "Comment mélange-t-on des entiers et des chaînes dans une liste en Java ?" -> On ne le fait pas, ou alors on créée une liste d'objets "EntierOuChaîne". C'est à la fois plus dur, et la manière la plus simple.

  • [^] # Re: Typage

    Posté par  (site web personnel) . En réponse au message débutant java : opérations de base sur les listes. Évalué à 0.

    Ah, non, ça c'est parce que le dernier project que j'ai écrit était en Python, où justement les types sont 'str' et 'int', donc je tape ça automatiquement…

    Mais la syntaxe, on s'en cogne. Ton compilateur/IDE s'en charge pour toi. En revanche, utiliser Object au lieu d'un conteneur adéquat (ou d'une conversion vers une chaîne si c'est juste pour faire un affichage), c'est un problème d'un tout autre ordre…

  • [^] # Re: Typage

    Posté par  (site web personnel) . En réponse au message débutant java : opérations de base sur les listes. Évalué à 2.

    Nan, mais faut pas abuser. Le langage est typé et objet, donc c'est beaucoup mieux d'utiliser une classe qui peut contenir n'importe lequel des deux type, plutôt qu'Object. Traduire Python en Java, c'est idiot. Autant apprendre à penser en Java : tu veux stocker deux types, tu crées un conteneur, et tu fais du Open/Close au lieu de faire des casts et des IFs…

  • # Typage

    Posté par  (site web personnel) . En réponse au message débutant java : opérations de base sur les listes. Évalué à 1.

    En java, tu ferais qqchose comme ça:

    List maListeDeNombres<Int> = new ArrayList<>();
    maListeDeNombres.add(1);
    
    List maListeDeChaines<Str> = new ArrayList<>();
    maListeDeChaines.add("lundi");
    ...
    

    Mais tu ne peux pas mettre 1 et "lundi" dans une même troisième liste. Tes choix sont:
    * convertir les nombres en chaînes de caractères
    * créer une classe NombreOuChaine qui peut contenir un nombre ou une chaîne, et créer List<NombreOuChaine> t3.

    Oui, c'est un peu lourd. Mais ça évite pas mal de bugs que tu pourrais avoir en Python sur des projets plus larges, ou évite que tu regardes le type à l'exécution.

  • # Conjugaison !

    Posté par  (site web personnel) . En réponse au sondage et si c'était à refaire ?. Évalué à 5.

    On devrait avoir des conditionnels, pas des futurs !
    - je le referais
    - je le referais faire
    - je ne le referais pas
    - je le referais autrement
    - je demanderais pour qu'on le refasse ensemble

    Et puis, c'est ptêt parce que ça fait plus d'une décade que je suis en dehors de la francophonie, mais "je demanderais POUR qu'on le refasse ensemble", ça m'écorche les nyeux et les noreilles…

    Et enfin, je suis vieux jeu ; je propose même qu'on écrive « je demanderais qu'on le refît ensemble. »

  • [^] # Re: soundtracker

    Posté par  (site web personnel) . En réponse au journal Haiku, l'OS zen . Évalué à 3.

    Moi je me suis demandé s'il était gaucher ou pas: la tablature me parait à l'envers…

  • [^] # Re: L'original

    Posté par  (site web personnel) . En réponse au journal Clavier orthogonal, clavier à une main, etc pourquoi rien ne change ?. Évalué à 2.

    J'ai cliqué le lien du journal, même pas cherché dans mon moteur de recherche… Y'a rien dans le journal qui disait que c'était dispo en kit.

  • [^] # Re: L'original

    Posté par  (site web personnel) . En réponse au journal Clavier orthogonal, clavier à une main, etc pourquoi rien ne change ?. Évalué à 1.

    L'Ergodox que l'OP mentionne a un prix comparable.
    Je n'ai pas vraiment eu de soucis avec la taille du clavier.

  • [^] # Re: L'original

    Posté par  (site web personnel) . En réponse au journal Clavier orthogonal, clavier à une main, etc pourquoi rien ne change ?. Évalué à 1.

    L'Ergodox a un prix comparable au Kinesis, dans les 350 USD. C'est tout aussi "hors de prix", et, en ce qui me concerne tout-à-fait acceptable. J'ai mon premier Kinesis depuis 2007, soit 1.6 dollars par mois. Un investissement bien rentable pour des raisons médicales.

  • # L'original

    Posté par  (site web personnel) . En réponse au journal Clavier orthogonal, clavier à une main, etc pourquoi rien ne change ?. Évalué à 2.

    Une fois que j'ai cité ces deux là il ne reste plus grand chose de potable en clavier avec les touches alignés … à si : l'émulateur de clavier d'android aligne les touches !

    Tu oublies le parent de ces deux claviers: le Kinesis Advantage.
    Je n'utilise que ça depuis 2007, et je suis en bépo (légèrement modifié à la main), mais ils font déjà ce genre de clavier depuis au moins les années 90.

    Et tu as, encore plus ancien je crois, les claviers de chez maltron, y compris les claviers ergo à une main et pour personnes ne pouvant pas utiliser leurs mains.

  • # Pas forcément amateurisme

    Posté par  (site web personnel) . En réponse au journal Nucléaire, l'amateurisme d'EDF. Évalué à 10.

    Quand je vois les difficultés qu'on a à gérer des logiciels simples, je trouve le titre de ton journal un peu poussé ; une centrale, c'est pas un système simple…

    Aussi, j'imagine qu'ils ont des procédés en place pour faire des post-mortem et corriger cette classe de problèmes en entier (et pas juste ce robinet).

  • [^] # Re: Gorilla password

    Posté par  (site web personnel) . En réponse à la dépêche Bitwarden, un gestionnaire de mots de passe libre. Évalué à 3.

    Sur android, tu peux utiliser PasswdSafe comme client. Ils utilisent le même format, et il peut se synchroniser avec Dropbox (et potentiellement d'autres services?)

  • # Je propose de meilleurs indicateurs

    Posté par  (site web personnel) . En réponse au sondage Quel indicateur de performance pour le développement de logiciel ?. Évalué à 3. Dernière modification le 02 mars 2020 à 19:42.

    1. Design aussi simple que possible, mais qui rend facile le passage a` l'echelle.
    2. Couverture des tests aussi haute que possible / aussi basse que justifiable (e.g., pas la peine de tester le code Java genere' par Lombok.)
    3. Documentation decrivant le systeme tel qu'il est a` tout moment.
    4. Respect des regles de Clean Code.
    5. Facilite' pour toute personne nouvelle sur ce projet a` le modifier en respect les 4 points precedents.
  • # Common Lisp

    Posté par  (site web personnel) . En réponse au sondage Quelle est la technologie la plus obsolète sur ou avec laquelle j'ai dû travailler récemment ?. Évalué à 4.

    Mais c'etait mon choix et j'etais content.

  • [^] # Re: anglais dans tous les domaines

    Posté par  (site web personnel) . En réponse au sondage Quel est votre niveau d’anglais ?. Évalué à 2.

    Il y a énormément de traductions littérales au Québec. On s'y fait.

  • # Lambda calcul

    Posté par  (site web personnel) . En réponse au journal L/D·es différents paradigmes de programmation en Python. Évalué à 2.

    La programmation fonctionnelle considère un programme de calcul comme l'évaluation de fonctions mathématiques basées sur le calcul lambda. Le calcul lambda est un système formel en logique mathématique pour exprimer le calcul basé sur l'abstraction de fonction et l'application utilisant la liaison et la substitution de variables. Il suit l'approche de la "solution à apporter", c'est-à-dire qu'il exprime la logique sans décrire son flux de contrôle, d'où il est aussi classé dans le paradigme de programmation déclarative.

    J'ai pas souvenir d'avoir entendu "calcul lambda". Même la page Wikipedia liée dit "Lambda calcul".
    Aussi, je ne pense pas que ça utilise nécessairement la substitution de variables, si on utilise la notation de Bruijn, spécifiquement vu qu'on manipule tous les termes d'une classe d'alpha-equivalence via une représentation canonique.

  • # Je ne comprends pas

    Posté par  (site web personnel) . En réponse au journal Aller au travail, quand on n'a plus le choix.. Évalué à -1.

    Bon, j'habite pas en France, mais dans un pays où le président est un génie très stable.
    Ben, entorse, jambe cassée, inflammation de la fascia plantaire, etc, ça n'empêche pas de travailler assis à un bureau. Tu bosses chez toi si tu peux, sinon, ben tu vas au travail en béquilles, en "knee scooter" (ça coute un peu plus de 100 dollars),en uber, ou en voiture (la tienne ou co-voiturage). Les options ne manquent pas…

  • [^] # Re: Le compromis Irelandais

    Posté par  (site web personnel) . En réponse au journal Chirac et les brevets logiciels: de la promesse en campagne électorale à la trahison. Évalué à 6. Dernière modification le 26 septembre 2019 à 21:21.

    Tu ne manques pas d'Eire !

  • [^] # Re: Plus gros problème du libre

    Posté par  (site web personnel) . En réponse au journal Richard Stallman, l'affaire Epstein et des positions franchement douteuses. Évalué à 2.

    Oui, mais la loi Californienne (où j'imagine se sont passés les faits), ce n'est pas la loi de Pennsylvanie…

  • [^] # Re: Krita ?

    Posté par  (site web personnel) . En réponse au journal Tweak d'interface Gimp à la PS-like pour une transition en douceur vers du libre . Évalué à 2.

    On dit que Gimp est l'alternative libre à Photoshop. Dans le milieu des illustrateurs, un nomber énorme d'artistes peint directement avec Photoshop pourtant… Ne devrait-on pas pouvoir utiliser Gimp comme outil principal de dessin alors ?

  • # Leçon du jour

    Posté par  (site web personnel) . En réponse au journal Vive l'insertion digitale. Évalué à 10.

    Aujourd'hui, nous allons étudier une structure de données : les queues.

  • # kapoué

    Posté par  (site web personnel) . En réponse au journal Les interfaces tablettes, la suite.. Évalué à 2. Dernière modification le 17 juin 2019 à 21:36.

    Ton fils de 6 mois et demi a vu la boîte de purée ?

  • # C'est déjà 'dredi ?

    Posté par  (site web personnel) . En réponse au journal Emacs dans tmux en 24 bits de profondeur. Évalué à 6.

    Cool ! Maintenant t'as des couleurs jolies dans un éditeur affreux !

  • # Rien de nouveau

    Posté par  (site web personnel) . En réponse au journal [FAILLE] Code execution dans Vim via un fichier malicieux forgé. Évalué à 7.

    Même la doc des modelines (:he modeline) indique Still, there is always a small risk that a modeline causes trouble.
    C'est pas la première fois que ça arrive. Tant qu'il y aura des programmes qui consomment des données externes, il y aura des attaques contre ces programmes.