1.2. LE FAIT GÉNÉRATEUR
Le fait générateur de la redevance est constitué par la détention d'un appareil récepteur de télévision ou
d'un dispositif assimilé permettant la réception de la télévision, appréciée au 1er janvier de l'année au titre
de laquelle la redevance audiovisuelle est due.
Il est question de détention pas de possession. Or tu détiens une Freebox à ton domicile bien que tu n'en sois pas propriétaire; c'est donc à toi de payer :(
La commande mkdir a une option -p qui permet de créer les répertoires intermédiaires si nécessaire.
Tu as donc 2 solutions:
1. méthode "bourrin"
Tu remplaces l'appel de la fonction mkdir par un appel de system("mkdir ...").
C'est lourd mais simple et ça marche.
2. Tu récupères le source de la commande mkdir (ça sert aussi à ça l'open source) et tu t'en inspire pour intégrer la fonctionnalité équivalente à l'option -p à ton programme.
une phrase de 11 lignes ça se lit pas tout seul.
Tout à fait d'accord ! Une légère remise en forme m'a aidé à comprendre:
Concrètement, le projet DADVSI verrouille juridiquement les dispositifs anti-copie sur tout support numérique:
* ils seront créés, déployés et contrôlés selon des critères arbitraires par les seuls industriels du disque, du film et du logiciel propriétaire,
* ils permettront de:
- surveiller, contrôler les pratiques numériques de tout utilisateur
- interdire à distance tout accès aux oeuvres et toute utilisation des matériels numériques et électroniques.
Toute personne contournant, de manière directe ou indirecte, un dispositif sera présumée coupable du délit de contrefaçon (3 ans de prison et 300.000 euros d'amende).
Cette sanction s'appliquera:
* à toute personne 'non autorisée' qui communiquera de manière directe ou indirecte sur les dispositifs anti-copie (analyses et études de sécurité informatique, promotion de logiciels libres, etc),
* au fait de développer, de présenter ou d'utiliser un logiciel libre ou un logiciel autre que celui choisi (et vendu) par l'éditeur. ...
voila le tour est joué? non?
Non ! Pour deux raisons:
1. Pas besoin de carte d'acquisition video sur le PC
2. Récupération directe du flux numérique (pas de conversion numérique->analogique par la freebox puis analogique->numérique par la carte d'acquisition vidéo)
Mais je ne fais que répéter ce qui a déjà été dit plus haut...
Le CD s'appelant Bureau Libre, on peut penser que le critère logiciel libre est le critère de sélection. Un logiciel gratuit mais pas libre n'a donc rien à faire sur ce CD.
D'ailleurs, Avast, bien que gratuit comporte néanmoins des restrictions qui vont à l'encontre de l'esprit du libre:
- enregistrement obligatoire après 60 jours
- utilisation personnelle et non commerciale : impossible de l'utiliser sur son ordinateur personnel si celui-ci sert pour une activité commerciale ("Home Edition free of charge for home users who do not use their computer for profit")
- interdiction d'utilisation dans le cadre d'une organisation même à but non lucratif ("Institutions (even non-commercial ones) are not allowed to use avast! Home Edition. ")
Et ce ne sont que les restrictions visibles sur le site d'Avast. Il y a peut-être d'autres restrictions dans la licence qui n'apparaissent qu'à l'installation (je ne peut pas le vérifier, je n'ai pas Windows).
Finalement, une bien belle illustration de la différence entre libre et gratuit.
Normalement, ça doit marcher.
Par contre, les limites ne sont prises en compte qu'à la connexion.
T'es tu déconnecté et reconnecté après avoir modifié /etc/security/limits.conf ?
Il suffit de mémoriser la ligne complète avant d'en extraire le nom de domaine:
tail -n20 access.log | while read ligne
do
domaine=`echo $ligne | sed "s|.*http://\(www\.\)\?\([^/]*\).*|\2|"`
if grep -q ^$domaine$ domains.txt
then
echo $ligne | sed 's/HTTP.*$//'
fi
done
Deux remarques:
1. Linux ne tient pas compte du bit SUID sur les scripts.
D'ailleurs, si le mode SUID était vraiment pris en compte, le script s'exécuterait avec les droits de root et ne demanderait aucun mot de passe !
2. As-tu vraiment configuré le compte maven1 de la même façon sur les deux machines ?
En particulier, as-tu défini le mot de passe avec la commande 'passwd maven1' (copier la ligne dans /etc/passwd ne suffit pas, le mot de passe est dans /etc/shadow) ?
Oublie cette réponse avec printf.
Comme je n'ai pas ton équipement, j'ai cru qu'adresse MAC était traitée par le print dans awk ce qui n'est manifestement pas le cas. J'ai répondu plus bas pour le reformatage de l'adresse MAC avec sed.
\n siginifie "newline" (passage à la ligne suivante). printf est utile pour faire des impressions plus sophistiquées que print (voir 'man awk')
Pour que ça marche, il faut répéter le sed.
Pour traiter tous les chiffres, tu peux utiliser la commande:
echo :0:0:c:7:ac:1: | sed 's/:\([0-9a-f]\):/:0\1:/g' | sed 's/:\([0-9a-f]\):/:0\1:/g'
qui donne comme résultat:
:00:00:0c:07:ac:01:
Il faut répéter la commande sed car chaque caractère en entrée n'est traité qu'une fois. Si on prend la chaine de caractères :0:1:, le premier traitement prend bien en compte les trois caractères :0: mais il ne reste ensuite que 1: qui ne peut pas être reconnu.
Le premier sed va donc traiter au mieux un octet sur deux et le second les autres.
En utilisant printf au lieu de print tu peux te passer des sed qui ajoutent un 0.
snmpwalk -c $community -v 1 monequip ipNetToMediaPhysAddress | awk -F "." '{printf "%02d.%02d.%02d.%02d:\n",$3,$4,$5,$6}' | sed 's/ = STRING: / :/g'
PS: On peut utiliser un seul sed avec l'option -e:
sed -e 's/ = STRING: / :/g' -e 's/:0:/:00:/g' -e 's/:1:/:01:/g' -e 's/:2:/:02:/g' -e 's/:3:/:03:/g'
au lieu de
sed 's/ = STRING: / :/g' | sed 's/:0:/:00:/g' | sed 's/:1:/:01:/g' | sed 's/:2:/:02:/g' | sed 's/:3:/:03:/g'
Un peu comme Citroën pour PSA.
Ta comparaison avec Sony-Ericsson est correcte mais pas celle avec Citroen/PSA. En effet, Citroen est une marque du groupe "PSA Peugeot Citroen" (au même titre que Peugeot), il n'y a pas (plus) de société Citroen.
Si on change les limites dans un shell (avec la commande ulimit), tous les process lancés à partir de ce shell héritent des nouvelles limites.
La seule limitation quand on n'est pas superuser est qu'on ne peut que réduire les limites.
Il suffit donc de faire: (ulimit -v NNN; commande)
pour que commande ait son espace mémoire virtuel limité à NNN.
Il y a peut-être d'autres problèmes mais je ne les connais pas.
Pour moi, l'intérêt de VMware est plus de pouvoir passer rapidement d'une configuration de Windows à une autre pour des tests (ex: W2K+IE5.5, W2K3+IE6,..) que le partage avec un Windows natif que j'ai rapidement cessé d'utiliser (et de maintenir !).
J'ai aussi commencé avec un portable (PIII 650MHz, 256Mo RAM, 20Go disque) et l'espace disque n'a jamais été un problème.
Il suffit d'être un peu organisé: n'installer dans le disque virtuel Windows que le système et les applications et mettre les données dans le système de fichiers Linux (accédé via samba) ou dans une partition séparée. On peut alors configurer un Windows+IE+MSoffice avec un disque virtuel de 2Go.
Mon expérience avec VMware (mais c'est probablement le cas avec d'autres émulateurs) est qu'il ne faut pas partager le système entre le mode natif et le mode émulé.
En effet, lorsque tu installes Windows en natif, il va installer les drivers correspondant à la configuration matérielle réelle de ta machine; par contre dans l'émulateur, Windows ne voit pas ce matériel mais celui émulé. Par exemple, dans VMware l'interface réseau émulée est une AMD PCnet qui est certainement différente de celle physiquement présente dans la machine.
Donc quand tu bootes Windows dans l'émulateur, il reconnait du nouveau matériel charge les drivers correspondants et désactive le matériel "réel" qui n'est plus reconnu. Comme ces reconfigurations ne se font pas toujours sans douleur, il est possible que ton système ne soit plus utilisable.
Si tu veux partager des données entre le mode natif et le mode émulé, il me semble plus judicieux de:
- créer deux partitions pour WinXP en natif: une système et une de données
- installer un deuxième système pour l'émulation et partager uniquement la partition de données
J'utilise régulièrement VMware depuis 5 ans.
J'ai deux utilisations principales:
- MSoffice occasionnellement pour échanger des fichiers avec des correspondants n'ayant pas OOo (quoi qu'on en dise, la compatibilité n'est pas parfaite et je ne suis pas forcément en position d'imposer OOo)
- tester la mise en page sous IE des sites Web que je développe sans utiliser une deuxième machine.
(en plus avec VMware, je peux avoir plusieurs machines virtuelles ce qui permet de tester rapidement avec différentes versions de IE).
Je n'ai jamais eu de problème de stabilité. Quant à la performance, j'ai commencé avec VMWare 2.x sur un Pentium 650 et les performances étaient déjà suffisantes pour faire tourner MSoffice ou naviguer sur Internet.
Je viens de tester.
Le programme complet suivant fonctionne:
#include <stdio.h>
main()
{
FILE * f;
// Ouverture du shell et lancement de gnuplot
f = popen("gnuplot", "w");
// exécution de la commande gnuplot
fprintf(f, " plot \"toto.dat\" with lines\n");
fflush(f);
// terminer l'envoi de commandes et fermer gnuplot
sleep(100);
pclose(f);
}
Les différences avec l'embryon de programme que je t'avais donné sont:
- ajout du \n dans à la fin de la commande plot- attente (sleep) avant le pclose pour avoir le temps de voir le tracé
Les réponses étaient dans les deux premiers messages (bien que très succintes):
// Ouverture du shell et lancement de gnuplot
f = popen("gnuplot", "w");
// exécution de la commande gnuplot
fprintf(f, " plot \"toto.dat\" with lines");
fflush(f);
// terminer l'envoi de commandes et fermer gnuplot
pclose(f);
Avec tr, tu peux enlever les blancs et les sauts de lignes avec: tr -d ' \n'
ou tr -d '[:space:]'
:space: représente tous les caractères d'espacement; tu retires donc les espaces, sauts de lignes et tabulations.
Le "quelque chose (je sais pas ce que c'est une fonction, routine ou autre chose?...)" s'appelle un script (on dit souvent shell script en référence à l'interpréteur de commandes appelé "shell").
Tu donnes le nom que tu veux à ce script (gcc1 ou build.sh ou autre) en évitant quand même d'utiliser le nom d'une commande existante.
Toutes les informations pour créer un script sont données ci-dessus.
Reprenons pas à pas:
1. Créer le script build.sh
Avec ton éditeur préféré, tu crées le fichier build.sh en y mettant les deux lignes:
#!/bin/bash
gcc $1.c -o $1 -I . -L . -lgraphdsu -lm -lrt -L /usr/X11R6/lib -lX11
2. Tu rends ce fichier exécutable pour pouvoir l'utiliser comme un programme: chmod +x build.sh
(chmod = "change mode" +x = "exécutable")
3. Tu compiles ton programme projet.c en utilisant le script: ./build.sh projet
4. Si tout s'est bien passé (sinon tu devrais voir des messages d'erreur), il ne te reste plus qu'à lancer ton programme ./projet.
Avec ces indications, tu devrais pouvoir créer ton premier script ;)
Si tu veux aller plus loin, tu peux consulter un tutoriel sur bash: http://abs.traduc.org/abs-3.4-fr/index.html
Ca va beaucoup plus loin que ce qui t'est nécessaire pour ton premier script mais te permettra de découvrir la richesse de l'interpréteur de commandes.
[^] # Re: Etonnant..
Posté par netsurfeur . En réponse au journal Redevance TV. Évalué à 5.
Il est question de détention pas de possession. Or tu détiens une Freebox à ton domicile bien que tu n'en sois pas propriétaire; c'est donc à toi de payer :(
# mkdir -p
Posté par netsurfeur . En réponse au message Problème de création de directoires. Évalué à 2.
Tu as donc 2 solutions:
1. méthode "bourrin"
Tu remplaces l'appel de la fonction mkdir par un appel de system("mkdir ...").
C'est lourd mais simple et ça marche.
2. Tu récupères le source de la commande mkdir (ça sert aussi à ça l'open source) et tu t'en inspire pour intégrer la fonctionnalité équivalente à l'option -p à ton programme.
[^] # Re: Virgules ?
Posté par netsurfeur . En réponse à la dépêche Réunion-débat le 10 décembre à Nantes: Les enjeux du projet de loi DADVSI. Évalué à 5.
Tout à fait d'accord ! Une légère remise en forme m'a aidé à comprendre:
[^] # Re: On pouvait déja le faire!
Posté par netsurfeur . En réponse au journal Flux MPEG2 bientôt accessible sur la FreeBox. Évalué à 4.
Non ! Pour deux raisons:
1. Pas besoin de carte d'acquisition video sur le PC
2. Récupération directe du flux numérique (pas de conversion numérique->analogique par la freebox puis analogique->numérique par la carte d'acquisition vidéo)
Mais je ne fais que répéter ce qui a déjà été dit plus haut...
# "chez moi ça marche" !
Posté par netsurfeur . En réponse au message SSH, lancer des applications X distantes, sans X. Évalué à 2.
ssh machine
DISPLAY=:0 xterm
et j'ai une fenêtre xterm sur la machine distante !
Peux-tu donner plus de détails ?
- commande(s) exacte(s) que tu lances
- message(s) d'erreur
[^] # Re: Clamwin ? Avast ?
Posté par netsurfeur . En réponse à la dépêche Le GET rend votre Bureau Libre !. Évalué à 4.
D'ailleurs, Avast, bien que gratuit comporte néanmoins des restrictions qui vont à l'encontre de l'esprit du libre:
- enregistrement obligatoire après 60 jours
- utilisation personnelle et non commerciale : impossible de l'utiliser sur son ordinateur personnel si celui-ci sert pour une activité commerciale ("Home Edition free of charge for home users who do not use their computer for profit")
- interdiction d'utilisation dans le cadre d'une organisation même à but non lucratif ("Institutions (even non-commercial ones) are not allowed to use avast! Home Edition. ")
Et ce ne sont que les restrictions visibles sur le site d'Avast. Il y a peut-être d'autres restrictions dans la licence qui n'apparaissent qu'à l'installation (je ne peut pas le vérifier, je n'ai pas Windows).
Finalement, une bien belle illustration de la différence entre libre et gratuit.
[^] # Re: man limit
Posté par netsurfeur . En réponse au message Trop de fichiers ouverts .... Évalué à 3.
Par contre, les limites ne sont prises en compte qu'à la connexion.
T'es tu déconnecté et reconnecté après avoir modifié /etc/security/limits.conf ?
[^] # Re: man limit
Posté par netsurfeur . En réponse au message Trop de fichiers ouverts .... Évalué à 3.
ulimit -n pour avoir la limite du nombre max de fichiers ouverts.
"man bash" et rechercher la description de la commande ulimit pour plus de détails.
Si les limites par défaut ne sont pas suffisantes, il faut modifier le fichier /etc/security/limits.conf
[^] # Re: &
Posté par netsurfeur . En réponse au message Processus en arriere plan + formatage html. Évalué à 2.
mv filetmp file
Ca évite une copie inutile du contenu de file dans filetmp
# Re: Comparaison de fichier - access.log de Squid
Posté par netsurfeur . En réponse au message Comparaison de fichier - access.log de Squid. Évalué à 2.
# Mauvaise syntaxe
Posté par netsurfeur . En réponse au message Problème avec les métacaractères. Évalué à 8.
Ce que tu veux correspond plutôt à :
du -sch 0[A-B]* 0C[A-D]*
# Re: script de prise de personnalité
Posté par netsurfeur . En réponse au message script de prise de personnalité. Évalué à 4.
1. Linux ne tient pas compte du bit SUID sur les scripts.
D'ailleurs, si le mode SUID était vraiment pris en compte, le script s'exécuterait avec les droits de root et ne demanderait aucun mot de passe !
2. As-tu vraiment configuré le compte maven1 de la même façon sur les deux machines ?
En particulier, as-tu défini le mot de passe avec la commande 'passwd maven1' (copier la ligne dans /etc/passwd ne suffit pas, le mot de passe est dans /etc/shadow) ?
[^] # Re: printf
Posté par netsurfeur . En réponse au message Formattage de requettes snmp, probleme de sed. Évalué à 2.
Comme je n'ai pas ton équipement, j'ai cru qu'adresse MAC était traitée par le print dans awk ce qui n'est manifestement pas le cas. J'ai répondu plus bas pour le reformatage de l'adresse MAC avec sed.
\n siginifie "newline" (passage à la ligne suivante). printf est utile pour faire des impressions plus sophistiquées que print (voir 'man awk')
[^] # Re: nouveau probleme
Posté par netsurfeur . En réponse au message Formattage de requettes snmp, probleme de sed. Évalué à 3.
Pour traiter tous les chiffres, tu peux utiliser la commande:
echo :0:0:c:7:ac:1: | sed 's/:\([0-9a-f]\):/:0\1:/g' | sed 's/:\([0-9a-f]\):/:0\1:/g'
qui donne comme résultat:
:00:00:0c:07:ac:01:
Il faut répéter la commande sed car chaque caractère en entrée n'est traité qu'une fois. Si on prend la chaine de caractères :0:1:, le premier traitement prend bien en compte les trois caractères :0: mais il ne reste ensuite que 1: qui ne peut pas être reconnu.
Le premier sed va donc traiter au mieux un octet sur deux et le second les autres.
# printf
Posté par netsurfeur . En réponse au message Formattage de requettes snmp, probleme de sed. Évalué à 3.
snmpwalk -c $community -v 1 monequip ipNetToMediaPhysAddress | awk -F "." '{printf "%02d.%02d.%02d.%02d:\n",$3,$4,$5,$6}' | sed 's/ = STRING: / :/g'
PS: On peut utiliser un seul sed avec l'option -e:
sed -e 's/ = STRING: / :/g' -e 's/:0:/:00:/g' -e 's/:1:/:01:/g' -e 's/:2:/:02:/g' -e 's/:3:/:03:/g'
au lieu de
sed 's/ = STRING: / :/g' | sed 's/:0:/:00:/g' | sed 's/:1:/:01:/g' | sed 's/:2:/:02:/g' | sed 's/:3:/:03:/g'
# En plusieurs lignes
Posté par netsurfeur . En réponse au message Majuscule arborescence et repertoire. Évalué à 6.
[^] # Re: Euh Sony-BMG, c'est pas Sony! [HS]
Posté par netsurfeur . En réponse à la dépêche Du code de VLC dans le rootkit de Sony. Évalué à 9.
Ta comparaison avec Sony-Ericsson est correcte mais pas celle avec Citroen/PSA. En effet, Citroen est une marque du groupe "PSA Peugeot Citroen" (au même titre que Peugeot), il n'y a pas (plus) de société Citroen.
[^] # Re: ...
Posté par netsurfeur . En réponse au message Limiter la mémoire vive utilisé par un processus. Évalué à 2.
La seule limitation quand on n'est pas superuser est qu'on ne peut que réduire les limites.
Il suffit donc de faire:
(ulimit -v NNN; commande)
pour que commande ait son espace mémoire virtuel limité à NNN.
# Un éditeur de texte ?
Posté par netsurfeur . En réponse au message fichier texte. Évalué à -2.
[^] # Re: A éviter
Posté par netsurfeur . En réponse au message utiliser le même WInXP en émulation et dual boot. Évalué à 2.
Pour moi, l'intérêt de VMware est plus de pouvoir passer rapidement d'une configuration de Windows à une autre pour des tests (ex: W2K+IE5.5, W2K3+IE6,..) que le partage avec un Windows natif que j'ai rapidement cessé d'utiliser (et de maintenir !).
J'ai aussi commencé avec un portable (PIII 650MHz, 256Mo RAM, 20Go disque) et l'espace disque n'a jamais été un problème.
Il suffit d'être un peu organisé: n'installer dans le disque virtuel Windows que le système et les applications et mettre les données dans le système de fichiers Linux (accédé via samba) ou dans une partition séparée. On peut alors configurer un Windows+IE+MSoffice avec un disque virtuel de 2Go.
# A éviter
Posté par netsurfeur . En réponse au message utiliser le même WInXP en émulation et dual boot. Évalué à 2.
En effet, lorsque tu installes Windows en natif, il va installer les drivers correspondant à la configuration matérielle réelle de ta machine; par contre dans l'émulateur, Windows ne voit pas ce matériel mais celui émulé. Par exemple, dans VMware l'interface réseau émulée est une AMD PCnet qui est certainement différente de celle physiquement présente dans la machine.
Donc quand tu bootes Windows dans l'émulateur, il reconnait du nouveau matériel charge les drivers correspondants et désactive le matériel "réel" qui n'est plus reconnu. Comme ces reconfigurations ne se font pas toujours sans douleur, il est possible que ton système ne soit plus utilisable.
Si tu veux partager des données entre le mode natif et le mode émulé, il me semble plus judicieux de:
- créer deux partitions pour WinXP en natif: une système et une de données
- installer un deuxième système pour l'émulation et partager uniquement la partition de données
J'utilise régulièrement VMware depuis 5 ans.
J'ai deux utilisations principales:
- MSoffice occasionnellement pour échanger des fichiers avec des correspondants n'ayant pas OOo (quoi qu'on en dise, la compatibilité n'est pas parfaite et je ne suis pas forcément en position d'imposer OOo)
- tester la mise en page sous IE des sites Web que je développe sans utiliser une deuxième machine.
(en plus avec VMware, je peux avoir plusieurs machines virtuelles ce qui permet de tester rapidement avec différentes versions de IE).
Je n'ai jamais eu de problème de stabilité. Quant à la performance, j'ai commencé avec VMWare 2.x sur un Pentium 650 et les performances étaient déjà suffisantes pour faire tourner MSoffice ou naviguer sur Internet.
[^] # Re: gnuplot depuis C
Posté par netsurfeur . En réponse au message gnuplot depuis C. Évalué à 2.
- ajout du \n dans à la fin de la commande plot
- attente (sleep) avant le pclose pour avoir le temps de voir le tracé
[^] # Re: gnuplot depuis C
Posté par netsurfeur . En réponse au message gnuplot depuis C. Évalué à 2.
Donc, 'man popen' est ton ami ;)
# tr
Posté par netsurfeur . En réponse au message supprimer le code hexa 0A dans une variable. Évalué à 3.
tr -d ' \n'
ou
tr -d '[:space:]'
:space: représente tous les caractères d'espacement; tu retires donc les espaces, sauts de lignes et tabulations.
[^] # Re: plein de solutions
Posté par netsurfeur . En réponse au message routine xterm. Évalué à 3.
Tu donnes le nom que tu veux à ce script (gcc1 ou build.sh ou autre) en évitant quand même d'utiliser le nom d'une commande existante.
Toutes les informations pour créer un script sont données ci-dessus.
Reprenons pas à pas:
1. Créer le script build.sh
Avec ton éditeur préféré, tu crées le fichier build.sh en y mettant les deux lignes:
#!/bin/bash
gcc $1.c -o $1 -I . -L . -lgraphdsu -lm -lrt -L /usr/X11R6/lib -lX11
2. Tu rends ce fichier exécutable pour pouvoir l'utiliser comme un programme:
chmod +x build.sh
(chmod = "change mode" +x = "exécutable")
3. Tu compiles ton programme projet.c en utilisant le script:
./build.sh projet
4. Si tout s'est bien passé (sinon tu devrais voir des messages d'erreur), il ne te reste plus qu'à lancer ton programme
./projet.
Avec ces indications, tu devrais pouvoir créer ton premier script ;)
Si tu veux aller plus loin, tu peux consulter un tutoriel sur bash:
http://abs.traduc.org/abs-3.4-fr/index.html
Ca va beaucoup plus loin que ce qui t'est nécessaire pour ton premier script mais te permettra de découvrir la richesse de l'interpréteur de commandes.