BFG a écrit 901 commentaires

  • [^] # Re: Le faire, c'est mieux quand c'est possible...

    Posté par  . En réponse au journal Nouvel article de Bret Victor sur sa vision de l'environnement de développement du futur. Évalué à 3.

    Pour remplacer des paramètres optionnels (ou éviter de nombreuses surcharges au constructeur), ça peut être utile, mais pour des paramètres obligatoires (comme les x, y, largeur, hauteur d'un rectangle), c'est une mauvaise idée, car le code compilera encore même si l'on oublie ".x(1234)".

  • [^] # Re: Le faire, c'est mieux quand c'est possible...

    Posté par  . En réponse au journal Nouvel article de Bret Victor sur sa vision de l'environnement de développement du futur. Évalué à 2.

    Vous risquez d'en oublier un, et l'erreur ne sera pas vue à la compilation.

  • [^] # Re: comment gagner...

    Posté par  . En réponse au journal Échec et mat. Évalué à 10.

    rocker rapidement pour protéger son roi (plus simple de faire le petit rock).

    Le roque.

  • [^] # Re: Une mauvaise, et une mauvaise...

    Posté par  . En réponse à la dépêche Une bonne et une mauvaise nouvelle : Twitter et Diaspora. Évalué à 3.

    L'image est une parodie de celle là
    Image

  • # Deux paramètres

    Posté par  . En réponse au message retourner un pointeur vers un tableau de pointeurs. Évalué à 4.

    Plutôt que retourner un tableau de pointeurs, qui serait de taille fixe, vous pouvez utiliser des paramètres de type sortie : avoir des char * et indiquer à la fonction qu'elle doit stocker ses résultats dedans.

    /* Pour l'exemple, sortie_debut contiendra le debut de la chaine, sortie_fin la fin de la chaine.
    Le début et la fin sont tous les 2 passés en paramètre par souci de cohérence.
    Le début est également retourné pour pouvoir l'utiliser dans un if plus facilement (si vous le souhaitez, peut-être cela crée une confusion).
    */
    char *expmatch(char *entree, char **sortie_debut, char **sortie_fin) {
        *sortie_debut = entree;
        *sortie_fin = entree + strlen(entree);
        return *sortie_debut;
    }
    
    int main(int argc, char **argv) {
        char *debut; /* pas besoin d'initialiser */
        char *fin;
    
        if (expmatch("Hello world!", &debut, &fin)) {
            /* debut et fin sont valides */
        } else {
            /* pas trouvé, debut et fin non valides (ou NULL) */
        }
    }
    
    

    Vous pouvez également passer un tableau de pointeurs en paramètres qui sera utilisé en sortie.

    void expmatch(char *entree, char * sorties[2]);
    
    

    Si vous souhaitez vraiment retourner un tableau, alors il vous faudra utiliser de l'allocation dynamique (malloc et free).

  • [^] # Re: xdg-open

    Posté par  . En réponse au message [résolu] Ouvrir les fichiers selon leur extension. Évalué à 2.

    Ici, xdg-open fonctionne par extension, je viens de tester avec un fichier qui a une mauvaise extension, et c'est l'application associée à l'extension qui s'est ouverte, pas le type mime.

  • [^] # Re: freeOTFE

    Posté par  . En réponse au message donnée chriffée. Évalué à 3.

    Malheureusement, FreeOTFE est pénible à faire fonctionner sur Windows 64bits.

  • [^] # Re: Il ne manque pas une info?

    Posté par  . En réponse au journal Banc d’essai OpenGL/Direct3D de Source engine par Valve. Évalué à 2.

    Ce n'est pas ce que dit jwz. (Il parle d'OpenGL ES, mais c'est tout de même bien OpenGL)

  • # "Norvège"

    Posté par  . En réponse au journal Quel avenir pour Qt ?. Évalué à 10.

    après avoir dézingué Symbian et Maemo, la firme norvégienne qui licencie plus vite que son ombre

    Trolltech est norvégienne. Nokia est finlandaise.

  • [^] # Re: A fond

    Posté par  . En réponse au journal La fin de la vue en arborescence dans Nautilus ?. Évalué à 10.

    Je vois bien les utilisateurs chercher "DSCN_4242.jpg"…

  • [^] # Re: seconde zone

    Posté par  . En réponse au journal Valve prend Linux au sérieux. Évalué à 10.

    apparentière

    C'est l'écriture phonétique de "à part entière" ?

  • [^] # Re: gmail

    Posté par  . En réponse au journal Été meurtrier chez Mozilla. Évalué à 2.

    Il a parlé d'un domaine hébergé, donc tester avec @online.net n'est pas pertinent.

  • [^] # Re: Le titre est trop long

    Posté par  . En réponse au journal Typage statique versus typage dynamique. Évalué à 1.

    day(9) serait probablement moins "extraterrestre" que 9_day.

  • [^] # Re: Détection

    Posté par  . En réponse au journal Réalisation d'un site de Paste web 2.0. Évalué à 3.

    def foo(x):
        return 42
    
    

    est détecté comme du Ruby (et comme du Python en seconde position). La bibliothèque utilisée retourne-t-elle un score évaluant la confiance en le résultat ? Cela permettrait de laisser le choix à l'utilisateur si le résultat est trop incertain ou si plusieurs résultats sont trop proches.

  • [^] # Re: for ?

    Posté par  . En réponse au message Copier tous les fichiers d'une arborescence dans un même répertoire. Évalué à 2.

    Vous devez parler de la variable IFS. Cela échouera encore avec les noms de fichiers contenant des retours à la ligne mais ils sont plus rares.
    Si l'on veut conserver la boucle for et la commande find, il faut utiliser le caractère nul comme séparateur sûr.

  • [^] # Re: for ?

    Posté par  . En réponse au message Copier tous les fichiers d'une arborescence dans un même répertoire. Évalué à 2. Dernière modification le 05 juillet 2012 à 18:26.

    Cela ne gère pas les noms de fichiers contenant des espaces, dès le for FILE in `find...`.

  • # simple

    Posté par  . En réponse au message Copier tous les fichiers d'une arborescence dans un même répertoire. Évalué à 8.

    find content/ -exec cp -v {} $DEST \;
    
    

    Sans utiliser find (avec zsh ou bash) :

    cp content/**/* $DEST
    # variante pour zsh pour ne sélectionner que les fichiers et non les dossiers/liens symboliques/etc.
    cp content/**/*(.) $DEST
    
    
  • [^] # Re: défauts et qualités

    Posté par  . En réponse au journal Gé(né)rer ses mots de passe. Évalué à 2.

    Je viens d'essayer avec zsh dans tmux dans Konsole, cela fonctionne parfaitement : stty -echo

  • [^] # Re: défauts et qualités

    Posté par  . En réponse au journal Gé(né)rer ses mots de passe. Évalué à 3. Dernière modification le 30 juin 2012 à 15:05.

    Le -s de read peut être remplacé par stty -echo.

  • [^] # Re: Ce qu'il faut faire

    Posté par  . En réponse au journal Canonical embrasse la technologie Microsoft (bootloader). Évalué à 6.

    C'est sans doute désactivé par défaut car de nombreuses applications se mettraient à cesser de fonctionner. MacOSX a le même réglage par défaut, et il est connu que Photoshop ne fonctionne pas sur MacOSX si l'on rend le système de fichiers sensible à la casse.

  • [^] # Re: Pas si convaincu

    Posté par  . En réponse au journal Des fenêtres dans l'informatique embarquée. Évalué à 2.

    Surtout que ce système est limité à Paris me semble-t-il, donc si on n'est pas parisien, on n'y pense pas vraiment de soi-même.

    On en trouve ailleurs, comme à Nice.

  • [^] # Re: Google's you friend

    Posté par  . En réponse au message savoir dans combien de temps se termine un copie ou le %. Évalué à 2.

    Oui, strace est utilisé pour compter tous les appels systèmes write(2) indistingués. Il suffit que cp écrive sur la sortie d'erreur standard (par exemple) pour que l'information de progression soit fausse.
    De plus, ça ne fonctionne qu'avec un seul fichier. (Dans ce cas-là, on peut se contenter de pv -pret ENTREE > SORTIE)

  • [^] # Re: Je cherche à comprendre

    Posté par  . En réponse à la dépêche Le langage D. Évalué à 2.

    Si ses méthodes d'argumentation font controverse, le fond de ses remarques est souvent juste et il sait reconnaître quand il a tort.
    En l'occurrence, ici, il y a un problème de gestion d'encodage, et ce problème n'est pas dans la console utilisée. Également, l'intérêt d'un programme d'exemple est de montrer les bonnes pratiques, par exemple en vérifiant les entrées pour que le programme ne plante pas.

  • [^] # Re: cross compilation

    Posté par  . En réponse à la dépêche Le langage D. Évalué à 5.

    Il parle de compiler sous Linux un .exe qui sera utilisable sous Windows, sans avoir besoin de compiler depuis Windows.

  • [^] # Re: Le langage D est-il choisi lorsqu'on ne sait pas avec quoi coder ?

    Posté par  . En réponse à la dépêche Le langage D. Évalué à 6.

    Mais si on utilise pas const_cast, je vois pas en quoi le const de C++ est moins thread-safe que le immutable de D.

    Parce qu'une référence const peut être obtenu à partir d'une référence non-const en C++. La référence non-const peut être modifiée, modifiant ainsi la référence const depuis un autre endroit. En revanche, une référence immutable ne peut pas être obtenue depuis une référence non-immutable.

    int x = 0;
    const int &y = x;
    x = 42; // y est modifié (à replacer dans un contexte multi-thread)