Michaël a écrit 2929 commentaires

  • [^] # Re: NFS mais en mieux ?

    Posté par  (site web personnel) . En réponse au journal Synchronisez vos données avec Dropbox. Évalué à 3.

    Sauf que malheureusement, Unison, c'est pas capable de communiquer entre deux versions différentes du logiciel

    J'utilise unison avec deux versions différentes (le serveur de l'uni et le client chez moi).

  • [^] # Re: NFS mais en mieux ?

    Posté par  (site web personnel) . En réponse au journal Synchronisez vos données avec Dropbox. Évalué à 1.

    Et rsync ou unison, ça ne fait pas la même chose? (en mieux?)

  • [^] # Re: Compréhension

    Posté par  (site web personnel) . En réponse au journal Programmation : la complexité c'est le mal. Évalué à 2.

    Tu critiquais dans ton commentaire l’absence de bibliothèque standard, et en concluait que le langage est pauvre.
    Ça n’a rien à voir.

    Tu as ô combien raison!

    Et je rajoutais que c’est inhérent à l’utilisation qui est faite du C. On s’attaque à un programme en C lorsque on veut quelque chose de rapide et optimisé pour son problème. Il est strictement impossible d’avoir une bibliothèque qui fasse l’unanimité dans ce cas.

    Et c'est tout aussi vrai. En pratique la réutilisabilité du code est très limitée dès qu'on s'attaque à des projets spécialisés. Par exemple, une bibliothèque implémentant un GET en HTTP ne seras probablements pas un bon point de départ pour écrire quelques chose comme curl ou wget. À l'inverse un programme ayant besoin de réaliser un simple GET en HTTP ne va pas le déléguer vers une bibliothèque aussi complexe que curl ou wget, si un choix plus simple est disponible.

    Le C a été introduit pour écrire un OS (Unix dans mon livre d'histoire), il
    est aussi utilisé pour programmer des machines (à laver, etc.): basiquement c'est du langage machine portable. Sur ce terrain il semble être incontesté.

    Pour l'écriture de prototypes, on a intérêt à se tourner vers d'autres solutions comme le shell ou des langages à la Perl, Python, etc. et on peut faire sa vie avec un prototype!

  • # Solidité et copie

    Posté par  (site web personnel) . En réponse à la dépêche Obsolescence du matériel et taux de panne. Évalué à 4.

    Coté matériel, j'ai acheté:

    • en 1992 un Amiga 501
    • en 199? un petit PC
    • en 1999 un K6 2
    • en 2005 un Athlon
    • en 2011 un Phenom

    à chaque fois avec les disques durs, etc. J'ai eu en tout et pour tout une panne disuqe dur, l'an passé d'ailleurs. Mon expérience personnelle n'est pas une statistique mais au niveau matériel, vous le voyez, j'ai pas eu tant de problèmes que ça!

    En plus d'après ce que j'ai compris, mon disuqe dur a laché parceque la machine avait perdu son alim au mauvais moment, probablement pendant que le HD modifiait ses données internes (la liste des secteurs qui ne marchent plus, etc.).

    En 2005 mon AMD K6 400 avait de plus en plus de mal à afficher une page WEB dans un temps raisonnable, et pour PostScript et PDF c'était plutôt mal barré dès le départ! J'ai donc upgradé. En 2011 je voulais me lancer dans le codage de vidéo et j'ai donc upgradé.

  • [^] # Re: Plastic Surgery

    Posté par  (site web personnel) . En réponse au journal [DÉTENTE] Liste de logiciels débiles. Évalué à 2.

    Je suis plutôt d'accord avec toi. Je crois qu'avoir l'idée d'écrire un tél soft tient pratiquement du génie pur :)

  • [^] # Re: incarnation du mal(tm) ou de la connerie ?

    Posté par  (site web personnel) . En réponse au journal Prochain achat? Un Nook. Évalué à 9.

    Qu'est-ce que c'est que ces patents idiots? Si quelqu'un porte plainte pour infraction à l'un de ces trois et ressort de la procédure sans une grosse amende et un stage de civisme pour plainte abusive, c'est à désespérer de la justice!

  • [^] # Re: OS?

    Posté par  (site web personnel) . En réponse au journal [DÉTENTE] Liste de logiciels débiles. Évalué à 1.

    C'est vrai que c'est trop tentant :) je pensais cependant l'éviter en écrivant ça.

    par exemple en ciblant un public trop restreint et pourtant non spécialiste

    Et puis je me disais que ce serait plus drôle avec des logiciels pas très connus.

  • [^] # Re: Duck typing

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 3.

    En gros plutôt que dire: Ma méthode doit recevoir une instance du type X
    Tu dis: Ma méthode doit recevoir un objet implémentant une méthode coin()

    C'est exactement l'analyse que fait le compilateur OCaml lorsqu'il lit quelque chose comme ça:

    # let send x = x # send;;
    val send : < send : 'a; .. > -> 'a = <fun>
    

    Après évaluation send est une fonction acceptant tout objet admettant une méthode send et appelant ladite méthode desuss: c'est exactement ce que tu dis.

    Dans les archives de la mailing list de OCaml j'ai retrouvé ça:

    Dario wrote:

    Re: Smells like duck-typing
    --8<--
    I am going for the no-inheritance object solution: [...] it allows code reuse thanks to OCaml's structural subtyping feature (the "duck" in this thread's title).

    Les gens intervenant sur la liste sont certainement aussi peu manches que ceux de lambdathe-ultimate.org et apparemment personne n'a crié au scandale en voyant que quelque'un prétendait assimiler le duck typing au typage structurel.

    Et pour l'instant aucun des arguments ici ne permet de vraiment faire la différence. Qu'est-ce que peut faire le duck-typing que ne permet pas le typage structurel?

  • [^] # Re: Logo ?

    Posté par  (site web personnel) . En réponse à l’entrée du suivi Ajouter une catégorie « Distribution ». Évalué à 3 (+0/-0).

    Que penses-tu d'une image de ce genre là?

    Floppy discs

    Les disquettes 3½, c'est pas ce qu'il y a de plus neuf mais tout ceux qui connaissent pensent automatiquement à une installation de logiciel lorsqu'ils en voient deux (pour les sauvegardes c'est soit une soit mille): je pense que c'est donc relativement explicite.

  • # Évolution

    Posté par  (site web personnel) . En réponse au journal Mais pourquoi le projet GNU fait-il tout pour priver le monde de liberté ?. Évalué à 0.

    Une belle histoire de père Castor:
    > Dans mon entreprise, on a une pile de disquettes 5¼ avec des documents Ami Pro. On n'a jamais pu les convertir dans un autre format ... on aurait pas du se laisser lock-in par notre vendeur de logiciels! Mais si on trouve un lecteur en état de marche, je crois que je demanderais à mon chef qu'on envoie tous ces documents dans le cloud: quitte à avoir des fichiers inutilisables autant ne pas savoir où ils sont.

  • [^] # Re: Et Google ?

    Posté par  (site web personnel) . En réponse à la dépêche HTTP Strict Transport Security. Évalué à 1.

    Moi je tape linuxfr.org dans le champ recherche de Google.

  • # lftp

    Posté par  (site web personnel) . En réponse au message Quel client FTP pour synchroniser un site web ?. Évalué à 2.

    J'utilise lftp l'option -x (exclude) de la commande mirror fait ce que tu veux.

    Pour préparer mon site WEB j'utilise un Makefile: chaque page est dans un dossier à part et dans mon cas est générée par make, dans le répertoire de base du projet make install copie les fichiers dans un dossier de mon choix qui est ensuite répliqué à l'identique sur le serveur, en faisant un miroir tout simple.

    L'intérêt de cette approche est qu'elle permet de générer les pages automatiquement et évite que des documents soient intempsestivement publiés.

    Dans mon cas j'utilise onsgmls qui transforme mon SGML en HTML (en remplaçant les entités).

    Je m'en sers pour générer:

    http://home.gna.org/bsdmakepscripts/

    le source est visible ici:

    http://svn.gna.org/viewcvs/bsdmakepscripts/trunk/Website

    et par exemple la page d'accueil est décrite par le dossier index dont le listing est

    Makefile page-title.sgml
    head-title.sgml page-content.sgml

  • [^] # Re: Les Fonctions Génériques

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 1.

    Je ne vois pas en quoi c'est différent de ce que l'on fait en C++ avec la spécialisation de méthodes templates.

    Je ne programme plus en C++ depuis longtemps, mais de souvenir, on peut surcharger les opérateurs et ce n'est pas la peine d'utiliser des templates pour ça si?

  • [^] # Re: Real Programmers use Fortran

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 1.

    Je la connaissais: elle est très marrante aussi :)

  • [^] # Re: Poooo!

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 8.

    En Allemagne les étudiants écrivent leurs mémoires en LaTeX, pas seulement les informateux, les physiqueux et les matheux mais aussi les économeux et sûrement d'autres encore. De plus il existe sur le sujet une littérature raisonnable en langue allemande depuis beaucoup plus longtemps qu'en langue française [*]

    L'utilisation de LaTeX par des non techniciens, comme les choix de tous logiciels, c'est aussi une affaire de culture.

    [*] Et deux des distibutions principales de TeX sont organisées par des allemands (MikTeX et teTeX), juste comme ça, en passant.

  • # Real Programmers use Fortran

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 2.

    Quel est l'avis des programmeurs qui trainent sur LinuxFR sur cette histoire de POO ?

    Fortran ne prend aucune disposition pour faciliter la programmation orientée objet, c'est bien la preuve que cette méthode est inutile. La bible du génie logiciel a été écrite par Ed Post en 1982. Ce texte est à lire d'urgence et tout le reste est à oublier.

  • [^] # Re: Rigidité

    Posté par  (site web personnel) . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 4.

    J'ai déjà constaté qu'enseigner des trucs comme « il n'y a pas de bonne ni de mauvaise conception » servait surtout aux étudiants à justifier tout et n'importe quoi.

    Dans l'introduction à son traité d'harmonie, Théodore Dubois fait remarquer que de nombreuses règles figurant dans son traité sont enfreintes par les maîtres: il rappelle alors que le traité est destiné aux étudiants et que ces règles les dispenseront de commettre les fautes de goût les plus évidentes (j'ajouterais: et à organiser leurs connaissances): ils s'en affranchironr lorsque leur goût sera formé et éduqué.

    Il ne faut pas perdre de vue que les connaissances dispensées dans un cours sont préparées pour leur public (en principe!): qu'il faille ensuite abandonner certaines règles dures et dogmes est un évidence --- mais ce n'est pas une raison pour jeter le cours avec l'eau du bain comme le font un peu vite certaines personnes.

    C'est un peu comme en typographie : enfreindre une règle, ce n'est pas très grave tant qu'on en est conscient et qu'il y a une bonne justification derrière.

    Ça va dans le sens de Dubois, on peut aussi relier à cette idée la parole de Baudelaire selon laquelle rien n'est plus facile que le vers libre: c'est facile pour lui, parcequ'il est formé.

  • [^] # Re: en shell

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 1.

    Ce n'est pas cosmétique: le but de la manip est de récupérer le corps du message.

  • [^] # Re: en shell

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 1.

    Cette solution marche, mais elle a le petit défaut de montrer la ligne vide, qu'on peut cacher avec tail.

    Encore un useless use of cat ™ :)

  • [^] # Re: sed ?

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 1.

    Ton script veut dire: sélectionne les lignes comprises entre une ligne vide (adresse /^$/)et la suivante ( adresse +1) et affiche les (opération p). Ce n'est pas du tout ce que veut l'OP. Tu l'as testé?

  • [^] # Re: Tentative

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 2.

    Le couple grep & tail & head est une bonne idée. Pour rester avec awk, utilisé dans mon exemple de solution pour récupérer le corps, l'isolation du header se fait comme cela:

    eml_get_header()
    {
      awk '/^\r$/{exit}{print}'
    }
    
  • [^] # Re: sed ?

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 2.

    Remplace l'expression rationnelle ^$ par ^\r$ mais la séquence \r ne marche pas avec tous les sed.

  • [^] # Re: Python + email

    Posté par  (site web personnel) . En réponse au message Découpage d'un fichier EML. Évalué à 4.

    En bash, c'est assez difficile de traiter des emails.

    Tout dépend de ce que tu veux faire: récupérer le corps de l'EMail n'est quand même pas si compliqué qu'il faille jeter son script shell pour transformer son programme en script Python.

    On tire au maximum parti de l'architecture d'UNIX lorsqu'on utilise le shell pour coordonner les traitements: presque tous les langages on un accès au shell, et on obtient une réutalisabilité de tous ces efforts.

    Pour la question de récuperer le corps, tu peux définir la fonction

    eml_get_body() {
      awk 'BEGIN{ flag=0 } {if(flag) print } /^\r?$/ { flag=1}'
    }
    

    et l'utiliser comme suit
    body=`eml_get_body < message.eml`
    

    Attention aux useless use of cat: au lieu de faire cat & pipe il vaut mieux utiliser un opérateur de redirection (les chevrons), comme dans

    grep -e '^To:' < message.eml
    

    ou l'exemple précédent.
  • [^] # Re: ca me rapelle un cauchemar

    Posté par  (site web personnel) . En réponse au journal En rêve, je me suis logué en root. Évalué à 3.

    C'est une des conséquences possible de l'undefined behavior, tu as peut-être appelé free plusieurs fois sur le même pointeur le jour d'avant?

  • [^] # Re: Evolution 2.0

    Posté par  (site web personnel) . En réponse au journal En rêve, je me suis logué en root. Évalué à 3.

    Je me branche à mon deck et passe par la matrice (si si!) ça ira plus vite :)