castorpilot a écrit 98 commentaires

  • [^] # Re: Nouveau pb

    Posté par  . En réponse au message Problème utilisation variables. Évalué à 1.

    En bash, il n'y a pas de $ devant un nom de variable lors de l'assignation.
    La ligne $2="Fichiers/fichiers" est donc incorrecte.
  • # wolfotrack

    Posté par  . En réponse au journal [Fantasme ergonomique] Interface graphique pour firewall. Évalué à 7.

    L'interface graphique ultime pour firewall ;-)

    http://software.inl.fr/trac/wiki/Wolfotrack
  • # voire meme

    Posté par  . En réponse au message commande awk. Évalué à 2.

    awk -F":" '$3 > 70000 {print $1}' /etc/passwd
  • # /var/log/messages

    Posté par  . En réponse au message Plantages. Évalué à 1.

    ça vaut aussi le coup de regarder dans les logs.
    Ce genre de trucs m'est deja arrivé, à cause de drivers un peu trop "experimentaux" (typiquement pour carte wifi, etc).
  • # idee comme ça

    Posté par  . En réponse au message Récupérer droits sur fichiers. Évalué à 3.

    Je pense qu'un script du genre pourrait faire l'affaire :

    premierement, aller dans /mnt/sauvegarde/home/moi, faire un find dans argument pour recuperer la liste de tous les fichiers.

    Ensuite :

    while read fichier;
    fichier_home=`echo $fichier | sed 's#/mnt/sauvegarde##'`
    chmod --reference $fichier $fichier_home
    done < liste

    Bon, c'est pas vraiement testé. La bonne idée la dedans, c'est le coup du chmod --reference. Ensuite, faut blinder un peut plus le script (nom de fichier avec espaces, ...)

  • # en C

    Posté par  . En réponse au message Récupération infos architecture: Endian, 32/64 .... Évalué à 3.

    Bonjour,
    je sais que la question demande d'utiliser le shell, mais je ne vois pas trop de moyen d'obtenir des information sur l'endianess ou le sizeof(int) de cette façon. Comme cela a été suggéré, il est possible de faire une gros switch/case avec les noms des systemes, mais ce n'est pas tres extensible, et reste approximatif.
    Le mieux serait peut etre d'utiliser un petit programme C (resultat de "get system endianess sur google) :
    http://www.linuxforums.org/forum/linux-programming-scripting/63464-finding-out-systems-endianness.html

    Note : Je ne sais pas trop à quoi vont servir ces infos, mais si c''est en vue de compiler des programmes, cela rentre en plein dans le champ d'application des autotools (ou cmake et autres). Il existe meme des macros automake/autoconf pour determiner l'endianess.

  • # init

    Posté par  . En réponse au message comment tuer des process fils automatiquement dans un script shell.... Évalué à 2.

    Il est en effet normal, sous Unix, que les processus "orphelins" soient récupéré par init, donc que leur ppid passe à 1.

    Un lien au hasard de google :
    http://www.unixgarden.com/index.php/programmation/programmation-systeme-processus-tubes-et-threads

    Sinon, pour ton kill, si tu connais le nom de proc1 et proc2, tu peux essayer de les tuer par nom et non pas par pid : pkill proc1 .
    Il y a toujours un risque : tuer des processus du meme nom (tu peux toujours verifier, avant de faire le kill, que le nom du processus et le pid (que tu as dans ta variable) concordent).
    Sinon, si j'ai bien compris, tu veux non pas tuer certains processus, mais detruire tous ceux lancés par toto.sh. Il suffit donc de tuer les processus dont le ppid est le pid de toto.sh. Toujours avec pkill (pratique pkill, mieux que killall) :

    pkill -P $$

    (où $$ est le PID du script en cours (toto.sh), et -P demande à pkill de rechercher par ppid)
  • # --build

    Posté par  . En réponse au message building GCC on openBSD4.3. Évalué à 1.

    Bonjour,

    Je viens de tester chez moi (sur un systeme linux), et apparement, l'option
    --build=x86_64-pc-openbsd passe.
    Sinon, j'imagine que tu as tes raisons, mais gcc est dans le systeme de base non ?
    Evidemment, ma remarque est malvenue si tu as besoin d'une version superieure à 3.3.
    Enfin, je ne sais pas ce qu'il en est pour gcc (que je n'ai jamais compilé sous OpenBSD, mes remarques ne valent donc pas grand chose), mais il faut faire attention aux incompatibilités entre BSD make et GNU make. J'aurais tendance à penser que gcc a besoin de GNU make. Dans ce cas, utiliser gmake au lieu de make.

  • # gcc

    Posté par  . En réponse au message OpenMoko, smartphone, etc. Et Linux ?. Évalué à 2.

    Il ne faut pas non plus oublier que gcc rend linux assez portable, parce que ce compilo possede lui meme de nombreux backends !
  • # une solution

    Posté par  . En réponse au message Accéder à une variable par son nom. Évalué à 2.

    Bonjour,
    Je ne sais pas si ça repond vraiment au probleme, mais voici quand meme :

    class Test
    attr_accessor :var1, :var2, :var3
    def initialize
    @var1 = 32
    @var2 = "hello"
    @var3 = nil
    end
    end

    object = Test.new

    %w{ @var1 @var2 @var3 }.each do |name|
    puts object.instance_variable_get(name).class
    end

    $ ruby test.rb
    Fixnum
    String
    NilClass

  • # ou encore

    Posté par  . En réponse au message Convertir du code source en PDF. Évalué à 3.

    GNU source-highlight
  • # enscript

    Posté par  . En réponse au message Convertir du code source en PDF. Évalué à 1.

    enscript
  • # Machine Learning

    Posté par  . En réponse au message Cherche algorithme de devinette. Évalué à 3.

    Je ne sais pas exactement ce qu'il y a derriere, mais il me semble que ça ressemble pas mal à du machine learning (supervisé, c'est à dire qu'on dit au logiciel si la reponse est bonne ou pas, et on le corrige au besoin).
    Donc, au choix, ça pourrait etre un reseau de neurones, un classificateur de Bayes, un arbre de decision, K-nearest-neighbors ...
    Pas mal de choix, le sujet est vaste !
    http://en.wikipedia.org/wiki/Supervised_learning
  • # POSIX shared memory

    Posté par  . En réponse au message IPC: mmap() vs shmget(). Évalué à 2.

    Je ne sais trop quoi repondre à cette grande question metaphysique ...
    Par contre, je prefere shm_open, qui " Create/open or unlink POSIX shared memory objects", et qui a le bon gout d'etre appelé par un nom, et pas par une clef.
  • # pour la programmation ?

    Posté par  . En réponse au message Dvorak, dvorak, dvorak, dvorak ou azerty ?. Évalué à 4.

    ça fait un moment que je me demande également si ça ne vaudrait pas le coup d'essayer.
    Par contre, je tape pas mal de code, et je me demande si la disposition dvorak est interessante pour tous les symboles non-alphanumerique qu'on retrouve en masse dans les programmes (, },],> ...
    De plus, qu'en est-il de l'utilisation d'un editeur comme vim ? Quelqu'un a-t-il deja essayé d'utiliser vi avec un layout dvorak ?
  • # quotes

    Posté par  . En réponse au message script sed qui ne fonctionne pas. Évalué à 1.

    Apparement, le probleme semble plutot provenir des guillements, simples et doubles ...
  • [^] # Re: ebauche de solution

    Posté par  . En réponse au message [Prolog]Liste des chemins allant d'un point à un autre dans un graphe. Évalué à 1.

    Avec quel interpreteur ?
    Peut etre cela vaut-il le coup d'essayer avec un autre interpreteur (gprolog, swi-prolog, ...)
  • [^] # Re: ebauche de solution

    Posté par  . En réponse au message [Prolog]Liste des chemins allant d'un point à un autre dans un graphe. Évalué à 3.

    Petite correction :

    C'est connected(P,P,[]). En effet, le chemin entre P est P est nul.
  • # ebauche de solution

    Posté par  . En réponse au message [Prolog]Liste des chemins allant d'un point à un autre dans un graphe. Évalué à 4.

    Chouette, du prolog, ça faisait longtemps :)

    Alors, pour repondre à 1), il me semble que la formulation est pas mal. Je dirait juste qu'elle n'est pas encore assez recursive : en gros, on devrait pouvoir laisser prolog se debrouiller tout seul.

    Voila comment je listerai les chemins allant d'un point à un autre (c'est une solution, et bien sur pas LA solution).

    Dans la meme veine que follow, je defini la fonction connected, qui ressemble à connected (point A, point B, chemin) :

    connected(P,P,[P]).
    % tout d'abord, un point est connecté à lui meme, et le chemin est le point lui meme.
    % c'est ma condition d'arret de la recursivité.

    connected(P,Q,[Z|Chemin]):-
    parcours(P,Z), connected(Z,Q,Chemin).

    % P est connecté à Q si P est Z sont dans un parcours (tel que tu l'as defini), et si Z lui
    % meme est connecte à Q. C'est la transitivité de la connexion. Dans ce cas, je rajoute
    % le point intermediaire Z au chemin.

    Avec l'interpreteur, je peux maintenant faire :
    connected(depart, arrivee, Chemin).

    Et prolog va me lister tout les chemins possible via la variable Chemin, tant que j'appuie sur ";".

  • # paste

    Posté par  . En réponse au message [Bash] Mise en tableau de liste. Évalué à 2.

    Si tu peux mettre tes variables dans des fichiers, tu peux utiliser la commande paste.
    Je n'ai pas tres bien compris si tes variables sont des tableaux ou pas.
    Si ce sont des tableaux, le commentaire numero 1 devrait t'aider àç utiliser la syntaxe bash pour les arrays.
    Sinon, tu devrais pouvoir faire :
    paste <(echo $var1) <(echo $var2)
  • [^] # Re: desuet

    Posté par  . En réponse au message realiser un ping of death sous linux. Évalué à 2.

    J'ai deja répondu : il s'agit de l'option -s qui permet de choisir la taille du paquet.
  • # desuet

    Posté par  . En réponse au message realiser un ping of death sous linux. Évalué à 5.

    Cette attaque n'existe quasiment plus.
    Si je me souviens bien, il s'agissait de balancer un ping avec une taille enorme.
    Dans ce cas, c'est ping -s taille.
    De toute façon, les systeme actuel (a part peut etre les piles TCP/IP de quelques trucs embarqués) ne sont plus vulnérables à ce genre d'attaque.
  • [^] # Re: awk

    Posté par  . En réponse au message parser un fichier texte. Évalué à 2.

    Ok, je comprends.

    Dans ce cas :

    awk -F, '{cancer[$1] = $3; gene[$1] = gene[$1] " " $2} END{ OFS=","; for (val in gene) print val, gene[val], cancer[val]}' cancer.txt

    Ensuite, tu peux choisir de n'afficher que les situations pour lesquelles il y a un cancer :

    awk -F, '$3 == 1{ gene[$1] = gene[$1] " " $2} END{ OFS=","; for (val in gene) print val, gene[val], 1}' cancer.txt

    ou celles pour lesquelles il n'y en a pas :

    awk -F, '$3 == 0{gene[$1] = gene[$1] " " $2} END{ OFS=","; for (val in gene) print val, gene[val], 0}' cancer.txt
  • # awk

    Posté par  . En réponse au message parser un fichier texte. Évalué à 3.

    Awk permet en effet de traiter ce probleme.
    L'enoncé est par contre un peu vague. Par exemple, je ne sais pas si le troisieme champs est toujours "cancer", ou si il peut etre vide, ou si il decrit different cancer, comme cela a été suggéré plus haut.

    Dans le cas ou l'on cherche à identifier les lignes comportant le mot cancer, et seulement celles ci, puis à regrouper les genes pour chaque situation, le code suivant devrait faire l'affaire :

    awk -F, '/cancer/{gene[$1] = gene[$1] "," $2} END{ OFS=","; for (val in gene) print val, gene[val], "cancer"}' cancer.txt

    que l'on peut lancer d'une seule ligne à l'invite de commande.

    Si il y a plusieurs types de cancer, on peut egalement modifier le code , il suffit de demander !

  • # autres fonctionnalités ?

    Posté par  . En réponse au journal Enfin un logiciel de gestion financière qui me convient.... Évalué à 2.

    Je viens d'essayer, et c'est vrai que c'est sympa. Cependant, il y a au moins deux trucs que j'aimerai bien pouvoir utiliser :

    - Une auto-classification basée sur regex. En gros, dans mon relevé au format Qif (ou csv), quand la description comporte "AUCHAN", je voudrais que ça passe direct dans la catégorie Supermarché.

    - Les statistiques par catégories avec ou sans les sous catégories. On peut definir des sous catégories, avec categorie:sous-categorie, mais quand on fait un diagramme, on vois toutes les sous-catégories separement, sans pouvoir les rassembler.

    Je me suis codé des scripts externes pour faire ça, mais existe-t-il un outil qui permettent de faire ça ?