faudrait voir pour arreter de mettre une politique un peu trop laxiste dans le /etc/sudoers
Il restera toujours la possibilité de monter le disque depuis un live cd, ce qui est déjà plus contraignant car la manip n'est réalisable qu'en local (alors que le "sudo su" ou le "sudo passwd" via une session ssh d'un utilisateur lambda qui n'a théoriquement pas les droits root, ca la fout mal hein)
Après une ptite reflexion, et vue la taille toute relative des 2 scripts contenu dans le tgz, je vais finalement poster le contenu directement ici.
Ca evitera les futurs problèmes eventuels de liens cassés si google passe par là (et il le fera!)
./setup
#!/bin/sh
echo "1" > ~/.desktopid
for i in 1 2 3 4
do
mkdir ~/Desktop_$i
done
echo "Configuration terminée. Vous pouvez désormais switcher sur l'un des 4 bureaux virtuels via la commande ~/switch_desktop suivi d'un numéro de bureau situé entre 1 et 4"
./switch_desktop
#!/bin/sh
id=$1
courant=`cat ~/.desktopid`
echo "Sauvegarde du bureau actuel (#$courant)..."
cd ~/Desktop
mv * ~/Desktop_$courant/
echo "OK"
echo "Rappatriement du bureau #$id..."
cd ~/Desktop_$id
mv * ~/Desktop/
echo "$id" > ~/.desktopid
echo "OK"
echo "Bureau #$id activé !"
Après tout, il y a des différences de rendu flagrantes entre les diférentes versions de Firefox pour chaque plateforme ?
C'est con, j'ai pas d'exemple en tête, mais au taf mon firefox m'a déjà fait des trucs bizarres sur certains sites, j'aurai même pu me demander si c'etait le moteur n'etait pas hybride avec IE
Ton experience est assez pertinente, et je ne vois d'ailleurs pas pourquoi tu n'as pas posté ca dans les journaux, plutot qu'ici, dans les forums...
Bref, sinon pour la communication foireuse, c'est effectivement le truc qui fait couler pas mal de boites qui vendent de bons produits/services, et à l'inverse qui en fait grimper certaines autres qui pourtant vendent de la m*rde.
"Ne jamais négliger la communication" (cf. mon prof de marketing)
Pour ma part j'ai déjà pensé plusieurs fois à monter mon affaire, mais je ne sais pas si j'aurai les co*illes d'assumer ce que tu as réalisé (j'aime pas les paperasses, la peur de l'echec, etc), et je ne me vois pas me mettre en société unipersonnelle, car je tiens à ma maison !
Bon, je vais surement dire une connerie, mais je me lance :
J'ai le vague souvenir de devoir entourer mes fichiers d'entete (.h) d'un bloc #ifdef - #endif
Genre le fichier personne.h qui dira
#if ndef PERSONNE_H
#define PERSONNE_H 0
//mon code ici
#endif
Comme ca si je fais un include de plusieurs de fichiers qui eux-même font un include de personne.h, alors ce fichier ne sera remonté qu'une fois, et donc pas de conflit. J'suis clair là ? J'espère ne pas dire une grosse connerie, j'pense pas inventer tout ce que je dis quand même :)
Hem... J'utilise bien évidemment les threads python, mais le problème etait que ces threads ne marchaient pas lorsque je les démarrais depuis une boucle gtk.main()
J'ai placé les fonctions gtk.gdk.threads_enter() et gtk.gdk.threads_leave() dans le code de ma fonction run (dans scan),juste avant d'acceder a une variable de ma fenetre gtk (un label que je suis censé mettre a jour à chaque itération), et là ca semble marque, même sans timer.
Chouette chouette chouette :+)
Donc je résume, si quelqu'un me lit (pour l'instant j'suis un peu seul), j'aimerai confirmation :
quand on créé un thread censé modifier une interface GTK (pour updater le texte d'un label par exemple) on doit d'abord :
1. gtk.gdk.threads_init() avant le gtk.main()
2. encapsuler le moment du thread où l'on accede à l'interface par les methodes gtk.gdk.threads_enter() et gtk.gdk.threads_leave()
j'ai ajouté un time.sleep(0.1) à la fin de chaque iteration de mon thread pour laisser respirer le thread gtk. Ca semble fonctionner. Mais n'y a t il pas une fonction moins "constante" que sleep, dans le genre de yield en java ?
Bon beh finalement il semble qu'au bout d'une trentaine de secondes le thread Scan prend toute les ressources et fige mon interface... Donc ca marche un peu, mais pas totalement :-/
Tiens, j'ai viré les appels à threads_enter et threads_leave, et j'ai remonté gtk.gdk.threads_init() juste avant l'instanciation de ma classe Gui, et ca semble marcher... J'vais p'têtre pas chercher à détailler...
Comme je trouve pas mon problème super clair en me relisant, je la fais courte :
comment instancier et lancer un objet donc la classe herite de Thread à partir d'un click de bouton gtk, pour le lancer en arrière plan, et le détacher totalement de l'interface (le but d'un thread quoi...)
j'suis pas un spécialiste du c++ (ca fait longtemps en fait), mais dans l'absolu, ton pointeur devrait pointer vers un espace de mémoire alloué.
Donc remplace ton char *nom; par un char nom[25]; par exemple, sinon gare au segmentation fault !
Autrement désormais en c++ on doit utiliser les espaces de noms, donc à moins d'avoir using namespace std; dans les en-tete du fichier, tu devrais appeler cin par std::cin >> nom;
Bon, j'ai testé la libusb. J'arrive à compiler un programme test.
Parcontre pour la suite ca s'annonce mal. Ca me parait super compliqué cette histoire. J'ai regardé le source de FMA (une appli windows ecrite en delphi, et special sony ericsson), et le fichier de source gsm_sms.pas me donne la nausée :$
Bref, je crois que j'ai visé un chouilla trop haut par rapport à ma motivation du moment (et mes compétences)...
Quoiqu'il en soit c'est gentil de m'avoir répondu, j'aurai appris quelques trucs :)
Comme l'a précisé benoit, je pense que le problème final une fois la communication établie revient de toute facon sensiblement au même, à savoir trouver le protocole de communication. Donc d'un point de vue pédagogique, je privilègerai plutot l'approche usb (plus moderne)
Maintenant je ne suis pas sous linux au taf, donc je ne saurai te dire dans l'immédiat si mon chip de mon cable a un driver ou non.
Ok donc ma mission est de trouver le keyword magique à passer dans ma trame bulk pour qu'en retour il me génère une trame bulk dans laquelle il me viderait son sac (à savoir la totalité des sms contenus dans la sim), j'ai bon ?
Sinon j'espere que les trames interrupts sont gérées de manières transparente, car si j'attend une réponse bulk et qu'elle est noyée dans les interrupts, pas glop
Hum interessant, je testerai ce soir lsusb depuis la maison (cygwin ne connait pas ici...)
Sinon pour les trames USB, c'est quoi le plus pertinent ? la colonne data je suppose ?
J'peux pas encore zieuter la libusb (ce soir...), mais en gros si je veux "cloner" une communication que j'aurai écouté, j'ai juste besoin de relever le champs "data" de la trame que le pc envoit au téléphone, et l'envoyer au périphérique via la libusb, et ce dernier va aussi me retourner un bloc data, comme une simple session telnet ? ou bien y a t il des données supplémentaires à envoyer lors de l'envoi de data vers le périphérique ? (en plus des data elles-mêmes)
Je viens de tester snoopy sur le win2000 du boulot, et ca n'a pas l'air évident à manier :-/
Déjà, je dois reperer le bon periphérique dans la liste, et ca, à moins de me les taper 1 par 1, je vois pas comment optimiser la manip :) (j'ai déjà tué ma souris usb 2 fois en faisant un install & restart depuis snoopy!)
Bref, j'en ai pris 1 au pif dans la liste, et g intercepté mes 1ères trames usb. Mon dieu quelle horreur... C'est plus compliqué qu'un paquet IP :-D
J'vais ensuite jetter un oeil à la libusb, enfin, p'tetre ce soir, sinon le patron va raler :)
J'sens que j'vais vite être dégouté par l'affaire, mais pour l'instant j'tiens bon.
[^] # Re: bah
Posté par cho7 (site web personnel) . En réponse au message Perte mot de passe root. Évalué à 2.
[^] # Re: linux single
Posté par cho7 (site web personnel) . En réponse au message Perte mot de passe root. Évalué à 3.
faudrait voir pour arreter de mettre une politique un peu trop laxiste dans le /etc/sudoers
Il restera toujours la possibilité de monter le disque depuis un live cd, ce qui est déjà plus contraignant car la manip n'est réalisable qu'en local (alors que le "sudo su" ou le "sudo passwd" via une session ssh d'un utilisateur lambda qui n'a théoriquement pas les droits root, ca la fout mal hein)
# HUm
Posté par cho7 (site web personnel) . En réponse au message fonction à nombre variable de paramètre. Évalué à 1.
Tu devrais effectivement stocker tous les 1ers paramètres recus dans un tableau, et faire suivre ce dernier à somme.
[^] # Re: un lien symbolique ?
Posté par cho7 (site web personnel) . En réponse au journal Trop d'icones sur le bureau ?. Évalué à 3.
[^] # Re: Master Of Cho7
Posté par cho7 (site web personnel) . En réponse au message Les icones sur le bureau. Évalué à 2.
# Bon
Posté par cho7 (site web personnel) . En réponse au journal Trop d'icones sur le bureau ?. Évalué à 3.
Ca evitera les futurs problèmes eventuels de liens cassés si google passe par là (et il le fera!)
./setup
#!/bin/sh
echo "1" > ~/.desktopid
for i in 1 2 3 4
do
mkdir ~/Desktop_$i
done
echo "Configuration terminée. Vous pouvez désormais switcher sur l'un des 4 bureaux virtuels via la commande ~/switch_desktop suivi d'un numéro de bureau situé entre 1 et 4"
./switch_desktop
#!/bin/sh
id=$1
courant=`cat ~/.desktopid`
echo "Sauvegarde du bureau actuel (#$courant)..."
cd ~/Desktop
mv * ~/Desktop_$courant/
echo "OK"
echo "Rappatriement du bureau #$id..."
cd ~/Desktop_$id
mv * ~/Desktop/
echo "$id" > ~/.desktopid
echo "OK"
echo "Bureau #$id activé !"
[^] # Re: Un effet lent de plus dans le cimetière des sarcasmes
Posté par cho7 (site web personnel) . En réponse au journal Une carcasse de plus dans le cimetière des éléphants. Évalué à 1.
C'est con, j'ai pas d'exemple en tête, mais au taf mon firefox m'a déjà fait des trucs bizarres sur certains sites, j'aurai même pu me demander si c'etait le moteur n'etait pas hybride avec IE
[^] # Re: Une bonne réponse:
Posté par cho7 (site web personnel) . En réponse au message Les icones sur le bureau. Évalué à 2.
Il veut avoir un dossier ~/Desktop différent pour chacun de ses bureaux virtuels
# Hum
Posté par cho7 (site web personnel) . En réponse au message La boutique est morte, vive la boutique. Évalué à 2.
Bref, sinon pour la communication foireuse, c'est effectivement le truc qui fait couler pas mal de boites qui vendent de bons produits/services, et à l'inverse qui en fait grimper certaines autres qui pourtant vendent de la m*rde.
"Ne jamais négliger la communication" (cf. mon prof de marketing)
Pour ma part j'ai déjà pensé plusieurs fois à monter mon affaire, mais je ne sais pas si j'aurai les co*illes d'assumer ce que tu as réalisé (j'aime pas les paperasses, la peur de l'echec, etc), et je ne me vois pas me mettre en société unipersonnelle, car je tiens à ma maison !
# Hum
Posté par cho7 (site web personnel) . En réponse au message redefinition of ..... Évalué à 2.
J'ai le vague souvenir de devoir entourer mes fichiers d'entete (.h) d'un bloc #ifdef - #endif
Genre le fichier personne.h qui dira
#if ndef PERSONNE_H
#define PERSONNE_H 0
//mon code ici
#endif
Comme ca si je fais un include de plusieurs de fichiers qui eux-même font un include de personne.h, alors ce fichier ne sera remonté qu'une fois, et donc pas de conflit. J'suis clair là ? J'espère ne pas dire une grosse connerie, j'pense pas inventer tout ce que je dis quand même :)
[^] # Re: Spam ?
Posté par cho7 (site web personnel) . En réponse au journal [Update]Conférences Open-Source & Logiciels Libres pour tous. Évalué à 2.
Je m'excuse au nom du groupe pour ce petit désagrément :-/
[^] # Re: Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
'fin bref, problème résolu.
[^] # Re: Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
J'ai placé les fonctions gtk.gdk.threads_enter() et gtk.gdk.threads_leave() dans le code de ma fonction run (dans scan),juste avant d'acceder a une variable de ma fenetre gtk (un label que je suis censé mettre a jour à chaque itération), et là ca semble marque, même sans timer.
Chouette chouette chouette :+)
Donc je résume, si quelqu'un me lit (pour l'instant j'suis un peu seul), j'aimerai confirmation :
quand on créé un thread censé modifier une interface GTK (pour updater le texte d'un label par exemple) on doit d'abord :
1. gtk.gdk.threads_init() avant le gtk.main()
2. encapsuler le moment du thread où l'on accede à l'interface par les methodes gtk.gdk.threads_enter() et gtk.gdk.threads_leave()
J'ai bon ?
[^] # Re: Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
[^] # Re: Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
[^] # Re: Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
# Pour résumer
Posté par cho7 (site web personnel) . En réponse au message Thread interrompu. Évalué à 2.
comment instancier et lancer un objet donc la classe herite de Thread à partir d'un click de bouton gtk, pour le lancer en arrière plan, et le détacher totalement de l'interface (le but d'un thread quoi...)
(Re) merci.
# beh
Posté par cho7 (site web personnel) . En réponse au message **** cin ****. Évalué à 2.
Donc remplace ton char *nom; par un char nom[25]; par exemple, sinon gare au segmentation fault !
Autrement désormais en c++ on doit utiliser les espaces de noms, donc à moins d'avoir using namespace std; dans les en-tete du fichier, tu devrais appeler cin par std::cin >> nom;
Voilà, en esperant que ca t'aide.
[^] # Re: un coup de pouce
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 2.
Parcontre pour la suite ca s'annonce mal. Ca me parait super compliqué cette histoire. J'ai regardé le source de FMA (une appli windows ecrite en delphi, et special sony ericsson), et le fichier de source gsm_sms.pas me donne la nausée :$
Bref, je crois que j'ai visé un chouilla trop haut par rapport à ma motivation du moment (et mes compétences)...
Quoiqu'il en soit c'est gentil de m'avoir répondu, j'aurai appris quelques trucs :)
[^] # Re: Tiens j'ai eu la même idée....
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 2.
Maintenant je ne suis pas sous linux au taf, donc je ne saurai te dire dans l'immédiat si mon chip de mon cable a un driver ou non.
[^] # Re: un coup de pouce
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 2.
Sinon j'espere que les trames interrupts sont gérées de manières transparente, car si j'attend une réponse bulk et qu'elle est noyée dans les interrupts, pas glop
[^] # Re: En Python, C, Java
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 2.
Sur sourceforge, il me dit qu'il n'y a pas de fichier dispo, sur le site de berlios http://developer.berlios.de/projects/pyusb idem.
Bref, c'est un vaporware ou t'as testé ?
[^] # Re: un coup de pouce
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 3.
Sinon pour les trames USB, c'est quoi le plus pertinent ? la colonne data je suppose ?
J'peux pas encore zieuter la libusb (ce soir...), mais en gros si je veux "cloner" une communication que j'aurai écouté, j'ai juste besoin de relever le champs "data" de la trame que le pc envoit au téléphone, et l'envoyer au périphérique via la libusb, et ce dernier va aussi me retourner un bloc data, comme une simple session telnet ? ou bien y a t il des données supplémentaires à envoyer lors de l'envoi de data vers le périphérique ? (en plus des data elles-mêmes)
[^] # Re: un coup de pouce
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 3.
Déjà, je dois reperer le bon periphérique dans la liste, et ca, à moins de me les taper 1 par 1, je vois pas comment optimiser la manip :) (j'ai déjà tué ma souris usb 2 fois en faisant un install & restart depuis snoopy!)
Bref, j'en ai pris 1 au pif dans la liste, et g intercepté mes 1ères trames usb. Mon dieu quelle horreur... C'est plus compliqué qu'un paquet IP :-D
J'vais ensuite jetter un oeil à la libusb, enfin, p'tetre ce soir, sinon le patron va raler :)
J'sens que j'vais vite être dégouté par l'affaire, mais pour l'instant j'tiens bon.
Merci beaucoup pour ton aide en tout cas
[^] # Re: specs
Posté par cho7 (site web personnel) . En réponse au message Ca marche comment, l'USB ?. Évalué à 1.