Il serait arrivé en disant :
« Je n’ai pas réussi à installer en français, y-a-t-il quelque-chose à faire ? » je suis persuadé qu’il aurait eu des réponses constructives. Là, ça fait un peu le message : « Vous êtes des abrutis qui parlait anglais mais moi je ne le parle pas. » en plus, il parle de windaub, donc j’en déduis qu’il n’aime pas non plus Windows… on peut lui conseiller MAC ?
Juste pour précisé, fait gaffe avec le temps réel en mono processeur sur une boucle infini, le process ne rendra jamais la main. Le Ctrl + C devrait fonctionner néanmoins.
Tu as dis plus haut que le programme prenait 2s pour envoyer 98 paquets. (Arrête moi si je n’ai pas bien compris)
Tu peux calculer le temps d’exécution de ta fonction d’envoi. Tu as un exemple ici. Tu peux aussi faire un tableau de toutes tes mesures et faire des stats : min, max, moy…
Vérifies aussi toutes les sorties des fonctions que tu appelles. Certaines peuvent sortir avec EAGAIN ce qui peut vouloir dire que le processus a été dégager d’un appel système sur réception d’un signal. Dans ce cas, il faut relancer l’appel système.
le programme ne fait que ca, sans aucune limitation de temps, et celui-ci met quand meme plus de 2 secondes pour 42ko…
Ouch, il y a un problème. La puissance de la machine émettrice sous Linux ? (je n’y crois pas)
Pour utiliser la libpcap, j’imagine que le programme est exécuté en root. Donc tu peux passer ton processus sur le scheduler FIFO qui le rendra prioritaire sur tout sauf le noyau. Si tu as plusieurs cores, tu peux également lui assigner un seul core pour l’émission. Ça peut éviter des transfères de RAM fait par le noyau, mais je pense néanmoins que le problème doit-être ailleurs…
Si tu mets un autre PC sur le réseau et que tu snif les paquets que tu envoie, sont-ils bien de la forme que tu attends ? (Je reviens aux sources car j’ai du mal à voir pourquoi ça ne marcherai pas)
Le source est-il publiable, histoire de voir s’il n’y aurait pas un loup dedans ?
Salut,
J’ai un VTT Rockrider de décathlon (400€ en 2005). J’aimerai être capable de régler mon dérailleur, y-a-t-il des tuto correct pour les réparations réglages des vélos. Je pourrais chercher sur le net, mais je ne suis pas sûr de pouvoir juger si un tuto est valable ou pas avant d’avoir réparé ou pété mon vélo.
je ne connais pas PERL, mais si tes scripts fonctionne en même temps, le plus simple me semble de créer un pipe nommé. Tes deux scripts écrivent dedans et tu ajoutes un troisième scripts qui le lit et écrit la sortie dans un fichier.
Une trame ethernet fait 1500 octets (de mémoire et à peu près), donc il faut découper la trame à la main.
Pourquoi envoyer les trames à la main ? Pourquoi ne pas faire simplement de l’IP avec de l’UDP ?
42ko toutes le 32ms ==> 1,28 Mo/s de débit. Sur un réseau local tu as de la marge. Il vaut mieux rester standard pour ne pas dépendre des spécificités du système.
J’ai un VTT depuis quelques années. J’ai des freins à patin. Le vendeur m’avait déconseiller les freins à disque non hydraulique. « Il vaut mieux des bons patins » m’a-t-il dit. Quand a doubler le prix de mon vélo pour ça, je ne suis pas assez aguerri pour m’offrir un vélo à 1000 €.
Ça, ça dépend de la configuration du kernel si je ne dis pas de conneries (/proc/sys/overcommit_memory).
Ben, j’aime pas non plus, mais il existe.
Sinon, tu peux allouer un buffer sur la pile, et boucler en sommant les retours du read. Ça bouffe moins de RAM, même si tu la libère juste après. Et puis comme c’est de l’accès RAM, ce n’est pas très long.
Sinon, si c’est de l’analyse de champ, une solution à base de fscanf peut être bien comme proposé en dessous.
Je n’avais pas tilté que le fichier était virtuel…
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <fcntl.h>#define File "/proc/meminfo"intmain(){intfd=open(File,O_RDONLY);if(fd==-1){fprintf(stderr,"Ouverture de "File" impossible avec open\n");}else{structstatl_stat;intrc;rc=fstat(fd,&l_stat);if(rc==-1){perror("fstat error");}else{printf("Fichier : "File" : taille : %d\n",l_stat.st_size);}}return0;}
$ ./a.out
Fichier : /proc/meminfo : taille : 0
$
:-(
La fonction read renvoie le nombre d’octets réellement lus. En définissant un grand buffer ça devrait marcher. En plus, comme Linux n’alloue les pages que quand elles sont utilisées, on peut allouer 1M sans avoir peur.
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <fcntl.h>#define File "/proc/meminfo"intmain(){intfd=open(File,O_RDONLY);if(fd==-1){fprintf(stderr,"Ouverture de "File" impossible avec open\n");}else{char*l_buffer;/* 1M octet est sufisant et pas réellement alloué par linux */l_buffer=malloc(1000000);ssize_tsize;size=read(fd,l_buffer,1000000);/* size contient la taille réellement lue */printf("Fichier : "File" : taille : %d\n",size);free(l_buffer);}return0;}
En clair, moi, par exemple, je charge pas mal d’onglet avec de la doc. quand je change entre mon IDE et mon FF, je ne souhaite pas attendre plusieurs secondes que les 3G de firefox sortent du swap. Donc au boulot j’ai mis une extension qui décharge la mémoire des onglets inutilisés. Je préfère attendre 5s que la page se recharge que 20s puis 20s en repassant sur l’IDE qui est maintenant en swap… À la maison, je n’ai pas de soucis avec mes 16G de RAM, mais au boulot :'(
De mon point de vue le swap doit être de l’exceptionnel. Sauf à le mettre sur un disque SSD sur le bus PCI-e ;-)
Si c'est pour aller au boulot, bin t'es à 1/4h à pied de ton taf' ? si tu habites plus loin, tu assumes : bus, vélo, stait un choix à la base ?
Le problème, c’est le couple… en effet ma femme travail à moins de 500m de chez nous, mais moi, je dois me faire une demi rocade bordelaise tous les jours. Pas toujours simple de composer.
Personnellement, mâle pour parler d’un homme me fait plutôt penser à quelqu’un dominé par ses plus bas instincts. Peut-être que certaines personnes y voit du positif, moi je y vois plutôt du négatif.
l'expression « petits mâles » utilisée dans l'article est justement utilisée de façon péjorative par l'auteure, afin d'exprimer le côté "néfaste" des comportements qu'on projette sur les jeunes garçons.
Moi ça me gène également. Là dessus je suis d’accord avec alenver pourquoi pas p'tite femelle, p'tite maman… ? Pourquoi parler de changer l’éducation des mecs sans parler de l’éducation des gonzesses ? (changement de registre de langue) C’est facile de dire que l’image projetée sur les jeunes garçons est néfaste en occultant celle projetée sur les jeunes filles [1]. Occulter un des deux sexes quand on parle de ce genre de chose est une aberration !
La sécurité et la confiance sont intimement liés. Personnellement, ce que propose ton nouveau fournisseur, c’est un lien chiffré entre ton site et chez lui, (*) puis re-chiffrer de chez lui à ton second site. Que fait-il des données quand elles passent en clair chez lui ? Est-il capable de les déchiffrer ?
Quel est le niveau de confidentialité dont tu as besoin ? Comment t’assures-tu que le service atteint bien le niveau attendu ?
J’ai surtout l’impression que c’est je me connecte de base sur le compte qui peut être admin. Quand l’OS demande je clique sur autoriser sans réfléchir. Donc la notion d’admin reste floue. C’est la même chose sous ubuntu, au détail près qu’il faut taper le mot de passe.
Nous voyons tous le monde à travers nos connaissances… Ce que je voulais exprimer c’était surtout que la grammaire du C ne permettait pas ce genre de construction simple.
Sur des constructions comme ça, il faut réfléchir quand on manque d’habitude, et ce n’est pas simple. Mais j’essaye de progresser quand même ;-)
[^] # Re: Et le Expanded Malware Protection?
Posté par Anthony Jaguenaud . En réponse à la dépêche Sortie de Firefox 40. Évalué à 2.
J’utilise : auto unload tab et tab memory usage.
[^] # Re: Faux.
Posté par Anthony Jaguenaud . En réponse au message Linux Mint en français ?. Évalué à 2.
Il serait arrivé en disant :
« Je n’ai pas réussi à installer en français, y-a-t-il quelque-chose à faire ? » je suis persuadé qu’il aurait eu des réponses constructives. Là, ça fait un peu le message : « Vous êtes des abrutis qui parlait anglais mais moi je ne le parle pas. » en plus, il parle de windaub, donc j’en déduis qu’il n’aime pas non plus Windows… on peut lui conseiller MAC ?
[^] # Re: il manque une bonne vraie étude (et pas par les vendeurs d'écran)
Posté par Anthony Jaguenaud . En réponse au journal Lumière bleue, attention les yeux.. Évalué à 3.
Il y a d’ailleurs eu un « Science et vie » sur le sujet avant l’été.
[^] # Re: Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 2.
Juste pour précisé, fait gaffe avec le temps réel en mono processeur sur une boucle infini, le process ne rendra jamais la main. Le Ctrl + C devrait fonctionner néanmoins.
[^] # Re: Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 2.
Tu as dis plus haut que le programme prenait 2s pour envoyer 98 paquets. (Arrête moi si je n’ai pas bien compris)
Tu peux calculer le temps d’exécution de ta fonction d’envoi. Tu as un exemple ici. Tu peux aussi faire un tableau de toutes tes mesures et faire des stats : min, max, moy…
Vérifies aussi toutes les sorties des fonctions que tu appelles. Certaines peuvent sortir avec
EAGAINce qui peut vouloir dire que le processus a été dégager d’un appel système sur réception d’un signal. Dans ce cas, il faut relancer l’appel système.[^] # Re: Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 2.
Attention, le
nicene sert presque à rien… il faut utiliser le scheduler FIFO.man sched_setschedulerpasser en modeSCHED_FIFO.[^] # Re: Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 3.
Ouch, il y a un problème. La puissance de la machine émettrice sous Linux ? (je n’y crois pas)
Pour utiliser la libpcap, j’imagine que le programme est exécuté en root. Donc tu peux passer ton processus sur le scheduler FIFO qui le rendra prioritaire sur tout sauf le noyau. Si tu as plusieurs cores, tu peux également lui assigner un seul core pour l’émission. Ça peut éviter des transfères de RAM fait par le noyau, mais je pense néanmoins que le problème doit-être ailleurs…
Si tu mets un autre PC sur le réseau et que tu snif les paquets que tu envoie, sont-ils bien de la forme que tu attends ? (Je reviens aux sources car j’ai du mal à voir pourquoi ça ne marcherai pas)
Le source est-il publiable, histoire de voir s’il n’y aurait pas un loup dedans ?
[^] # Re: Puisqu’on a des pro du vélo
Posté par Anthony Jaguenaud . En réponse au journal C'est bientôt le « salon du vélo ». Évalué à 3.
Merci beaucoup. Car si je peux faire rapidement la part des choses en informatique, en mécanique c’est une autre histoire ;-)
[^] # Re: Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 2.
Quel est le problème de réception ?
Tu peux essayer d’envoyer tes paquets répartis de manière uniforme dans le temps :
toutes les 32ms tu envoies 98 paquets… on va dire 100. Peux-tu émettre un paquet ethernet toutes les 320μs ? (sans déraper dans le temps).
# Puisqu’on a des pro du vélo
Posté par Anthony Jaguenaud . En réponse au journal C'est bientôt le « salon du vélo ». Évalué à 3.
Salut,
J’ai un VTT Rockrider de décathlon (400€ en 2005). J’aimerai être capable de régler mon dérailleur, y-a-t-il des tuto correct pour les réparations réglages des vélos. Je pourrais chercher sur le net, mais je ne suis pas sûr de pouvoir juger si un tuto est valable ou pas avant d’avoir réparé ou pété mon vélo.
# FIFO ?
Posté par Anthony Jaguenaud . En réponse au message écrire les résultats dans le même fichier. Évalué à 2.
Salut,
je ne connais pas PERL, mais si tes scripts fonctionne en même temps, le plus simple me semble de créer un
pipe nommé. Tes deux scripts écrivent dedans et tu ajoutes un troisième scripts qui le lit et écrit la sortie dans un fichier.Ex :
writer.sh
Dans le shell :
Dans différent terminaux :
Pour lire :
# Découpage ou UDP/IP
Posté par Anthony Jaguenaud . En réponse au message Vitesse d'envoi de trames ethernet. Évalué à 2.
Une trame ethernet fait 1500 octets (de mémoire et à peu près), donc il faut découper la trame à la main.
Pourquoi envoyer les trames à la main ? Pourquoi ne pas faire simplement de l’IP avec de l’UDP ?
42ko toutes le 32ms ==> 1,28 Mo/s de débit. Sur un réseau local tu as de la marge. Il vaut mieux rester standard pour ne pas dépendre des spécificités du système.
[^] # Re: Freins à disques...
Posté par Anthony Jaguenaud . En réponse au journal C'est bientôt le « salon du vélo ». Évalué à 2.
J’ai un VTT depuis quelques années. J’ai des freins à patin. Le vendeur m’avait déconseiller les freins à disque non hydraulique. « Il vaut mieux des bons patins » m’a-t-il dit. Quand a doubler le prix de mon vélo pour ça, je ne suis pas assez aguerri pour m’offrir un vélo à 1000 €.
[^] # Re: Matplotlib avec le rendu XKCD?
Posté par Anthony Jaguenaud . En réponse au message Dessin de graphique en "mode brouillon". Évalué à 2.
Et tu sais si on peut utiliser ce genre de rendu avec GNUplot, ou un autre langage que le python ?
[^] # Re: man fstat
Posté par Anthony Jaguenaud . En réponse au message taille du "fichier" /proc/meminfo. Évalué à 2.
Ben, j’aime pas non plus, mais il existe.
Sinon, tu peux allouer un buffer sur la pile, et boucler en sommant les retours du read. Ça bouffe moins de RAM, même si tu la libère juste après. Et puis comme c’est de l’accès RAM, ce n’est pas très long.
Sinon, si c’est de l’analyse de champ, une solution à base de fscanf peut être bien comme proposé en dessous.
[^] # Re: man fstat
Posté par Anthony Jaguenaud . En réponse au message taille du "fichier" /proc/meminfo. Évalué à 2.
Je n’avais pas tilté que le fichier était virtuel…
:-(
La fonction
readrenvoie le nombre d’octets réellement lus. En définissant un grand buffer ça devrait marcher. En plus, comme Linux n’alloue les pages que quand elles sont utilisées, on peut allouer 1M sans avoir peur.[^] # Re: Et le Expanded Malware Protection?
Posté par Anthony Jaguenaud . En réponse à la dépêche Sortie de Firefox 40. Évalué à 7.
Oui, mais non !
En clair, moi, par exemple, je charge pas mal d’onglet avec de la doc. quand je change entre mon IDE et mon FF, je ne souhaite pas attendre plusieurs secondes que les 3G de firefox sortent du swap. Donc au boulot j’ai mis une extension qui décharge la mémoire des onglets inutilisés. Je préfère attendre 5s que la page se recharge que 20s puis 20s en repassant sur l’IDE qui est maintenant en swap… À la maison, je n’ai pas de soucis avec mes 16G de RAM, mais au boulot :'(
De mon point de vue le swap doit être de l’exceptionnel. Sauf à le mettre sur un disque SSD sur le bus PCI-e ;-)
# man fstat
Posté par Anthony Jaguenaud . En réponse au message taille du "fichier" /proc/meminfo. Évalué à 2. Dernière modification le 17 août 2015 à 15:05.
1) Pour connaître la taille d’un fichier utile
fstatoustatsi le fichier n’est pas ouvert. Le champst_sizedevrait faire ton bonheur.Au delà de ta question :
2) Si ton but est de charger le fichier en mémoire pour l’étudier :
man mmappourra te simplifier la vie.3) Si ton but est de chercher certains champs, autant ouvrir le fichier et le lire ligne par ligne :
man getline.[^] # Re: sympa, mais...
Posté par Anthony Jaguenaud . En réponse au journal Exemple: SIG et pollution sonore. Évalué à 2.
Le problème, c’est le couple… en effet ma femme travail à moins de 500m de chez nous, mais moi, je dois me faire une demi rocade bordelaise tous les jours. Pas toujours simple de composer.
[^] # Re: À l'école
Posté par Anthony Jaguenaud . En réponse à la dépêche Stage collégiennes/lycéennes « Girls Can Code! » en août. Évalué à 3.
Personnellement, mâle pour parler d’un homme me fait plutôt penser à quelqu’un dominé par ses plus bas instincts. Peut-être que certaines personnes y voit du positif, moi je y vois plutôt du négatif.
[^] # Re: À l'école
Posté par Anthony Jaguenaud . En réponse à la dépêche Stage collégiennes/lycéennes « Girls Can Code! » en août. Évalué à 1.
Moi ça me gène également. Là dessus je suis d’accord avec alenver pourquoi pas p'tite femelle, p'tite maman… ? Pourquoi parler de changer l’éducation des mecs sans parler de l’éducation des gonzesses ? (changement de registre de langue) C’est facile de dire que l’image projetée sur les jeunes garçons est néfaste en occultant celle projetée sur les jeunes filles [1]. Occulter un des deux sexes quand on parle de ce genre de chose est une aberration !
[1] jeune fille n’est-il pas péjoratif ?
[^] # Re: cygwin
Posté par Anthony Jaguenaud . En réponse au message Exécuter un script windows sous un serveur linux distant. Évalué à 3.
Soit les informations sont écrites sur la console est tu les as directement :
Soit le script met ça dans un fichier sur la machine windows. Dans ce cas :
# Sécurité et confiance
Posté par Anthony Jaguenaud . En réponse au message MPLS multi-opérateur. Évalué à 5.
La sécurité et la confiance sont intimement liés. Personnellement, ce que propose ton nouveau fournisseur, c’est un lien chiffré entre ton site et chez lui, (*) puis re-chiffrer de chez lui à ton second site. Que fait-il des données quand elles passent en clair chez lui ? Est-il capable de les déchiffrer ?
Quel est le niveau de confidentialité dont tu as besoin ? Comment t’assures-tu que le service atteint bien le niveau attendu ?
Répond à ces questions, et tu auras ta réponse.
[^] # Re: Complexité
Posté par Anthony Jaguenaud . En réponse au journal Tame et OpenBSD. Évalué à 3.
J’ai surtout l’impression que c’est je me connecte de base sur le compte qui peut être admin. Quand l’OS demande je clique sur autoriser sans réfléchir. Donc la notion d’admin reste floue. C’est la même chose sous ubuntu, au détail près qu’il faut taper le mot de passe.
[^] # Re: Intéressant, mais Haskell
Posté par Anthony Jaguenaud . En réponse au journal Résolution naïve d'un jeu de société. Évalué à 2.
Nous voyons tous le monde à travers nos connaissances… Ce que je voulais exprimer c’était surtout que la grammaire du C ne permettait pas ce genre de construction simple.
Sur des constructions comme ça, il faut réfléchir quand on manque d’habitude, et ce n’est pas simple. Mais j’essaye de progresser quand même ;-)