Mildred a écrit 2248 commentaires

  • [^] # Re: tu les fait déjà chier

    Posté par  (site web personnel) . En réponse au journal Des standarts reconnus .... Évalué à 1.

    et alors ?
  • [^] # Re: Ça sera vérifié physiquement ?

    Posté par  (site web personnel) . En réponse à la dépêche Été féminin pour le projet GNOME. Évalué à 2.

    On attend que les gens soient un peu honêtes quand même ...

    Et je suppose que pour le versement de l'argent, on demande des coordonées bancaires de la personne qui doit sans doute contenir un nom réel ... Si ca ne colle pas (hors prénoms mixtes) on risque de te demander tes raisons :)
  • [^] # Re: Quel est le problème ?

    Posté par  (site web personnel) . En réponse à la dépêche Été féminin pour le projet GNOME. Évalué à 3.

    Un ordinateur ne te demandera jamais d'être sociable ... c'est sans doute une raison.
  • [^] # Re: Troll peut-être, mais en natif

    Posté par  (site web personnel) . En réponse au journal Google Earth pour Linux. Évalué à 2.

    Il ne viendrait à personne l'idée de développer une application dédiée à Linux en utilisant Wine.

    Si, moi.
    Bon, d'acord, je n'ai fait que l'envisagé, mais j'ai essayé quand même de faire tourner gcc avec -lwine et #include <windows.h> ... sauf que ca ne marchait pas, il faut utiliser winegcc à la place je crois (qui définira sans doute des constantes comme WIN32)
  • [^] # Re: La lettre importante dans "AJAX"

    Posté par  (site web personnel) . En réponse au sondage AJAX. Évalué à 3.

    sauf qu'a mon avis, les formulaires n'ont pas trop leur place dans les pages html (même si je les utilise faute de mieux sur mon site).
    Pour l'authentification, le truc qui marche bien c'est l'authentification HTTP ... le navigateur te sort une boîte de dialogue pareille pour tous les sites, tu la reconnais facilement et il peux même mémoriser facilement ton login et ton mot de passe.
  • [^] # Re: Ajax oui mais....

    Posté par  (site web personnel) . En réponse au sondage AJAX. Évalué à 2.

    au fait il y a un noscript pour Epiphany ... c'est un des petits conforts que j'ai perdu a vouloir diminuer la charge de mon ordinateur (en switchant)

    Allez, je cherche: http://google.com/search?q=epiphany+noscript
  • [^] # Re: Standard...

    Posté par  (site web personnel) . En réponse au sondage AJAX. Évalué à 3.

    Je préponds ici mais j'aurais très bien pu répondre ailleurs.

    Qu'est-ce que le web ? ce sont juste des documents structurés avec des liens entre ... c'est comme ça a l'origine, presque pas d'images même.

    Maintenant, regardez ce que c'est devenu, des tonnes de truc clignottants, un style différent pour chaque site ... perso, je n'ai pas bien connu le web d'avant mais je le regrette quand même.

    Il y a sans doute un besoin pour les web-applications ... mais a mon avis, il ne faut pas aller taper du copter HTTP/(X)HTML. Je pense qu'il faudrait envisager un protocole qui permette de répondre a ces besoins facilement.
    Même HTTP n'est pas prévu pour les web-applications. Une application nécessite une interface mise à jour en temps réel. HTTP est prévu pour déliverer une page statique, rien à voir.

    En attendant une meilleure solution, personne n'interdit (et personne n'interdira) d'utiliser HTTP/xHTML/CSS/AJAX mais a mon avis, cela devrait être réservé a des cas spécifiques. Les pages qui présentent juste de l'information n'ont rien a gagner d'être associées avec AJAX.
  • [^] # Re: Un ancien fan

    Posté par  (site web personnel) . En réponse au journal Des gestionnaires de fenêtre par monts et par vaux : macosx, windowmaker. Évalué à 3.

    Sauf que là on parle de la barre de menu des applications, pas d'un panel quelconque ...

    J'espère q'avec le portage de Gtk en Mac OS X natif ce sera possible de séparer cette barre de menu ... c'est déja possible avec KDE (QT?)
  • [^] # Re: Mise en page.

    Posté par  (site web personnel) . En réponse au journal mes aventures avec les traitement de textes. Évalué à 2.

    surtout que plein de sites imposent un navigateur maximisé car ils ont une mise en page ixe prévue pour 1024x768 ou plus ...
    Du coup, si on réduit, le navigateur ne peux pas faire son boulot car le site dicte la mise en page ... et on se retrouve a devoir scroller horizontalement.

    la solution serait de banir les styles du coté du site web mais on a pas trop envie, la css coté navigateur n'est pas si jolie ...
  • [^] # Re: Mon impression

    Posté par  (site web personnel) . En réponse à la dépêche Ubuntu : le canard pimpant est arrivé !. Évalué à 0.

    a propos, lorsque j'utilisais cet applet, je confondais sdouvent l'entrée "enlever cet applet du panel" avec "vider la corbeille" ...
    bon, maintenant, j'utilise xfce avec thunar qui ne gère pas (encore ?) la corbeille mais supprime définitivement les dossiers.
  • [^] # Re: pas encore prêt

    Posté par  (site web personnel) . En réponse à la dépêche Ubuntu : le canard pimpant est arrivé !. Évalué à 2.

    On n'a pas les meme "quelq'un".
    Ma mere a deja du mal avec la notion de repertoire et de fichier, je n'irai jamais lui dmeander d'ouvril un terminal, et de faire "cd xxx".
    Le terminal pour les geeks OK, mais arretez de penser que le terminal, c'est naturel... C'est naturel que pour les geeks.


    C'est peut être moins joli, ou tout ce que tu veux mais ce n'est en aucune manière moins facile. A mon avis, c'est aussi facile d'apprendre a une personne qui n'y connait rien une interface graphique qu'un terminal ... peut être même plus facile de lui apprendre le terminal.
    Avec un terminal, d'abord, pas besoin de maîtriser la souris, ensuite, il n'y a pas 36 endroits où regarder, juste à la fin du texte, la où le curseur clignotte (et éventuellement un peu au dessus pour voir le résultat de la commande).
    Une interface graphique te montre des fenêtres avec pleins de boutons et un novice peut s'y perdre facilement, il faut déja qu'il arrive a faire la distinction entre une fenêtre et une autre ...

    Le terminal c'est un dialogue avec la machine, si on y va sans préjugés, ce n'est pas très compliqué, on tape une commande suivie par entrée ... et a chaque fois, l'ordinateur va répondre a cette commande....
    Après, ce n'est peut être pas dans les habitudes des novices en ce moment ...

    Je connais un ami a qui on avait prêté un ordinateur datant de 1980, un portable avec un clavier détachable et d'une taille assez conséquente. Il y avait dessus un vieux prompt DOS et une version de Word ... et bien, il y arrivait très bien même si il ne conaissait pas toutes les commandes.

    Ceci dit, les interfaces graphiques sont très utiles, et je ne me passerait pas des programmes graphiques que j'aprécie beaucoup.
  • [^] # Re: Il n'y a pas déjà le WMF ?

    Posté par  (site web personnel) . En réponse au journal Microsoft cherche à remplacer le JPEG. Évalué à 3.

    sauf qu'il me semble avoir entandu que c'était un format binaire pas du tout orienté sécurité. Je me rapelle d'une news un jour a ce sujet
  • [^] # Re: Wine

    Posté par  (site web personnel) . En réponse au journal Picasa pour Linux dispo !. Évalué à 4.

    mais il devrait être possible de faire fonctionner les applications windows en utilisant les winlibs sur autre chose que du x86 si on recompile, non ? Cf darwine par exemple.
    Ca aurait été bien que google fasse au moins cet effort.
  • # petite création

    Posté par  (site web personnel) . En réponse au message langage pour écrire du XML. Évalué à 2.

    Voila, je voulais savoir a tout hasard si cela existait ... apparament pas vraiment. Voici donc ma solution qui utilise le langage lua ( http://lua.org/ )
    #! /usr/bin/env lua
    
    -- fichier : template.lua
    
    -------------------------------------------------------------------------------
    --
    -- Copyright (C) 2006 Mildred.
    --
    -- Permission is hereby granted, free of charge, to any person obtaining a copy
    -- of this software and associated documentation files (the "Software"), to
    -- deal in the Software without restriction, including without limitation the
    -- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
    -- sell copies of the Software, and to permit persons to whom the Software is
    -- furnished to do so, subject to the following conditions:
    --
    -- The above copyright notice and this permission notice shall be included in
    -- all copies or substantial portions of the Software.
    --
    -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    -- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
    -- IN THE SOFTWARE.
    --
    -------------------------------------------------------------------------------
    
    --lw = require("lwbase").install()
    
    local env = { tmplchar="#", IN_TEMPLATE=true }
    setmetatable(env, {__index=_G})
    
    function env.out(...)
        env.output(...)
    end
    
    function env.finnish()
    end
    
    local process_line_buffer = {}
    local process_line_has_buffer = false
    function env.process_line(line, n)
        if process_line_has_buffer then
            if line:sub(-1) == "\\" then
                table.insert(process_line_buffer, line:sub(1, -2))
            else
                table.insert(process_line_buffer, line)
                process_line_has_buffer = false
                local b = table.concat(process_line_buffer, "\n")
                process_line_buffer = {}
                local f = assert(loadstring(b, ("template '%s' line %i to %i"):format(env.filename, n+1-#process_line_buffer, n)))
                setfenv(f, env)
                f()
            end
        elseif line:sub(1, 1) == "#" then
            if line:sub(2, 2) == "#" then
                env.out(line:sub(2).."\n")
            elseif line:sub(-1) == "\\" then
                table.insert(process_line_buffer, line:sub(2, -2))
                process_line_has_buffer = true
            else
                local f = assert(loadstring(line:sub(2), ("template '%s' line %i"):format(env.filename, n)))
                setfenv(f, env)
                f()
            end
        else
            env.out(line.."\n")
        end
    end
    
    local function main(filename)
        filename = filename or arg[0]
        env.filename = filename
        env.output = io.write
        local f = assert(io.open(filename, "r"))
        local line = f:read("*l")
        local n = 1;
        if line:sub(1, 1) == "#" then
            line = f:read("*l")
            n = n + 1
        end
        local buffer = {}
        while line and line ~= "" do
            table.insert(buffer, line);
            line = f:read("*l")
            n = n + 1
        end
        line = f:read("*l")
        buffer = table.concat(buffer, "\n")
        local func = assert(loadstring(buffer, ("template '%s' header"):format(filename)))
        setfenv(func, env)
        func()
        while line do
            env.process_line(line, n)
            line = f:read("*l")
            n = n + 1
        end
        env.finnish()
        f:close();
    end
    
    
    local lisp_any
    
    local function lisp_space(s, n)
        while s:sub(n, n):find("%s") do
            n = n + 1
        end
        return n
    end
    
    local function lisp_list(s, n)
        local o, t, ty, idf
        t = {}
        n, o, ty = lisp_any(s, n)
        idf = 1 -- tag
        --print("end", ty, n)
        while o do
            if idf then
                t[idf] = o
                idf = nil
            elseif ty == "idf" then
                if o:sub(1, 1) == ":" then
                    t[o]=true
                else
                    idf = o
                end
            elseif ty == "longstring" then
                for k, v in ipairs(o) do
                    table.insert(t, v)
                end
            else
                table.insert(t, o)
            end
            n, o, ty = lisp_any(s, n)
            --print("end", ty, n)
        end
        if type(idf)=="string" then
            table.insert(t, idf)
        end
        return n, t, "list"
    end
    
    local function lisp_idf(s, n)
        local m = s:find("[%s%)]", n)
        if not m then
            return n, nil, nil
        end
        return m, s:sub(n, m-1), "idf"
    end
    
    local function lisp_string(s, n, stop)
        local str, m
        str = {}
        stop = stop or '"'
        local continue = true
        while continue do
            m = s:find(stop, n, true)
            table.insert(str, s:sub(n, m-1))
            --print("str", "'"..s:sub(n, m-1).."'")
            if s:sub(m+1, m+1) == stop then
                --print("str", "esc")
                table.insert(str, stop)
                n = m + 2
            else
                n = m + 1
                continue = false
            end
        end
        --print("str res", table.concat(str))
        return n+1, table.concat(str), "string"
    end
    
    local function lisp_longstring(s, n, stop, esc)
        local str, m, t
        str = {}
        t = {}
        stop = stop or '"'
        esc  = esc  or ','
        while true do
            m = s:find("[%"..stop.."%"..esc.."]", n)
            table.insert(str, s:sub(n, m-1))
            if s:sub(m, m) == esc and s:sub(m+1, m+1) == '(' then
                table.insert(t, table.concat(str))
                str = {}
                local o
                n, o = lisp_list(s, m+2)
                table.insert(t, o)
            elseif s:sub(m+1, m+1) == stop then
                table.insert(str, stop)
                n = m + 2
            else
                table.insert(t, table.concat(str))
                str = {}
                n = m + 1
                break
            end
        end
        return n, t, "longstring"
    end
    
    function lisp_any(s, n)
        local c
        n = n or 1
        --print("space", n)
        n = lisp_space(s, n)
        c = s:sub(n, n)
        if c == "(" then
            --print("list", n, "'"..s:sub(n, n).."'")
            return lisp_list(s, n+1)
        elseif c == ")" then
            --print("endlist", n, "'"..s:sub(n, n).."'")
            return n+1, nil, nil
        elseif c == '"' then
            --print("string", n)
            return lisp_string(s, n+1, '"')
        elseif c == "[" then
            --print("longstring", n)
            return lisp_longstring(s, n+1, ']')
        else
            --print("idf", n, "'"..s:sub(n, n).."'");
            return lisp_idf(s, n)
        end
    end
    
    function env.lisp(s)
        return select(2, lisp_any(s))
    end
    
    function env.makexml(tree, indent, lvl)
        lvl = lvl or 0
        local nl, tab = "", ""
        local inc_level = 0
        if indent then
            assert(type(indent)=="table", "2nd parameter must be a table")
            indent.tab = indent.tab or "\t"
            indent.nl = indent.nl or "\n"
            if not indent.disable then
                nl  = indent.nl
                tab = indent.tab
                inc_level = 1
            end
        else
            indent = {tab="", nl=""}
        end
        if type(tree) == "string" then
            return (tab:rep(lvl)..tree:gsub("&", "&"):gsub("<", "<"):gsub(">", ">")..nl)
        else
            local tagname = table.remove(tree, 1)
            local tag = {tab:rep(lvl), "<", tagname}
            local old_indent_disable = indent.disable
            for k, v in pairs(tree) do
                if k == "indent:" and (v == "false" or v == "0") or k==":inline" then
                    indent.disable=true
                    nl  = ""
                    tab = ""
                    inc_level = 0
                elseif k == "indent:" and (v == "true" or v == "1") or k==":block" then
                    indent.disable=false
                    nl  = indent.nl
                    tab = indent.tab
                    inc_level = 1
                elseif type(k) == "string" then
                    table.insert(tag, " " .. k .. '="' .. env.makexml(tostring(v)) .. '"')
                end
            end
            if #tree > 0 then
                table.insert(tag, ">")
                if not indent.disable then table.insert(tag, nl) end
                for k, v in ipairs(tree) do
                    table.insert(tag, (env.makexml(v, indent, lvl+inc_level)))
                end
                if not indent.disable then table.insert(tag, tab:rep(lvl)) end
                table.insert(tag, "</" .. tagname .. ">")
            else
                table.insert(tag, "/>")
            end
            indent.disable = old_indent_disable
            if not indent.disable then table.insert(tag, indent.nl) end
            return (table.concat(tag))
        end
    end
    
    if debug.getinfo(3) == nil then
        return main(...)
    else
        return main
    end
    
    
    L'appel se fait avec une commande du type ./template.lua montemplate. Le résultat est sur la sortie standard. Un template ressemble à :
    local buffer = {}
    function out(str)
        table.insert(buffer, str)
    end
    function finnish()
        local tree = lisp(table.concat(buffer))
        output(makexml(tree, {tab="    ", nl="\n", disable=true}), "\n")
    end
    
    (html :block
        (head
            (title :inline abc))
    # out "    (body"
            (p :inline [te,(a href test abc)st])))
    
    
    pour un résultat :
    < html >
        < head >
            < title >abc< /title >
        < /head >
        < body >
            < p >te< a href="test" >abc< /a >st< /p >
        < /body >
    < /html >
    
    La syntaxe est du style lisp. Un tag commence par "(" suivi du nom du tag et se termine par ")". Les paramètres du tag peut être remplis en ajoutant entre les parenthèses le nom du paramètre (sans quotes) suivi de sa valeur. Les chaines sont entourées de quotes ou de crochets "[", "]". A l'interieur des crochets, on peut ajouter des tags en préfixant la parenthèse ouvrante par "," (comme avec la quasiquotation). Pas encore de commentaires, c'est à venir. Voila
  • [^] # Re: telnet => rsh/rlogin/rexec => ssh !

    Posté par  (site web personnel) . En réponse au message partage dapplication. Évalué à 2.

    Et cela fonctionne aussi avec les applications graphiques. Parfois il est nécessaire cependant de rajouter l'option -X à ssh.
  • # Packages Wine

    Posté par  (site web personnel) . En réponse au message Désinstaller un programme. Évalué à 3.

    Ils sont sympa chez wine et proposent des package à jour pour plein de distribs :
    http://winehq.org/site/download
  • # la clef Blender

    Posté par  (site web personnel) . En réponse au message bonjour!!. Évalué à 3.

    n'existe plus depuis que Blender a été libéré, les versions depuis sont complètes ...
    Il y a même le Game Engine qui est revenu.
  • [^] # Re: Comment casser le mythe de rapidité de Fibonacci :-)

    Posté par  (site web personnel) . En réponse à la dépêche Erlang/OTP R11B supporte les architectures multiprocesseur. Évalué à 3.

    On utilise la balise < pre > en supprimant les retours à la ligne automatique ...
    par exemple
       ici c'est indenté
    par rapport à là
    Mais adieu les paragraphes ... Et commes les balises < p > ou < br / > sont interdites ...
  • [^] # Re: à vue de nez

    Posté par  (site web personnel) . En réponse au message faire un grep de variable ?. Évalué à 2.

    chez moi c'est plutôt :

    $ a=1234
    $ echo a
    a

    $ echo 'a'
    a
    $ echo "$a"
    1234
    $ echo '$a'
    $a
    $ echo $a
    1234
  • # imagemagick

    Posté par  (site web personnel) . En réponse au message Gnome - Fond d'écran - 2 écrans. Évalué à 2.

    $ display -window root monimage
    va mettre l'image monimage en fond d'écran.

    Le problème avec GNOME c'est que nautilus cache la fenêtre root pour afficher ses fichiers. Tu peux désactiver le bureau nautilus (et donc l'affichage des icones sur le desktop) avec :
    $ gconftool --set /apps/nautilus/preferences/show_desktop -t boolean false
    Pour réactiver le bureau nautilus, tu peux utiliser :
    $ gconftool --set /apps/nautilus/preferences/show_desktop -t boolean true

    Tu peux aussi utiliser gconf-editor
  • [^] # Re: Et hop...

    Posté par  (site web personnel) . En réponse au journal Que faire sans google ?. Évalué à 2.

  • [^] # Re: Lourdeur

    Posté par  (site web personnel) . En réponse au journal Ubuntu Dapper Drake Beta 2. Évalué à 2.

    tu peux supprimer ta partition swap et la recréer ... c'est probablement comme dit dans d'autres posts un problème de partition étandue.
  • [^] # Re: Gedit

    Posté par  (site web personnel) . En réponse au journal Choisir un environnement de dev pour y écrire un plugin. Évalué à 2.

    et une coloration syntaxique pas pratique ... en tout cas pas assez puissante
  • [^] # Re: Et beh...

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 4.

    en plus (du moins sur mon clavier) les deux touches sont vraiment très proches :)
  • # Pour les couper : on coupe le courant.

    Posté par  (site web personnel) . En réponse au journal Un bon téléspectateur et un téléspectateur qui ne zappe pas. Évalué à 2.

    Ne me dites pas qu'il n'y a pas de prise éléctrique sur leurs télévisuers ... si ?
    Alors la méthode la plus simple si on a réussi a acheter un tel truc c'est de lui couper le jus :)

    Ils exagèrent quand même