Je me rapelle du temps où je touchais encore à un Windows, qu'il existait une fonction qui permettait de faire hiberner l'ordinateur. Je pense qu'il devait sauvegarder sa RAM complètement sur le disque et la réinstaller au démarrage. Et cela marchait sur une machine qui n'avait même pas l'ACPI, et où le bouton power n'était qu'un interrupteur basique à deux états (plus aucune alimentation de la carte mère le PC éteint)
je me demaned si ca ne serait pas possible de le faire sur les distributions linux. car je dois dire que je n'aime pas trop arrêter tout ce que je fais, fermer mon navigateur et tout ça lorsque je dois arrêter l'ordinateur. L'interêt serait de pouvoir retrouver ses applications comme on les avait laissées.
En parlant de ça, je me demande si les fonctions hibernate et suspend que je trouve sur ma dernière ubuntu dapper utilisent l'ACPI ... ca en a tout l'air puisque ça ne marche pas. Est-ce réservé aux ordinateurs portables ou alors est-ce cencé fonctionner aussi sur les PC de bureau qui on un ACPI fonctionnel ?
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 :)
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)
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.
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.
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 ...
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.
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.
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.
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
$ 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
# ACPI & hibernation
Posté par Mildred (site web personnel) . En réponse à la dépêche Sortie du noyau Linux 2.6.17. Évalué à 2.
je me demaned si ca ne serait pas possible de le faire sur les distributions linux. car je dois dire que je n'aime pas trop arrêter tout ce que je fais, fermer mon navigateur et tout ça lorsque je dois arrêter l'ordinateur. L'interêt serait de pouvoir retrouver ses applications comme on les avait laissées.
En parlant de ça, je me demande si les fonctions hibernate et suspend que je trouve sur ma dernière ubuntu dapper utilisent l'ACPI ... ca en a tout l'air puisque ça ne marche pas. Est-ce réservé aux ordinateurs portables ou alors est-ce cencé fonctionner aussi sur les PC de bureau qui on un ACPI fonctionnel ?
[^] # Re: tu les fait déjà chier
Posté par Mildred (site web personnel) . En réponse au journal Des standarts reconnus .... Évalué à 1.
[^] # Re: Ça sera vérifié physiquement ?
Posté par Mildred (site web personnel) . En réponse à la dépêche Été féminin pour le projet GNOME. Évalué à 2.
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 Mildred (site web personnel) . En réponse à la dépêche Été féminin pour le projet GNOME. Évalué à 3.
[^] # Re: Troll peut-être, mais en natif
Posté par Mildred (site web personnel) . En réponse au journal Google Earth pour Linux. Évalué à 2.
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 Mildred (site web personnel) . En réponse au sondage AJAX. Évalué à 3.
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 Mildred (site web personnel) . En réponse au sondage AJAX. Évalué à 2.
Allez, je cherche: http://google.com/search?q=epiphany+noscript
[^] # Re: Standard...
Posté par Mildred (site web personnel) . En réponse au sondage AJAX. Évalué à 3.
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 Mildred (site web personnel) . En réponse au journal Des gestionnaires de fenêtre par monts et par vaux : macosx, windowmaker. Évalué à 3.
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 Mildred (site web personnel) . En réponse au journal mes aventures avec les traitement de textes. Évalué à 2.
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 Mildred (site web personnel) . En réponse à la dépêche Ubuntu : le canard pimpant est arrivé !. Évalué à 0.
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 Mildred (site web personnel) . En réponse à la dépêche Ubuntu : le canard pimpant est arrivé !. Évalué à 2.
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 Mildred (site web personnel) . En réponse au journal Microsoft cherche à remplacer le JPEG. Évalué à 3.
[^] # Re: Wine
Posté par Mildred (site web personnel) . En réponse au journal Picasa pour Linux dispo !. Évalué à 4.
Ca aurait été bien que google fasse au moins cet effort.
# petite création
Posté par Mildred (site web personnel) . En réponse au message langage pour écrire du XML. Évalué à 2.
[^] # Re: telnet => rsh/rlogin/rexec => ssh !
Posté par Mildred (site web personnel) . En réponse au message partage dapplication. Évalué à 2.
# Packages Wine
Posté par Mildred (site web personnel) . En réponse au message Désinstaller un programme. Évalué à 3.
http://winehq.org/site/download
# la clef Blender
Posté par Mildred (site web personnel) . En réponse au message bonjour!!. Évalué à 3.
Il y a même le Game Engine qui est revenu.
[^] # Re: Comment casser le mythe de rapidité de Fibonacci :-)
Posté par Mildred (site web personnel) . En réponse à la dépêche Erlang/OTP R11B supporte les architectures multiprocesseur. Évalué à 3.
[^] # Re: à vue de nez
Posté par Mildred (site web personnel) . En réponse au message faire un grep de variable ?. Évalué à 2.
$ a=1234
$ echo a
a
$ echo 'a'
a
$ echo "$a"
1234
$ echo '$a'
$a
$ echo $a
1234
# imagemagick
Posté par Mildred (site web personnel) . En réponse au message Gnome - Fond d'écran - 2 écrans. Évalué à 2.
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 Mildred (site web personnel) . En réponse au journal Que faire sans google ?. Évalué à 2.
[^] # Re: Lourdeur
Posté par Mildred (site web personnel) . En réponse au journal Ubuntu Dapper Drake Beta 2. Évalué à 2.
[^] # Re: Gedit
Posté par Mildred (site web personnel) . En réponse au journal Choisir un environnement de dev pour y écrire un plugin. Évalué à 2.
[^] # Re: Et beh...
Posté par Mildred (site web personnel) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 4.