gaaaaaAab a écrit 1387 commentaires

  • [^] # Re: arf...

    Posté par  . En réponse au message Alternatives aux shells. Évalué à 1.

    Ne nous méprenons pas, je suis un grand fan du shell ! et en ligne de commande, je me fais plaisir. Si malin passe dans la coin, il confirmera peut -être ;)

    Mais quand les outils shell que tu utilises pour contrôler tes applications deviennent bien gros, ça devient compliqué à maintenir.

    Un des points qui me gène le plus dans le scripting shell, c'est la gestion d'erreur, que je trouve trop couteuse par rapport à d'autres langages de script .

    Pour finir, en guise d'illustration, deux lignes jetables pas optimisées à lancer dans un /usr/bin qui donne chez moi :

    $ wc -l `file * | grep Bourne | cut -d ':' -f 1` | grep -v total | awk '{tot = tot + $1}END{print tot " / " NR " ; " tot / NR}'
    30066 / 246 ; 122.22
    $ wc -l `file * | grep perl | cut -d ':' -f 1` | grep -v total | awk '{tot = tot + $1}END{print tot " / " NR " ; " tot / NR}'
    85325 / 111 ; 768.694


    Soit une longueur moyenne de 122 lignes pour les scripts sh et de 768 pour les script perl, alors que la syntaxe de perl est beaucoup plus compacte que celle du shell.
    Je n'ai pas calculé l'écart type, mais j'ai vérifié que c'est pas un script perl de 50000 lignes qui fait monter la moyenne.

    maintenant, à chacun d'en tirer les conclusions qu'il veut :)
  • [^] # Re: arf...

    Posté par  . En réponse au message Alternatives aux shells. Évalué à 2.

    oui, personne dit qu'on ne peut pas, juste que ça n'a pas été conçu pour ça.

    C'est comme écrire un pilote de périphérique en java, on peut ... mais bon ... ;)

    Et le troll rebonda.
  • # free ?

    Posté par  . En réponse au message Postfix n'écoute que sur 127.0.0.1. Évalué à 2.

    Une idée comme ça : es-tu chez free ?
    par défaut, ils filtrent le port 25.
    Il faut explicitement demander de le laisser passer depuis l'interface de config du compte free.
  • [^] # Re: Merci

    Posté par  . En réponse au message Guide Debian -> Red Hat. Évalué à 1.

    Alors en fait, tu connais ces outils beaucoup mieux que moi. C'est juste qu'on ne mettait pas la même chose derrière le terme "gestion des dépendances", alors ça m'a enduit d'erreur ;-)

    pour ma culture, tu sais si rpm connait le net depuis ses débuts ou si c'est un ajout "récent" (c-a-d post-2000 ;-) ?
    (oui, j'ai la flemme de chercher sur le net. Non, ce n'est pas la peine de perdre du temps à chercher l'info si tu ne l'as pas en tête :-)
  • [^] # Re: Merci

    Posté par  . En réponse au message Guide Debian -> Red Hat. Évalué à 1.

    alors en fait, si, rpm gère les dépendances (ouf !). Ce qu'il ne sait pas faire par contre, c'est résoudre les problèmes des dépendances manquantes.

    Yum, c 'est la surcouche qui connait le net, et qui sait télécharger des paquets en résolvant les problèmes de dépendance à ta place.

    A noter aussi, il me semble, que rpm/yum ne gèrent pas la présence d'un même paquet dans plusieurs versions différentes aussi bien qu'apt. Du coup, une install d'un truc un peu récent peu forcer l'upgrade d'une tripotée de paquets. (genre un upgrade de python). Et quand l'espace disque est limitée sur la machine, ça peut devenir problèmatique (l'update de Fecora 3 à 5, puis de 5 à 7, c'est un peu sport :)
  • # indent

    Posté par  . En réponse au message vim & indentation fichiers source. Évalué à 1.

    Si tu arrives à écrire la liste des options qui t'intéressent dans celles que propose la commande indent, tu peux aussi faire :
    :%!indent <tes options d'indent>

    Après, si tu es motivé, ça doit être possible de mapper cette commande dans ton .vimrc, et tu pourras indenter tout un fichier sur une simple pression de touche ! =)
  • # Cygwin !

    Posté par  . En réponse au message apt-get windows. Évalué à 1.

    facile à trouver : http://cygwin.com

    Je sais qu'ils ont un bout de soft pour choisir les paquets cygwin que tu veux installer. Par contre, je ne sais pas si tu peux t'en servir pour accéder à des repository cygwin "non officiels".

    Apparemment, (merci google), il y a un apt pour cygwin :
    http://donc.wordpress.com/2006/08/04/apt-for-cygwin/
    (pas été voir si c'est un port un du from scratch).

    'fin, peut-être une piste à creuser quoi.

    --
    gab
  • [^] # Re: Raison pragmatique de ne pas le faire...

    Posté par  . En réponse au message Stocker des photos dans une base de données. Évalué à 1.

    +1

    J'aurais moins bien dit :-)
  • [^] # Re: Je suis pas un expert, mais ...

    Posté par  . En réponse au message Stocker des photos dans une base de données. Évalué à 1.

    tu sauves juste ta base de données, et en cas de crash, ça remarche rapidement.

    ça se discute ... le souci, c'est qu'en cas de crash, tu vas restaurer chaque fichier corrompu de ta DB, quand bien même seul 5 % d'un fichier serait endommagé. Et un fichier de DB, ça peut devenir très gros, et restaurer un truc très gros, c'est trèèès long ... :/
    En conservant les photos sur le FS, si 5 % du FS est naze, tu ne restaures que ces 5 % là.
  • # auto ?

    Posté par  . En réponse au message Pb interface eth0 down. Évalué à 3.

    je dirais de rajouter eth0 dans ta directive auto :
    auto lo eth0

    mais je suis surpris qu'eth0 soit montée au boot du coup ...
  • [^] # Re: E17

    Posté par  . En réponse au sondage Pour 2008 vous attendez surtout.... Évalué à 1.

    je crois qu'on en est toujours aux e 16.999.* :D

    + 1 pour e17 en 2008
  • [^] # Re: _deux_ gros chantiers ?

    Posté par  . En réponse à la dépêche Enlightenment : c'est reparti. Évalué à 2.

    ouais, il a pas du relire sa phrase. P-e que le deuxième point, ça serait "comment the default theme so its better documented for people to build new
    themes from and learn Edje" du coup ...
  • [^] # Re: gna.org ?

    Posté par  . En réponse à la dépêche gna.org à la recherche de machines hébergées. Évalué à 2.

    youhou ! un autre lecteur de /. à -1 ! ;)
  • [^] # Re: en C ?

    Posté par  . En réponse au message des passionnés d'IA dans la salle ?. Évalué à 4.

    Malheureusement, diffuser largement des informations et se protéger des spams sont deux objectifs mutuellement exclusifs. Comment veux-tu que les gens accrochent à ce que tu proposes si tu expliques rien dans ton message de départ et s'il faut aller à la chasse aux infos pour imaginer de quoi tu parles ... ?

    En ce qui concerne l'édition de mon pessage précédent ... l'interface de linuxfr ne permet pas de faire ça (et heureusement). Si tu l'avais expliqué dans ton message, j'aurais pas fait de lien ... mais encore une fois, vu le peu de contenu de ton message, désolé, mais tu n'as à t'en prendre qu'à toi même sur ce coup là ...

    Si un admin passe dans le coin ... sinon ... faudra faire avec le spam (de toute façon, il faut faire avec le spam ... :/ )

    pour conclure, je te prie de m'excuser de m'être un peu intéressé à ce que tu faisais ... (humour ! humour ! ;-)
  • [^] # Re: tous les jours ..?

    Posté par  . En réponse au sondage Vous lisez LinuxFr.org :. Évalué à 6.

    ben la preuve que non ! :)
    Vu que les sondages ne changent pas si souvent que ça, ça m'arrive de pas détecter tout de suite qu'il y en a un nouveau.

    Je lag d'un jour là ... (en même temps, avec un premier commentaire à 23 h hier soir .. je lag p-e pas tant que ça :)
  • # en C ?

    Posté par  . En réponse au message des passionnés d'IA dans la salle ?. Évalué à 2.

    Bon déjà, autant donner le lien vers http://upsideup.free.fr/ puisque c'est là bas qu'il y a des trucs à lire. Accessoirement, faire un message un tout petit peu explicatif, ça ne serait pas mal pris je pense :-)

    Sinon, je suis relativement néophyte en la matière, mais je n'ai pas trouvé de références vers les travaux d'autres gens sur ton site. Quelles références as-tu sur la conception des AI ? Si la réponse est 0, je ne peux que t'inviter à farfouiller sur le grand 'Ternet, y a surement des trucs intéressants à glaner.

    Sinon, je m'interroge sur le choix du langage. Je ne dis pas que le C, c'est nul (vu que j'en fais tous les jours :), mais il me semble que dans le domaine, c'est plutôt les langages fonctionnels qui ont la cote.
    D'autre part, pour un truc qui n'a pas besoin de trop s'interfacer avec le système, et qui n'a pas trop besoin de perfos dans un premier temps, ça parait plus sain de partir d'un bon langage de script (au hasard python) ou d'un lisp quelconque ..

    au passage, quelques critiques rapides, et j'espère constructives, sur le code que j'ai vu :
    la déclaration de variables comme ça :
    void *e01 (); void *e02 (); void *e03 (); void *e04 (); void (...)
    c'est à se flinguer .. Déjà, tu en as une quantité limitée (à moins de te gaver à en déclarer plus quand t'as besoin) et pas de possibilité d'en rajouter dynamiquement (ce qui est plutôt dommage).
    Autre point, le nommage : comment t'y retrouves tu entre e05 et e87 ? A mon avis, environ personne n'a envie de se mettre dans le crane le role fonctionnelle de 100 fonctions de type e* ... c'est une barrière d'entrée dans le projet non négligeable ...

    ah oui, avec des void * dans tous les sens, tu vas passer ton temps à caster tes pointeurs vers des types divers et variés. Ca serait surement plus simple avec un langage un peu introspectif ...

    C'est aussi plus simple pour un langage de scripts de se rajouter des bouts tout seul sans rien avoir à recompiler ...

    bref, il y a, à mon avis, quelques trucs à revoir pour rendre ton projet plus "sexy" pour des nouveaux venus :-)

    PS: ah oui, comme je suis aussi grognon, j'aime pas du tout le mot "collaborateur". Je sais très bien ce que c'est (puisque j'en serais un). C'est du consultant jmelapète langue de bois, pour pas dire que on est juste un grouillot :D
  • # Hibernate

    Posté par  . En réponse au message Apprendre struts. Évalué à 3.

    Pour Struts, je peux pas te dire, on a un J2EE lead architecte ('tain, y avait longtemps ;-) qui s'occupe de ça, pis je suis pas super fan de java.

    Par contre, pour filer un coup de main, j'ai fait un petit peu d'Hibernate.
    Le "Hibernate, Java Persistence with Hibernate" chez Manning m'a permis de faire ce que je voulais sans *tout* lire. En bonus, il a l'air bien complet et bien fait.

    J'ai un peu lutté pour coller le plug in Hibernate dedans Eclipse. C'est p-e aussi parce que j'avais jamais utilisé Eclipse avant, alors avant d'avoir un environnement Jboss/Struts/hibernat/maven et que sais-je encore ...

    Concernant Hibernate, la démarche consistant à faire un chouette schéma entité/association a bien fonctionné pour nous. Hibernate génère quand même un peu les trucs à sa sauce, et le schéma relationnel résultant correspond pas toujours à ce que j'aurais défini en sql pur mais bon. Le point le plus notable est l'utilisation systèmatique de clefs primaires générées plutôt que de clefs primaires naturelles.

    Bon, même sans être un gros fan de Java, faut reconnaitre qu'Hibernate fait économiser un bon gros paquet de code, surtout sur le chargement/sauvegarde d'objets en DB (forcément, c'est à ça que ça sert ;-)

    désolé, j'ai un peu dérivé, mais ça m'a fait du bien d'en parler, merci de votre attention :-D
  • [^] # Re: sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    ah oui, en fait, tu veux un seul namespace titi par fichier .. ?

    pour travailler sur la dernière occurence d'un motif dans un fichier, on ne peut pas utiliser une commande qui fonctionne ligne à ligne. On est bien forcé de parser au moins une fois le fichier jusqu'au bout pour identifier la ligne ou on veut intervenir.
    Dans ton cas, plusieurs solutions :
    - identifier le numéro de ligne du #endif qui t'intéresse (par exemple avec grep -n) et insérer ensuite ton accolade fermante avec une combinaison de head et tail
    - compter le nombre d'occurences de #endif, et transmettre cette info à sed pour qu'il n'intervienne que sur cette occurence du motif. Je te laisse explorer un peu la doc de sed / grep.
    Je te renvoie à l'excellent lien du commentaire http://linuxfr.org/comments/868660.html#868660

    "Sinon tu es un chef !!"
    merci :)
    au bout de quelques années d'utilisation intensive, on finit par apprendre 2/3 trucs, surtout quand on aime ça ;)
  • [^] # Re: sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    Je t'invite très fortement à lire un tutoriel sur les regex et/ou sur sed.

    tu pourrais faire un truc comme :
    sed -e 's/^class[^;]*$/namespace titi\n{ \n&/g' -e 's/^}$//' -e 's/^}$/&\n&/'

    quelques rappels rapide pour comprendre. Le caractère ^ représente le début de la ligne, $ : la fin de ligne, & : est remplacé par le motif recherché dans la chaine de substitution, \n : un retour chariot dans la chaine de substitution, < indique un début de mot, et >, une fin de mot. [^;] matche n'importe quel caractère sauf ;

    d'autre part, ton for file in `ls *.h` se remplace avantageusement par for file in *.h.
    Autre remarque, le ls n'étant pas récursif, ça ne fonctionera pas si ton arborescence n'est pas plate. find est là pour t'aider, genre :

    for i in `find . -name '**.h'

    sauf qu'on peut faire encore mieux avec l'option -exec de find, ou, encore mieux, avec xargs et l'option -i de sed (qui indique à sed de travailler directement sur le fichier en entrée)
    find . -name "*.h" | xargs sed -i -e 's/^class[^;]*$/namespace titi\n{ \n&/g' -e 's/^}$//' -e 's/^}$/&\n&/'

    encore quelques petites remarques:
    l'expression 's/^}$/&\n&/' est p-e pas assez fine. Elle dupliquera toutes les lignes ne contenant qu'une accolade fermante. Si ton contient des accolades fermantes qui ne sont pas des fermetures de classes, tu te retrouveras avec trop d'accolades après le traitement.
    Evidemment, il y a des solutions, à base de comptage d'accolades ouvrantes et fermantes, pour ne rajouter des accolades fermantes que quand il le faut.

    Si tu veux pouvoir relancer le script sans risquer de traiter deux fois le même fichier, tu peux rajouter un grep -c "\<namespace titi\>' pour faire quelque chose comme (on respire un grand coup :) :
    find . -name '*.h' | grep -c '\<namespace titi\>' | cut -d ':' -f 1 | xargs sed -i -e 's/^class[^;]*$/namespace titi\n{ \n&/g' -e 's/^}$//' -e 's/^}$/&\n&/'

    bon, ça fait p-e beaucoup ... Si tu prends bien le temps de comprendre chaque améloration que je propose, tu devrais pas mal progression dans ton approche des scripts shell.

    bon courage :)
  • [^] # Re: sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    heu ... c'est l'heure d'aller manger là ! :)

    la suite cet aprème
  • [^] # Re: sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    ça reste toujours une question de trouver le bon motif.
    ici, en fait, tu n'ajouteras le namespace que pour le motif ^class[^;]*$ et pas le seul motif ^class

    Si tu t'en sors pas avec ça, dis le, j'essaierai de te proposer un script ...
  • [^] # Re: sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    si y a plusieurs classes, c'est pas bien grave. sed traitera tout le fichier et donc toutes les déclarations du dit fichier.

    Pour les forward declaration, j'avoue humblement mon ignorance .. je ne sais pas ce que c'est. Et j'ai des petits soucis réseau qui font que google me répond pas.

    un petit brief sur ce que c'est et pourquoi ça pose problème dans ton cas ?
  • # sed peut-être ?

    Posté par  . En réponse au message Script pour modifier C++ sources. Évalué à 2.

    Perso, je suis super rigoureux sur l'indentation. Si c'était mon code, je sais que je pourrais m'appuyer sur le motif ^class\> pour ajouter namespace titi\n{ et sur le motif ^}$ pour ajouter un \n} dans les .h

    Pour les cpp, s'il y a d'autres directives using, rien de plus simple que d'en rajouter une. Sinon, il faut arriver à identifier un motif qui te permettrait de rajouter ton using à un endroit pertinent. La, ça dépend de ton code.

    Si l'identation de ton code n'est pas 100 % fiable, tu peux p-e te mettre dans une situation maitrisée (au moins pour les éléments qui t'intéressent) en farfouillant dans les options d'indent.
  • [^] # Re: Dans ce cas...

    Posté par  . En réponse à la dépêche Acer condamné à rembourser Windows. Évalué à 3.

    oui. Si on te propose une machine avec forcément un linux dessus, c'est aussi de la vente liée, si l'install et/ou le cd de la distrib sont facturées. Personne dit le contraire je pense.
    L'objectif, c'est pas non plus qu'il n'y ait plus de machines préinstallés avec des OS, juste d'avoir le choix de l'OS, voire de *pas avoir* d'OS.
  • [^] # Re: Oui mais ...

    Posté par  . En réponse à la dépêche Acer condamné à rembourser Windows. Évalué à 5.

    j'ai été moins courageux ... j'ai pris un portable sans OS chez Surcouf, et là bas, ils testent le montage de la bécane avec un live d'Ubuntu =)