Je signale de plus à l'aimable assistance que tous les bouchots cités dans ce journal bénéficient de l'auto-configuration sous pyCoinCoin : il suffit de taper le nom du bouchot dans l'assistant "Nouveau Bouchot". Eh oui, grâce au RTT imposé par les fonctionnaires preneurs d'otages, j'ai eu le temps de mettre enfin à jour les fichiers d'auto-configuration sur le site.
Je pense que ce que tu as entendu, c'était une douce voix. La douce voie féminine en revanche, c'est peut-être justement celle que tu aurais plutôt aimé prendre /o\
Bravo, je ne peux qu'appuyer ce rappel salutaire et cette saine réaction face à la dégénérescence ambiante et au galvaudage déplorable d'un terme dont la seule évocation devrait éveiller chez les "newbies" une crainte respectueuse et tout empreinte de déférence envers les plus nobles artisans du succès d'un site qui doit sa plopularité autant que sa forte charge à ces valeureux pionniers précurseurs et apôtres d'un monde nouveau où le moulage, objet de la plus haute considération, est élevé au rang d'art de vivre.
Longtemps avons-nous déploré la perte de ces valeurs, hélas non subjective mais bel et bien corroborée par la brutalité des statistiques, malgré un récent sursaut que même mon optimisme proverbial refuse de voir autrement que comme un chant du cygne : http://chrisix.free.fr/moulage/stats_cc_hits.png
Haut les coeurs, cependant, harangué-je la moulosphère de toutes mes forces, il n'est jamais trop tard pour jeter son dévolu à la propagation de la connaissance exacte, à l'instar de ce journal ; et peut-être même vivrons-nous encore assez longtemps pour voir le jour où du contenu nouveau apparaîtra sur http://moules.org/ !
Au moins, les debiannistes auraient ainsi une chance de perdre leur réputation de gros geeks pédants et austèresc. serrés enfin vous voyez ce que je veux dire.
Bref, oui, Intel fournit des pilotes libres, mais fournissant 30% des performances des pilotes pour windows. Et de très mauvaise qualité
Est-ce que c'est ça qu'il faut déduire de tes mesures, ou bien faut-il s'interroger plutôt sur les performances intrinsèques de Linux en matière graphique ? Parce que, libres ou pas, et venant des constructeurs ou pas, j'ai bien l'impression que c'est toujours la même histoire avec les pilotes graphiques. Alors, on peut toujours crier au complot anti-linux mais cette hypothèse implique quand même malveillance ou mauvaise foi des constructeurs et/ou incompétence des développeurs généralisées. Ca fait beaucoup. Une explication plus simple serait que développer des drivers pour Windows est bien moins compliqué et que l'OS offre plus de performance au niveau de sa couche graphique.
Enfin je dis ça, je ne dis rien.
Je ne sais pas si ça correspond vraiment à ton besoin, mais j'ai l'impression que c'est exactement ce que fait le système de plugins de pyCoinCoin.
Regarde dans l'archive http://pycoincoin.free.fr/download/pycc-0.8.7.tar.gz le fichier pyc2.py, il y a une fonction import_plugins qui charge tous les modules disponibles dans le répertoire plugins/
C'est dynamique, c'est à dire que tu peux recharger les plugins ou en importer de nouveaux (via l'appel à cette fonction) alors même que l'appli est en train de tourner.
Comme toi, j'ai une classe d'interface Plugin parente.
C'est marrant, ces machines ont toutes les 3 en commun un look plutôt désuet qui évoque les jeux électroniques LCD des années 80. Bah, c'est pas qu'elles sont moches hein (ça peut plaire), mais bon on voit clairement que les designers ne sortent pas de chez Apple
Et j'oubliais : pour le côté portable, simplicité de déploiement et rapidité de développement, y'a pas mieux que Tkinter, qui est intégré dans Python. Mais en étant conscient qu'à part le fabuleux widget Text, son widget le plus évolué est la combo-box, et aussi à condition d'aimer les looks des interfaces graphiques du mésozoïque inférieur.
Pour avoir tâté des deux, certes pas en profondeur du tout, mais quand même, je donne mon avis : pyQt.
Maintenant si c'est un pinnipède que tu dois coder, l'un n'est pas mieux loti que l'autre, pas plus que wxPython d'ailleurs.
Ce que tu cherches à faire là est impossible tel quel. On ne procède pas ainsi pour définir une fonction.
Si ton second paramètre dépend du premier, et bien tu n'as pas besoin de le passer en paramètre ; tout simplement, tu le calcules dans le corps de ta fonction au moment où tu en as besoin.
Donc, tu définis ta fonction ainsi :
def nom_fonction(une_chaine="toto", autre_param=val, etc...):
l = len(une_chaine) (ici le traitement de ta fonction, utilisant une_chaine , l, autre_param, ...)
C'est un peu difficile de t'aider à partir de juste ce petit bout de code, et sans savoir ce que tu cherches à faire.
Quelques petites fautes que j'ai relevées dans ton code sont, néanmoins, peut-être à l'origine de ton souci :
- Dans la méthode __init__, tu oublies la majuscule à Thread lors de l'appel au constructeur de la classe héritée : Thread.__init__(self). Une autre façon de faire cela, qui pourrait à l'avenir t'éviter ce genre de coquille, est de passer par la fonction super qui te renvoie directement la superclasse : super(P, self).__init__()
- Quand tu écris proc.start, cela ne fait que retourner la méthode de ce nom, pour l'exécuter il ne faut pas oublier les parenthèses proc.start()
- Je suppose que dans ton vrai code, tu n'as pas oublié les : à la fin des lignes commençant par class ..., if ... ou def ..., que tu as bien écrit __name__ avec 2 underscores de chaque côté, que tu fais bien un import threading au début, et que c'est correctement indenté... :-)
Bon, j'ai oublié un truc : l'initialisation de l'état de la case à cocher en fonction de la valeur dans le fichier. C'est pas très compliqué, on peut ajouter une méthode get_file_value dans la classe App avec ce code :
def get_file_value(self):
val = "FAUX" # valeur par défaut
try:
f = open("monfichier")
lines = f.readlines()
for line in lines:
nom, val = line[:-1].split('=')
if nom == "VALEUR1":
break
f.close()
except:
print "Erreur lecture fichier"
return (val == "VRAI")
Puis, dans la méthode __init__, remplacer la ligne d'initialisation (but_valeur1.select()) par
if self.get_file_value():
but_valeur1.select()
else:
but_valeur1.deselect()
Voici un exemple de ce que tu veux faire avec le toolkit Tkinter (ce toolkit est intégré de base dans Python, donc je l'ai choisi par facilité de mise en oeuvre).
from Tkinter import *
class App:
def __init__(self, master):
fr = Frame(master) # Un cadre pour englober les widgets
# On définit le widget case à cocher
self.valeur1 = StringVar() # Une variable pour sauvegarder l'état du widget
but_valeur1 = Checkbutton(fr, text="Valeur1", onvalue="VRAI", offvalue="FAUX", variable=self.valeur1)
but_valeur1.pack()
but_valeur1.select() # Initialisation de l'état à "coché"
Pour ce qui est de l'interaction avec Bash, tout dépend de ce que tu veux faire. Si c'est juste lancer des commandes, il y a l'appel system dans le module os ( http://www.python.org/doc/current/lib/module-os.html ) qui permet cela. Après, je ne sais pas, ça vaut peut-être le coup de porter tes scripts directement en Python...
Non, c'est tout aussi pitoyable, mais si il fallait rigoler de tous ceux qui téléphonent dans les magasins, le bus, le métro,... on y passerait la journée ; à la longue c'est lassant et ça finit par faire très mal aux zygomatiques et aux abdos.
[^] # Re: Pensez a votre Ange Gardien
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Diaspora moulesque. Évalué à 5.
Je signale de plus à l'aimable assistance que tous les bouchots cités dans ce journal bénéficient de l'auto-configuration sous pyCoinCoin : il suffit de taper le nom du bouchot dans l'assistant "Nouveau Bouchot". Eh oui, grâce au RTT imposé par les fonctionnaires preneurs d'otages, j'ai eu le temps de mettre enfin à jour les fichiers d'auto-configuration sur le site.
Rappel des urls utiles :
- PyCoinCoin : http://chrisix.free.fr/pycoincoin
- Liste des tribunes pré-configurées : http://chrisix.free.fr/pycoincoin/config/
- Le Wiki : http://pycoincoin.free.fr/wikini/ (bien buggué et pas complet mais accepte avec plaisir les contributions)
- (nouveau !) Pour les rapports de bug et les fritures rik ouest : http://chrisix.free.fr/mantis/
# [:aloy]
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Hot line de matinée.... Évalué à 10.
# Couvrons-nous la tête de cendres.
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Le complot. Évalué à 10.
... Ethernet ?
[^] # Re: Guwiv
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Microsoft France se lance dans le communautaire. Évalué à 6.
http://www.microsoft.com/france/technet/complexit/
# Plussoire
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal De l'appropriation du mot "moule" par les usagers de base de LinuxFR. Évalué à 8.
Longtemps avons-nous déploré la perte de ces valeurs, hélas non subjective mais bel et bien corroborée par la brutalité des statistiques, malgré un récent sursaut que même mon optimisme proverbial refuse de voir autrement que comme un chant du cygne : http://chrisix.free.fr/moulage/stats_cc_hits.png
Haut les coeurs, cependant, harangué-je la moulosphère de toutes mes forces, il n'est jamais trop tard pour jeter son dévolu à la propagation de la connaissance exacte, à l'instar de ce journal ; et peut-être même vivrons-nous encore assez longtemps pour voir le jour où du contenu nouveau apparaîtra sur http://moules.org/ !
[^] # Re: pas d'accord...
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Et le président des libristes est.... Évalué à 0.
devise eusse été de bon aloi.
De bon [:aloy], même. [:aloy] [:aloy2] [:aloyd] [::yveleu]
[^] # Re: C'est triste
Posté par Sten Spårvagnhög (site web personnel) . En réponse à la dépêche TuxFamily respectueux de l'écologie : suppression du PHP. Évalué à 1.
# Ouéééé !
Posté par Sten Spårvagnhög (site web personnel) . En réponse à la dépêche Élections du responsable du projet Debian 2007. Évalué à 9.
http://sam2007.zoy.org/
Au moins, les debiannistes auraient ainsi une chance de perdre leur réputation de gros geeks pédants et austères c. serrés enfin vous voyez ce que je veux dire.
# Et do bémol
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Deux réflexions du vendredi. Évalué à 5.
# Moi j'y ai pas accès [:calimero]
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Un nouveau bot pour la tribune!. Évalué à 2.
Le proxy est surtout allergique aux ports exotiques, apparemment, dommage :(
[^] # Re: p2p ?
Posté par Sten Spårvagnhög (site web personnel) . En réponse à la dépêche Tuxfamily propose un nouveau service de téléchargement. Évalué à -1.
[^] # Re: p2p ?
Posté par Sten Spårvagnhög (site web personnel) . En réponse à la dépêche Tuxfamily propose un nouveau service de téléchargement. Évalué à -10.
[^] # Re: bug ?
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal DLFP social network. Évalué à 10.
# Question d'interprétation
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Pilotes graphiques libres Intel : et les performances?. Évalué à 4.
Est-ce que c'est ça qu'il faut déduire de tes mesures, ou bien faut-il s'interroger plutôt sur les performances intrinsèques de Linux en matière graphique ? Parce que, libres ou pas, et venant des constructeurs ou pas, j'ai bien l'impression que c'est toujours la même histoire avec les pilotes graphiques. Alors, on peut toujours crier au complot anti-linux mais cette hypothèse implique quand même malveillance ou mauvaise foi des constructeurs et/ou incompétence des développeurs généralisées. Ca fait beaucoup. Une explication plus simple serait que développer des drivers pour Windows est bien moins compliqué et que l'OS offre plus de performance au niveau de sa couche graphique.
Enfin je dis ça, je ne dis rien.
# Un exemple
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message Plugin en python. Évalué à 1.
Regarde dans l'archive http://pycoincoin.free.fr/download/pycc-0.8.7.tar.gz le fichier pyc2.py, il y a une fonction import_plugins qui charge tous les modules disponibles dans le répertoire plugins/
C'est dynamique, c'est à dire que tu peux recharger les plugins ou en importer de nouveaux (via l'appel à cette fonction) alors même que l'appli est en train de tourner.
Comme toi, j'ai une classe d'interface Plugin parente.
Pour référence
pyCoinCoin : http://chrisix.free.fr/pycoincoin/
wiki doc développeur (en cours de contruction) : http://pycoincoin.free.fr/wikini/
en particulier les plugins : http://pycoincoin.free.fr/wikini/wakka.php?wiki=ModulePlugin
# Le louque
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal A moi les miches de la boulangères !. Évalué à 2.
[^] # Re: Mon avis
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message PyGTK OU PyQT. Évalué à 2.
# Mon avis
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message PyGTK OU PyQT. Évalué à 2.
Maintenant si c'est un pinnipède que tu dois coder, l'un n'est pas mieux loti que l'autre, pas plus que wxPython d'ailleurs.
[^] # Re: Tout est mieux !
Posté par Sten Spårvagnhög (site web personnel) . En réponse à la dépêche Nokia 770 : Internet Tablet OS 2006. Évalué à -1.
[^] # Re: Ca me rapelle Desproges...
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Mea Culpa au foot. Évalué à 3.
# Hum...
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message noob : fonction avec nombre de paramètres variable. Évalué à 4.
Si ton second paramètre dépend du premier, et bien tu n'as pas besoin de le passer en paramètre ; tout simplement, tu le calcules dans le corps de ta fonction au moment où tu en as besoin.
Donc, tu définis ta fonction ainsi :
# Des précisions ?
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message THREAD. Évalué à 3.
Quelques petites fautes que j'ai relevées dans ton code sont, néanmoins, peut-être à l'origine de ton souci :
- Dans la méthode __init__, tu oublies la majuscule à Thread lors de l'appel au constructeur de la classe héritée : Thread.__init__(self). Une autre façon de faire cela, qui pourrait à l'avenir t'éviter ce genre de coquille, est de passer par la fonction super qui te renvoie directement la superclasse : super(P, self).__init__()
- Quand tu écris proc.start, cela ne fait que retourner la méthode de ce nom, pour l'exécuter il ne faut pas oublier les parenthèses proc.start()
- Je suppose que dans ton vrai code, tu n'as pas oublié les : à la fin des lignes commençant par class ..., if ... ou def ..., que tu as bien écrit __name__ avec 2 underscores de chaque côté, que tu fais bien un import threading au début, et que c'est correctement indenté... :-)
[^] # Re: Un exemple en Tkinter
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message Questions python. Évalué à 2.
Puis, dans la méthode __init__, remplacer la ligne d'initialisation (but_valeur1.select()) par
# Un exemple en Tkinter
Posté par Sten Spårvagnhög (site web personnel) . En réponse au message Questions python. Évalué à 2.
Si tu veux plus de renseignements sur le fonctionnement de Tkinter il y a de la doc pas trop mal foutue ici : http://www.pythonware.com/library/tkinter/introduction/index(...)
Pour ce qui est de l'interaction avec Bash, tout dépend de ce que tu veux faire. Si c'est juste lancer des commandes, il y a l'appel system dans le module os ( http://www.python.org/doc/current/lib/module-os.html ) qui permet cela. Après, je ne sais pas, ça vaut peut-être le coup de porter tes scripts directement en Python...
[^] # Re: Nokia 770
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Petit plaisir solitaire.... Évalué à 9.