bobert a écrit 604 commentaires

  • [^] # Re: Mozilla, SK, SPIP

    Posté par  . En réponse au journal Le monde diplomatique sur CD-ROM. Évalué à 1.

    Merci pour les précisions !
    Le CD-ROM n'est pas encore disponible... j'espère le voir bientôt !
  • # J'ai qu'une chose à dire:

    Posté par  . En réponse au journal KGuitar. Évalué à 2.

    Si tu nous fais la transition dbm -> sqlite pour rpm, je te roule une énooOOorme pelle !!
    Je me dis exactement la même chose à chaque `urpmi --auto-select`, avec sqlite ça déchirerait méchamment :-)

    P.S.: Pour la release suivante de Kguitar, je propose "The Extremist" (Satriani)...
  • [^] # Re: pfff :(

    Posté par  . En réponse au journal RSS, quel lecteur?. Évalué à -3.

    Ben si... justement :-/
  • [^] # Re: google ?

    Posté par  . En réponse au message Qui a mis mon courrier à la poubelle ?!?. Évalué à 2.

    Non, non, je parlais d'un message que m'a posté un autre lecteur de linuxfr...
  • [^] # Re: SSII

    Posté par  . En réponse au journal Kolab. Évalué à 5.

    Si les SSII avaient une quelconque compétence en informatique ça se saurait

    Si les commentaires de pilier de bar de ce genre étaient pertinents, ça se saurait.
  • [^] # Re: Carte NVidia ?

    Posté par  . En réponse au message Cherche bonne carte graphique. Évalué à 2.

    je rappelle que chaque réponse à mon post est récompensée d'1 XP

    Rha la la... on se croirait en pleine campagne électorale pour les présidentielles américaines...
  • [^] # Correction

    Posté par  . En réponse au message Cherche bonne carte graphique. Évalué à 2.

    Je voulais dire, vendeurs de matériel informatique sur internet, désolé (la digestion).
  • [^] # Re: Carte NVidia ?

    Posté par  . En réponse au message Cherche bonne carte graphique. Évalué à 2.

    Et pour conclure, sachant que sur les deux vendeurs "de confiance" de matériel électronique, il y en a un qui a craché sur les logiciels libres y'a pas longtemps (cf http://linuxfr.org/~temsa/15118.html(...) ), ça nous ramène en gros aux offres suivantes:

    - http://www.materiel.net/details_9200SE-TD128.html(...) à 48,90 ?
    - http://www.materiel.net/details_V9520MAGIC128M.html(...) à 65,90 ?

    Je suis justement en train d'étudier ça ; ma copine est une joueuse effrénée des Sims 2, et son matériel ne suit plus...
  • [^] # Re: Doc

    Posté par  . En réponse au journal mkcd la commande qu'il vous faut ...................... pas. Évalué à 4.

    Nt, nt, nt, là je comprends vraiment pas ton ironie. Les mecs de Mandrakesoft sont quand même bien connus pour écrire du code lisible, maintenable et bien documenté. Tiens, 'suffit d'éditer le source de n'importe lequel de leurs outils... euh... ahem... ah ben non, désolé, j'ai rien dit non plus.

    M'enfin après tout, c'est vrai que documenter du code c'est quand même pas urgent. Et puis merde, c'est quand même pas à l'auteur d'un code de le documenter, un vrai développeur a d'autres choses bien plus importantes à faire.
  • [^] # Re: Fignolons

    Posté par  . En réponse à la dépêche Portable à 1 euro par jour : aussi sous GNU/LINUX. Évalué à 3.

    OK, beaucoup de bonnes idées là-dedans ! Je vois qu'on a une approche très similaire.

    C'est un peu dommage de continuer la conversation ici parce qu'elle est hors-sujet; mais de mon côté j'en suis venu à bricoler une distribution Mandrake personnalisée:
    - à partir des paquetages cooker
    - en modifiant la priorité des paquetages (exemple: je donne à Inkscape la note maximale de 5 pour être sûr qu'il fera partie de la distrib)
    - en ajoutant des paquetages supplémentaires
    - et en générant les images grâce à mkcd

    Parmi les paquetages supplémentaires:
    - msttcorefonts pour une compatibilité maximale avec les documents Microsoft Office,
    - acroread parce qu'il est encore indispensable pour certains pdf,
    - FlashPlayer (dont je ne vois pas l'intérêt personnellement, mais puisque les gens le veulent, ils l'ont, pas de scrupules pour attirer les foules du bon côté de la Force... c'est la guerre mon Colonel ;)
    - pilotes de cartes graphiques, eagle-usb
    - les divers *Mule, suite au même raisonnement que pour Flash
    - divers paquetages plf
    - etc...

    Tu devrais tester, ça te donne un contrôle encore plus grand de ce que tu veux installer, et plus important, ça te laisse plus de temps lors de l'installation pour faire autre chose, initiation au bureau ou au client de courrier par exemple.

    Le plus délicat reste le choix du bon moment pour générer les images de cette distrib "maison": il faut juger de l'état global de la cooker à un instant t et évaluer les avantages des derniers correctifs/nouveautés vs les bugs restants. Pas évident.

    Je me tâte aussi sur l'opportunité d'un cd "goodies" contenant fontes, images de fonds d'écran, icônes, thèmes de bureau, etc. Les gens aiment beaucoup ; mais l'effort ne vaut la peine que si ça profite au plus grand nombre, pas simplement au voisin, et ça implique d'éplucher consciencieusement la licence de chaque élément... galère en perspective. Et accessoirement j'ai une thèse à rédiger.
    Plus simple peut-être, et potentiellement vendeur, un cd de jeux créé à partir de l'ensemble des paquetages de jeux des sources cooker/contrib.
    À voir... un jour...
  • [^] # Fignolons

    Posté par  . En réponse à la dépêche Portable à 1 euro par jour : aussi sous GNU/LINUX. Évalué à 0.

    Tiens, juste par curiosité, qu'est-ce que tu fignoles après l'installation d'une Mandrake ? Ça pourrait me donner des idées, j'en installe pas mal à des particuliers ces derniers temps...
  • [^] # Re: Ma nouvelle carte graphique...

    Posté par  . En réponse au journal ATI et les pilotes vidéo. Évalué à 1.

    Ben, je voudrais pas raconter de connerie... mais il me semble qu'avec les tubes récents (enfin disons actuels) style trinitron, tu obtiendras de toute façon des pixels carrés.

    J'ai pas fait de recherche poussée via google, voilà juste une discussion qui
    reprend cette conclusion:
    http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&selm(...)

    Ceci dit je travaille jamais sous ces résolutions donc je me suis pas intéressé au problème.
  • [^] # Re: Ma nouvelle carte graphique...

    Posté par  . En réponse au journal ATI et les pilotes vidéo. Évalué à 1.

    Ca marche, j'ai enfin ma résolution de 1280*960 au lieu de 1280*1024 (je veux un rapport 4:3)

    Juste une question comme ça: qu'est-ce que ça t'apporte d'avoir exactement du 4:3 ?
  • # Tu y étais presque...

    Posté par  . En réponse au message mdk10.1rc1 Freeze. Évalué à 2.

    append="noapic nolapic noioapic mem=nopentium [...]"

    L'important est de ne pas omettre non plus l'option "nolapic".

    Quant à l'option "mem=nopentium", elle était encore nécessaire
    avec les premiers noyaux de la série 2.6.7 ; depuis j'ai pas refait l'essai.
    Si tu as un peu de temps à tuer, fais d'abord un premier essai sans, et regarde
    ce que ça donne.
  • [^] # Moodle, concurrent de Claroline

    Posté par  . En réponse au journal Claroline 1.5.1 dans les bacs. Évalué à 1.

    Je voudrais signaler l'existence de Moodle (http://moodle.org/(...)) que je préfère personnellement.

    Pour des url de cours en ligne, voir par exemple la liste des universités/entités ayant mis en oeuvre Moodle (pas mal de cours nécessitent une inscription): http://moodle.org/sites/(...)
  • # IFS=$'\n'

    Posté par  . En réponse au message Robot d'exploration de répertoires. Évalué à 2.

    Ça ne marche pas, parce que bash utilise par défaut les espaces pour séparer les arguments.

    Du coup, dès que tu manipules des fichiers dont le nom possède des espaces, ça fout la caille. Et d'ailleurs, un tel script devrait toujours prévoir ce cas de figure.

    On peut changer le comportement du shell en modifiant la valeur de la variable IFS (Input Field Separator)

    La ligne de commande shell qui correspond à ce que tu voulais est:

    IFS=$'\n' && for dir in `ls -d */`; do cd $dir && du -sh && cd ..; done && unset IFS

    Pour des scripts remplissant des tâches administratifs, ça a plus de sens de nos jours (à mon humble avis) de les écrire en python. C'est simple à écrire, lisible, facile à maintenir, et on s'affranchit de beaucoup de côtés obscur du shell, dont celui-ci.
  • [^] # Re: ça marche comment ?

    Posté par  . En réponse au journal Amarok 1.1 feature freeze. Évalué à 1.

    Avec amarok 1.1 , tu peux aussi mettre ta propre couverture d'album.

    Ah, cool, ça m'intéresse bien ça... comment on fait ?

    L'idéal pour moi serait qu'il cherche dans le répertoire correspondant à l'album un fichier 'cover.jpg' par exemple...
  • [^] # Re: Info relayée

    Posté par  . En réponse au journal E.T., es-tu là ?. Évalué à 3.

    Ensuite, je sais pas trop qu'elle est la "credibilite" scientifique que l'on peut accorder a New Scientist

    A priori la même que celle de Nature ou Science. Son comité de lecture fait son boulot ; c'est-à-dire qu'il peuvent faire des erreurs comme n'importe quels autres êtres humains. Reste la tentation du sensationnalisme, mais là-dessus aucune revue scientifique n'est exempte de reproches.

    Quand l'annonce sera dans Nature, Science ou the Astronomical Review, ou encore astro-ph

    J'espère que tu rigoles. N'importe qui peut balancer n'importe quoi sur astro-ph ; y'a aucun comité de lecture pour faire le tri ; dans la pratique y'a à boire et à manger...
  • # Info relayée

    Posté par  . En réponse au journal E.T., es-tu là ?. Évalué à 2.

    L'info a été relayée sur les radios nationales pendant leur journal de 18h00.

    L'url de la news originale du New Scientist est: http://www.newscientist.com/news/news.jsp?id=ns99996341(...)
    mais évidemment tout le monde s'est rué dessus et ils se sont fait méchamment slashdotter.

    Merci à ma copine pour m'avoir fait passer l'info en avant-première !
  • # J'ai marché dedans

    Posté par  . En réponse au journal LDLC un passage a microsoft à tout va, après une longue histoire "opensource". Évalué à 6.

    Ils disent eux-mêmes avoir commencé sans un rond, les logiciels libres les ont accompagnés sur la route de leur succès pendant six ans... maintenant qu'ils peuvent se le permettre, ils passent au propriétaire en crachant sur les LL.

    Tour ça pue un peu trop pour moi... j'ai une merde sous ma chaussure, et je vais m'en débarrasser vite fait. LDLC était mon fournisseur exclusif de matériel informatique depuis plusieurs années, sans compter les gens autour de moi pour qui je passais commande en ligne. Hop, terminé, à dégager. Je sais vers qui me tourner (http://materiel.net(...) , pour ne pas les nommer)
  • [^] # Pareil

    Posté par  . En réponse au message Synchroniser deux répertoires locaux. Évalué à 1.

  • [^] # php2dot

    Posté par  . En réponse au message graphe des liaisons entre fichiers. Évalué à 2.

    #!/usr/bin/python
    # -*- coding: iso-8859-1 -*-
    #
    # Copyright (C) 2004 Nicolas Girard < bobert at dlfp dot org >
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program; if not, write to the Free Software
    # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    import os,sys,re
    from os.path import join
    from itertools import ifilter
    from sets import Set
    
    class Finder:
        """Parcourt une hiérarchie de répertoires à partir de startDirectory"""
        def __init__(self,startDirectory):
            self.walker = os.walk(startDirectory)
        def walk(self):
            while 1:
                root, dirs, files = self.walker.next()
                for file in files:
                    yield (root,file)
        def phpFiles(self):
            isPhp = lambda (r,f):f.endswith('.php') or f.endswith('.php3')
            return ifilter(isPhp,self.walk())
            
    def find(dir):
        return Finder(dir)
        
    class PhpFile:
        include = re.compile(".*include\s*\(['\"](\S+)['\"]\)\s*;")
        def __init__(self,dir,name):
            (self.dir,self.name)=(dir,name)
        def includes(self):
            f=open(join(self.dir,self.name),'r')
            lines=f.readlines()
            f.close()
            for line in lines:
                if PhpFile.include.match(line):
                    yield PhpFile.include.match(line).group(1).split('/')[-1]
            
    class Node:
        def __init__(self,name,labels=[],children=Set()):
            (self.name,self.labels,self.children,self.nodes)=(name,labels,children,None)
        def mergeWith(self,node):
            self.labels+=node.labels
        def label(self):
            return "\\n".join(self.labels)
        def edges(self):
            return "\n".join(map(lambda child,s=self:"%s -> %s"%(s.name,child.name),self.children))
        def __eq__(self,other):
            return self.name==other.name
        def __str__(self):
            return "%s [label=\"%s\"]\n%s"%(self.name,self.label(),self.edges())
        def rank(self):
            """calcule le nombre de parents du noeud"""
            return sum(map(lambda o,s=self,:s in o.children,self.nodes))
        def isExcluded(self):
            return self.rank()==0 and len(self.children)==0
            
    class Graph:
        def __init__(self,ranksep=2,nodesep=0.5,minlen=1.5,concentrate=True,nodes=[]):
            self.nodes=nodes
            self.head="""
    digraph Schema {
      node[shape=box];
      concentrate=%s;
      ranksep=%f;
      nodesep=%f;
      edge[minlen=%f];\n"""%(concentrate,ranksep,nodesep,minlen)
            self.foot="}\n"
        def append(self,node):
            node.nodes=self.nodes
            self.nodes.append(node)
        def __getitem__(self,nodeName):
            res=filter(lambda node,n=nodeName:node.name==n,self.nodes)
            if len(res)==1:
                return res[0]
            else:
                return None
        def checkChildren(self):
            """On supprime les fichiers inclus ne correspondant pas à un fichier trouvé
            et les doublons"""
            for node in self.nodes:
                node.children = filter(lambda ch,fath=node:ch and fath!=ch,
                  map(lambda c,s=self:self[c],node.children))
        def removeExcluded(self):
            """supprime les noeuds exclus du graphe"""
            for excluded in filter(Node.isExcluded,self.nodes):
                self.nodes.remove(excluded)
        def clusterize(self):
            """Regroupe les fichers non-inclus par d'autres, et incluant les mêmes fichiers"""
            nodes = filter(lambda n:n.rank()==0,self.nodes)
            for node in nodes:
                (node.clustered,node.removed)=(False,False)
            for node in nodes:
                ch = node.children[:]
                for other in nodes:
                    if other == node or other.clustered or other.removed:
                        continue
                    if ch==other.children:
                        node.mergeWith(other)
                        node.clustered=True
                        other.removed=True
            for node in filter(lambda n:n.removed,nodes):
                self.nodes.remove(node)
        def __str__(self):
            for i in range(len(self.nodes)):
                self.nodes[i].name="node%d"%i
            return self.head+"\n".join(map(str,self.nodes))+self.foot                    
            
                
    usage="""
    php2dot - Génère un script dot des relations d'inclusion entre fichiers PHP
         
    Syntaxe: php2dot startDir
        
      startDir : répertoire de recherche des fichiers PHP.
                 La recherche est récursive.
                 
    Synopsis:
      php2dot startDir > graph.dot
      dot -Tpng -ograph.png graph.dot
      
    Limitation:
      Les noms des fichiers PHP trouvés doivent être distincts
      
    """
            
    if __name__=="__main__":
        if len(sys.argv)==1:
            print usage
            sys.exit(0)
        startDir=sys.argv[1]
        graph = Graph()
        for (dir,name) in find(startDir).phpFiles():
            phpFile = PhpFile(dir,name)
            if not graph[name]:
                graph.append(Node(name,[name],phpFile.includes()))
        graph.checkChildren()
        graph.removeExcluded()
        graph.clusterize()
        print graph
    
  • # Une solution

    Posté par  . En réponse au message graphe des liaisons entre fichiers. Évalué à 1.

    J'ai trouvé ton problème intéressant et j'ai pondu un petit programme en python (php2dot) qui génère un graphe des relations d'inclusion entre fichiers php d'une hiérarchie de répertoires.

    La subtilité, pour éviter de pourrir le graphe, c'est de regrouper en un même noeud les fichiers qui ont les mêmes inclusions.

    Sinon une limitation fondamentale du programme c'est qu'il attend des fichiers aux noms distincts ; lever cette limitation demanderait pas mal d'efforts supplémentaires... moi je m'arrête là.
  • # Toi reprendre depuis le début

    Posté par  . En réponse au message installation maxima. Évalué à 2.

    1. Toi lire la documentation de la distribution Mandrakelinux, située dans /usr/share/doc/mandrake/fr une fois le paquetage mandrake-doc-fr installé

    2. Toi configurer correctement les sources de paquetages correspondant à ta machine & à ta distribution en suivant les directives affichées ici: http://urpmi.org/easyurpmi/index.php(...)

    3. Toi taper en tant que superadministrateur

    # urpmi maxima-gui

    4. Toi recommencer depuis l'étape 1 jusqu'à ce que ça marche... bons calculs ! (moi j'ai pas trouvé chaussure à mon pied avec Maxima, je tourne avec Mathematica)
  • [^] # Re: C'est pas que c'est mort

    Posté par  . En réponse au journal bash 3. Évalué à 2.

    Encore mieux chez moi:

    $ zsh
    [5 secondes plus tard]
    zsh: corrupt history file /home/bobert/.bash_history
    $
    $ echo $SHELL
    /bin/bash
    $


    Ca a l'air vraiment cool, zsh :-(