Lis la norme IEE-754-1985 qui définit les nombres à virgule flottante. Il précise que les valeurs INF et Nan sont définies, et gcc/g++ sait les gérer. C'est Nan que j'utiliserais (puisque c'est vrai).
En C++, tu peux définir une classe dérivant immédiatement de double pour éviter les transtypages et autres.
class ElaboratedDouble : public double
{
public:
bool defined;
}
Tu peux également redéfinir l'opérateur de casting (double) (même si redéfinir les opérateurs de casting pose toujours plus de problème que cela n'en résoud) et tenter de lancer une exception si la valeur n'est pas définie.
Posté par Obsidian .
En réponse au message POST.
Évalué à 5.
Par exemple, pour un CGI c'est pas compliqué, on balances tout sur son stdin en modifiant quelques variables d'environnement, et on renvoie au client le stdout, mais pour une banale page web, comment ça se gère ?
Ben pour une banale page web, en principe c'est ton serveur qui gère tout cela. Ce que je tire de ton message, c'est qu'apparement, ton plugin, c'est un mini serveur web. Donc dans ce cas (POST), tu dois refaire le travail exactement comme tu le ferais avec une application CGI, qui n'est que la définition de l'interface entre le serveur WEB et ton application, ce qui n'a pas lieu d'être ici puisque tu écoutes directement les connexions.
Dans le cas de POST, les données pouvant être très longues et/ou confidentielles, il est hors de question de les coder dans l'URL ni même dans les entêtes ! Elles font partie du document. Ce document est ensuite présenté à la discrétion du client (le navigateur), mais en général c'est :
Content-Type: application/x-www-form-urlencoded
... qui est un type mime défini et donc (probablement) décrit clairement par une RFC. La mauvaise nouvelle, c'est que si tu ne peux pas utiliser un module tout fait (style CGI en perl), il faudra te recoltiner l'implémentation des différents protocoles si tu veux être parfaitement compatible avec tes clients, à moins d'utiliser une entête du style "Accept-xxxx" pour informer le client des langues que tu connais vraiment.
En pratique, les arguments passés par un formulaire POST au moment où tu cliques sur un bouton sont encodés exactement de la même façon qu'un GET mais sur la première ligne des données, après les entêtes.
Fais par exemple un "nc -l -p 5678" pour te mettre à l'écoute du port 5678 (par exemple), puis écris une petite page web qui contiendra juste un formulaire de type POST et dont l'action sera "http://127.0.0.1:5678(...)". Tu obtiendras un exemple parlant de ce qu'un navigateur web envoie à un serveur dans ta situation.
Pour tes codes de retour, c'est le protocole HTTP qu'il faut respecter. Cela n'a rien à voir avec le POST en particulier, si ce n'est que c'est la plupart du temps avec un formulaire que l'on fait des opérations coté serveur autre que la simple consultation de page. Donc tu écris simplement sur la sortie standard :
Bonjour, je suis face à problème fort fâcheux : en effet, un petit insecte (une sorte de vermisseau) d'environ 2mm de long et moins épais qu'une feuille de papier je dirais, s'est introduit sous la « vitre » de mon écran LCD.
Tu peux utiliser gdb, c'est très efficace contre les vilaines bébêtes :-)
vu que tu utilise ubuntu il est probable que tu ne soit pas un acharne de la ligne de commande
Eh bien en fait si. La difficulté étant en général de faire le chemin inverse, c'est-à-dire trouver la voie tracée par la distribution plutôt que d'aller directement faire les modifs qui s'imposent. Par contre j'aime beaucoup les distributions à la fois chatoyantes et bien intégrées, et il n'y en a pas beaucoup.
De plus, on est ici dans le forum linux.debutants. Il est un peu tôt pour aller recompiler un module, faire les configs et installer un script d'init SysV comme on le faisait avec le pilote d'EagleUSB (qui m'a rendu de grands services, toutes choses égales par ailleurs).
Je dois vraiment être un geek parce qu'à l'époque (il y a 16-17 ans déjà, pfff), je bidouillais pas mal mon MO6, et alors que ma classe foutait le souk en cours d'espagnol, le professeur interimaire me condamne injustement à copier 100 fois « No debo hablar en clase » alors que j'étais resté très calme quand mes voisins de derrière se battaient à coups de chaise ! :-)
10 OPEN "O",#1,"LPRT:"
20 FOR I=0 TO 49
30 PRINT #1,"No debo hablar en clase. ";
40 PRINT #1,"No debo hablar en clase."
50 NEXT
La double ligne me permettait d'exploiter pleinement les 80 colonnes de ma PR-90 612M, ce qui était encore un luxe à l'époque. Je lui ai rendu le papier. Il s'en est rendu compte une petite dizaine de minutes après. Il me l'a violement redéposé sur ma table en hurlant « Tu vas le copier 1000 fois ! », puis, se reprenant : « ... dont 300 fois à la main. ».
Je suis moi aussi passé à Hoary et depuis c'est l'idylle, mais j'ai tout de même rencontré ces problèmes, moi aussi. Je n'ai pas encore fait beaucoup de route avec Gnome, mais il me semble que Totem est en réalité un front-end qui s'appuie sur différentes infrastructures, au choix. Par défaut, sous Ubuntu, c'est gstreamer, mais tu peux aussi décider de passer à Totem-Xine. Il y a des chances que xine reconnaisse plus facilement certains formats, notament le DivX. Dans ce cas, direction Synaptic, et tu sélectionnes les bons packages. L'installateur Debian réputé pour la qualité de son intégration désintallera proprement gstreamer, et passera à xine sans douleur. En tout cas, c'est ce qu'il s'est passé pour moi.
Si non, il te faudra peut-être configurer pppoe (j'étais déjà en Freebox dégroupée avant de passer à Ubuntu donc je n'ai pas vraiment creusé). Dans le cas contraire, il faut simplement demander à ton modem de t'attribuer une adresse via DHCP.
En tout état de cause, si tu n'as pas envie de manipuler la ligne de commande (pourtant conseillé), dans Ubuntu Gnome, les préférences réseau sont dans Système -> Administration -> Réseau.
Posté par Obsidian .
En réponse au message lame.
Évalué à 2.
J'ajouterais que même dans le cas où lame ne serait pas capable de recevoir plusieurs noms de fichiers à la fois (ce qui est à voir), le ls développé ne servirait quand même à rien. Un simple :
for i in *; do lame $i ; done
En précédent éventuellement l'astérisque du chemin où se trouvent ces fichiers et cela suffit.
Le problème n'est pas là àmha. Microsoft est une entreprise américaine, pays épris (c'est ce qu'ils prétendent en tous cas) de liberté et de démocratie
Oui, enfin ils ont toujours confondu liberté et libéralisme.
Il n'y a pas de raison pour qu'il y ait moins d'intégristes chez Microsoft qu'il n'y en a dans le monde du libre. Je suis persuadé que la plupart des membres de l'équipe dirigeante de Redmond reste convaincue que la gestion de l'informatique mondiale leur revient de droit.
Je ne suis pas sûr que ce soit une chance de voir Bill Gates s'intéresser au modèle du libre. Partout où il est passé, l'herbe a cessé de pousser. Je m'étonne d'ailleurs que sa compagnie n'ait pas encore essayé d'acheter des entreprises du monde Linux pour les faire disparaître. Je préfère et de loin les voir couper toutes relations avec la communauté du Libre plutôt que de les voir la corrompre.
Ben évidement que c'est une bonne idée. Mais pourquoi en cable select en particulier ? Un disque en master, l'autre en slave (sur de l'IDE), voire un par contrôleur, et tout fonctionne.
Le Dual Boot est quelque chose de très répandu. Toutes les distributions de Linux sont d'ailleurs capable de reconnaitre les autres systèmes d'exploitation sur ta machine et de bâtir un menu de démarrage en conséquence.
Bah dans tous les cas, "aucune" reste invariable !
Quand à la fameuse règle, il me semble que justement beaucoup de personnes l'emploient de fait mais il me semble tenir d'un prof de français lui-même que c'est une erreur, et je trouve que ca l'est aussi.
Aussi cela me surprend quand tu me dis que tu l'as retrouvé dans un livre de grammaire. Je te crois bien volontier, cela dit, car j'ai été infichu de la retrouver sur le net.
# Double et C++
Posté par Obsidian . En réponse au message Marquer un double comme étant non élaboré.. Évalué à 3.
En C++, tu peux définir une classe dérivant immédiatement de double pour éviter les transtypages et autres.
class ElaboratedDouble : public double
{
public:
bool defined;
}
Tu peux également redéfinir l'opérateur de casting (double) (même si redéfinir les opérateurs de casting pose toujours plus de problème que cela n'en résoud) et tenter de lancer une exception si la valeur n'est pas définie.
[^] # Re: suite : evolution
Posté par Obsidian . En réponse au message problèmes de link C++. Évalué à 2.
[^] # Re: ESR et la religion
Posté par Obsidian . En réponse au journal L'importance du choix du pseudo. Évalué à 3.
# CGIs et serveurs Web, même combat.
Posté par Obsidian . En réponse au message POST. Évalué à 5.
Ben pour une banale page web, en principe c'est ton serveur qui gère tout cela. Ce que je tire de ton message, c'est qu'apparement, ton plugin, c'est un mini serveur web. Donc dans ce cas (POST), tu dois refaire le travail exactement comme tu le ferais avec une application CGI, qui n'est que la définition de l'interface entre le serveur WEB et ton application, ce qui n'a pas lieu d'être ici puisque tu écoutes directement les connexions.
Dans le cas de POST, les données pouvant être très longues et/ou confidentielles, il est hors de question de les coder dans l'URL ni même dans les entêtes ! Elles font partie du document. Ce document est ensuite présenté à la discrétion du client (le navigateur), mais en général c'est :
Content-Type: application/x-www-form-urlencoded
... qui est un type mime défini et donc (probablement) décrit clairement par une RFC. La mauvaise nouvelle, c'est que si tu ne peux pas utiliser un module tout fait (style CGI en perl), il faudra te recoltiner l'implémentation des différents protocoles si tu veux être parfaitement compatible avec tes clients, à moins d'utiliser une entête du style "Accept-xxxx" pour informer le client des langues que tu connais vraiment.
En pratique, les arguments passés par un formulaire POST au moment où tu cliques sur un bouton sont encodés exactement de la même façon qu'un GET mais sur la première ligne des données, après les entêtes.
Fais par exemple un "nc -l -p 5678" pour te mettre à l'écoute du port 5678 (par exemple), puis écris une petite page web qui contiendra juste un formulaire de type POST et dont l'action sera "http://127.0.0.1:5678(...)". Tu obtiendras un exemple parlant de ce qu'un navigateur web envoie à un serveur dans ta situation.
Pour tes codes de retour, c'est le protocole HTTP qu'il faut respecter. Cela n'a rien à voir avec le POST en particulier, si ce n'est que c'est la plupart du temps avec un formulaire que l'on fait des opérations coté serveur autre que la simple consultation de page. Donc tu écris simplement sur la sortie standard :
HTTP/1.0 200 OK
Content-Type: text/html
Début de ton document ...
et tout devrait marcher comme sur des roulettes.
[^] # Re: Choisir son vrai nom ?
Posté par Obsidian . En réponse au journal L'importance du choix du pseudo. Évalué à 4.
# Chasse aux bugs.
Posté par Obsidian . En réponse au journal Démonter un écran LCD ?. Évalué à 8.
Tu peux utiliser gdb, c'est très efficace contre les vilaines bébêtes :-)
# man netstat
Posté par Obsidian . En réponse au message amina. Évalué à 3.
$ netstat -lpatue et tu sauras quel programme occupe ton port.
Il a des chances que tu aie effectivement déjà lancé le programme en question. Détruis-le avec kill.
$ apt-get install nmap
[^] # Re: la gestion d'erreur c'est pas pour les chiens...
Posté par Obsidian . En réponse au message renommer & remove fichier. Évalué à 4.
[^] # Re: Ouais, c'est facile
Posté par Obsidian . En réponse au journal Espionnage chez Valéo: Info ou Intox ?. Évalué à 3.
[^] # Re: une solution possible
Posté par Obsidian . En réponse au message lame. Évalué à 2.
is good for you !
[^] # Re: voila chantons tous
Posté par Obsidian . En réponse au journal Espionnage chez Valéo: Info ou Intox ?. Évalué à 3.
[^] # Re: PLus d'information est nécessaire
Posté par Obsidian . En réponse au message configuration internet. Évalué à 2.
Eh bien en fait si. La difficulté étant en général de faire le chemin inverse, c'est-à-dire trouver la voie tracée par la distribution plutôt que d'aller directement faire les modifs qui s'imposent. Par contre j'aime beaucoup les distributions à la fois chatoyantes et bien intégrées, et il n'y en a pas beaucoup.
De plus, on est ici dans le forum linux.debutants. Il est un peu tôt pour aller recompiler un module, faire les configs et installer un script d'init SysV comme on le faisait avec le pilote d'EagleUSB (qui m'a rendu de grands services, toutes choses égales par ailleurs).
[^] # Re: Ouais, c'est facile
Posté par Obsidian . En réponse au journal Espionnage chez Valéo: Info ou Intox ?. Évalué à 10.
Encore un coup des chinois du FBI :-)
[^] # Re: que fait la police ?
Posté par Obsidian . En réponse au journal Espionnage chez Valéo: Info ou Intox ?. Évalué à 6.
Free Kevin Li Li !
Et tant pis s'ils sont tous les deux déjà sortis (pas ensemble, bien sûr).
[^] # Ma vie
Posté par Obsidian . En réponse au journal Si j'avais su codé.... Évalué à 2.
10 OPEN "O",#1,"LPRT:"
20 FOR I=0 TO 49
30 PRINT #1,"No debo hablar en clase. ";
40 PRINT #1,"No debo hablar en clase."
50 NEXT
La double ligne me permettait d'exploiter pleinement les 80 colonnes de ma PR-90 612M, ce qui était encore un luxe à l'époque. Je lui ai rendu le papier. Il s'en est rendu compte une petite dizaine de minutes après. Il me l'a violement redéposé sur ma table en hurlant « Tu vas le copier 1000 fois ! », puis, se reprenant : « ... dont 300 fois à la main. ».
:-)
# Totem ou Totem ?
Posté par Obsidian . En réponse au message ubuntu et la video. Évalué à 4.
[^] # Re: PLus d'information est nécessaire
Posté par Obsidian . En réponse au message configuration internet. Évalué à 2.
Si non, il te faudra peut-être configurer pppoe (j'étais déjà en Freebox dégroupée avant de passer à Ubuntu donc je n'ai pas vraiment creusé). Dans le cas contraire, il faut simplement demander à ton modem de t'attribuer une adresse via DHCP.
En tout état de cause, si tu n'as pas envie de manipuler la ligne de commande (pourtant conseillé), dans Ubuntu Gnome, les préférences réseau sont dans Système -> Administration -> Réseau.
Bon courage.
[^] # Re: Micro$oft, mourir ou s'adapter
Posté par Obsidian . En réponse à la dépêche Daniel Robbins rejoint Microsoft. Évalué à 3.
http://www.blinkenlights.com/classiccmp/gateswhine.html(...)
http://www.freescape.eu.org/biblio/article.php3?id_article=155(...)
ou s'il a mis de l'eau dans son vin depuis ... :-)
[^] # Re: Encore
Posté par Obsidian . En réponse au journal Spécifier une nouvelle librairie graphique. Évalué à 10.
[^] # Re: une solution possible
Posté par Obsidian . En réponse au message lame. Évalué à 2.
for i in *; do lame $i ; done
En précédent éventuellement l'astérisque du chemin où se trouvent ces fichiers et cela suffit.
[^] # Re: Tu accepterais toi si c'etait l'inverse?
Posté par Obsidian . En réponse au journal Ahh liberté, faudra-t-il mourrir pour toi une 2ème fois ?. Évalué à 2.
Oui, enfin ils ont toujours confondu liberté et libéralisme.
[^] # Re: Micro$oft, mourir ou s'adapter
Posté par Obsidian . En réponse à la dépêche Daniel Robbins rejoint Microsoft. Évalué à 6.
Il n'y a pas de raison pour qu'il y ait moins d'intégristes chez Microsoft qu'il n'y en a dans le monde du libre. Je suis persuadé que la plupart des membres de l'équipe dirigeante de Redmond reste convaincue que la gestion de l'informatique mondiale leur revient de droit.
Je ne suis pas sûr que ce soit une chance de voir Bill Gates s'intéresser au modèle du libre. Partout où il est passé, l'herbe a cessé de pousser. Je m'étonne d'ailleurs que sa compagnie n'ait pas encore essayé d'acheter des entreprises du monde Linux pour les faire disparaître. Je préfère et de loin les voir couper toutes relations avec la communauté du Libre plutôt que de les voir la corrompre.
# Cable Set ?
Posté par Obsidian . En réponse au message projet dans mon pc. Évalué à 2.
Le Dual Boot est quelque chose de très répandu. Toutes les distributions de Linux sont d'ailleurs capable de reconnaitre les autres systèmes d'exploitation sur ta machine et de bâtir un menu de démarrage en conséquence.
[^] # Re: wine ? vmware ? qemu ?
Posté par Obsidian . En réponse au message logiciels windows à partir de linux ?. Évalué à 1.
(-1 et je sors).
[^] # Re: Fautes
Posté par Obsidian . En réponse au journal Réforme de la netiquette sur LinuxFr. Évalué à 3.
Quand à la fameuse règle, il me semble que justement beaucoup de personnes l'emploient de fait mais il me semble tenir d'un prof de français lui-même que c'est une erreur, et je trouve que ca l'est aussi.
Aussi cela me surprend quand tu me dis que tu l'as retrouvé dans un livre de grammaire. Je te crois bien volontier, cela dit, car j'ai été infichu de la retrouver sur le net.
Si quelqu'un a un lien ...