Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1176 Le 14/01/2011, à 23:53

Pylades

Re : /* Topic des codeurs couche-tard [3] */

make mrproper
sed -i 's/origine/nouvelle/g' *

tongue


Non, je crois que je vais le faire, mais je me laisse encore un peu le temps d'hésiter…

Dernière modification par Pylade (Le 14/01/2011, à 23:55)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1177 Le 14/01/2011, à 23:54

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Je ne suis absolument pas fan de ce genre de commande.

Tu lances ça sur un gros (ou moyen) projet, tu ne peux pas être sûr de ne rien péter…

Dernière modification par grim7reaper (Le 14/01/2011, à 23:55)

Hors ligne

#1178 Le 14/01/2011, à 23:56

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Oui, j'ai édité. C'est un peu spécieux, je sais.


(Mais ça ne m'empêche pas de le faire de temps en temps… neutral)


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1179 Le 14/01/2011, à 23:57

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Disons que tout dépend de la taille du code (et de si tu es seul, mais même seul c'est pas forcément très sûr).
Dans le doute, je préfère éviter ce genre de manip hasardeuse (j'ai déjà eu de mauvaises surprises, bon je ne suis pas non plus un cador de sed mais bon…).

Dernière modification par grim7reaper (Le 14/01/2011, à 23:58)

Hors ligne

#1180 Le 15/01/2011, à 00:01

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Bon, après, je ne le fait que depuis que je versionne, avant j'aurais été beaucoup moins chaud… ^^


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1181 Le 15/01/2011, à 00:02

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Oui, quand tu versionnes c'est moins problématique (mais bon, j'ai gardé mes reflexes, ça ne peut pas faire de mal de toute façon)

Hors ligne

#1182 Le 15/01/2011, à 00:26

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Bon, faut que je commence ma réponse à ArkSeth… ^^


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1183 Le 15/01/2011, à 00:30

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Il serait temps, elle a intérêt à être à la hauteur de l'attente tongue

Hors ligne

#1184 Le 15/01/2011, à 00:39

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Bon, j'ai fait l'intro… mais cette pression m'inhibe ! yikes ^^


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1185 Le 15/01/2011, à 01:10

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

BN World !

Hors ligne

#1186 Le 15/01/2011, à 01:21

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Pylade a écrit :

Bon, j'ai fait l'intro… mais cette pression m'inhibe ! yikes ^^

Fais simple ^^

T'façon les faits sont contre toi, que t'y mettes les formes ou pas tongue

Dernière modification par ArkSeth (Le 15/01/2011, à 01:21)

Hors ligne

#1187 Le 15/01/2011, à 01:21

Кຼزດ

Re : /* Topic des codeurs couche-tard [3] */

Hop tongue
j'ai ajouté la gestion des archives (tar.gz, tar.bz2, tar, zip), et changé la licence pour une GPL3 (j'attendais que le code soit plus long que la licence :°)

Dernière modification par Кຼزດ (Le 15/01/2011, à 03:22)


dou

Hors ligne

#1188 Le 15/01/2011, à 01:29

Sir Na Kraïou

Re : /* Topic des codeurs couche-tard [3] */

.


Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.

Hors ligne

#1189 Le 15/01/2011, à 02:05

gnuuat

Re : /* Topic des codeurs couche-tard [3] */

Sinon, BOOST c'est bien aussi smile .


Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !

Hors ligne

#1190 Le 15/01/2011, à 02:20

helly

Re : /* Topic des codeurs couche-tard [3] */

gnuuat a écrit :

Sinon, BOOST c'est bien aussi smile .

mad !


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1191 Le 15/01/2011, à 03:25

cm-t

Re : /* Topic des codeurs couche-tard [3] */

'Nuit;

Dernière modification par cm-t (Le 15/01/2011, à 04:10)


Actu Ubuntu            ☺/
Pauses Ubuntu sur Paris            \_< -t
[(π)] La Quadrature du net

Hors ligne

#1192 Le 15/01/2011, à 03:49

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Alors ArkSeth, chose promise, chose due : les explications arrivent.
En fait, lorsque tu interceptes la totalité des exceptions à travers un bloc try tu t'attends à recevoir les erreurs de chargement de ton module ; en fait tu n'interceptes pas que ça. Les exceptions en Python ne se limitent pas aux erreurs : elles sont utilisées pour tout. On peut par exemple lancer déclencher une exception en frappant ^C au clavier : KeyboardInterrupt. Déjà, j'espère que tu te rends bien compte que c'est un bug de continuer en affichant qu'un module a rencontré une erreur pendant son chargement alors que l'on a demandé une interruption. Ensuite, les exception peuvent être levée en cas d'erreur de « code » (SyntaxError ou NameError, par exemple) ou d'erreur d'exécution (car il n'y a pas de compilation, on ne détecte donc pas les erreurs de « code » en amont), et parfois en dehors de toute erreur (KeyboardInterrupt — je parle beaucoup de celle-là car le compteur est en permanence dans un try: où la clause d'exception n'est qu'un vulgaire except:, et c'est emmerdant pour quand je veux l'interrompre). Du coup, si tu ne cible pas les exceptions que tu veux intercepter, tu peux intercepter n'importe quoi sans être certain que l'exception provienne d'une erreur lors du chargement du module. Par ailleurs un tel comportement inhibe totalement les informations qui pourraient être utiles pour le debug, et ça aussi c'est mal.
En Python, les exceptions sont un mécanisme global qui sert à gérer toute sorte de choses. Donc si tu ne cible pas l'exception à intercepter, tu n'as aucune idée de ce qui as levé l'exception et tu ne peux pas en déduire la marche à suivre. En C, je peux décider de ne pas vérifier le succès des sorties, ou d'un appel à fseek (même si pour fseek je devrais), car je connais les conséquences d'ignorer l'erreur. En Python, ce n'est pas le cas, a fortiori avec un module entier (le code dans les blocs try devrait être le plus court possible). Il peut même se produire une exception qui n'a pas compromis le chargement de ton module, tout est possible.
Donc déjà, ta façon de faire ne produit même pas ce que tu attends (t'indiquer si le système ne peut charger un module). Mais en plus, permets-moi de douter de la rigueur de la démarche : s'il se produit un événement dont on pense qu'il empêche le chargement d'un module, on va simplement l'ignorer et se passer du module, puis continuer comme si de rien n'était ? Désolé, je ne voudrais pas te paraître dénué de tact ni encore moins grossier, mais la vérité m'oblige à te le dire : c'est digne des daubes propriétaire ; ni vu ni connu, un souci dont n'a pas conscience le client est un souci qui n'existe pas… Sauf que d'une part, si tu as une exception inattendue, c'est une raison de plus pour qu'elle provoque un traceback et se manifeste ; et d'autre part quand tu commence à ignorer que quelque chose ne s'est pas déroulé comme planifié — c'est à dire continuer l'exécution après avoir afficher un message —, c'est la porte ouverte à tous les bugs quand ton programme grossit.
En général, en Python, pour mettre un except: dans du code il faut vraiment avoir des arguments très solides ; mais là pour le chargement d'un module c'est tout simplement injustifiable.

Bon, merci de m'avoir lu, en espérant t'avoir convaincu d'abandonner cette horrible pratique.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1193 Le 15/01/2011, à 04:03

Pylades

Re : /* Topic des codeurs couche-tard [3] */

Et puis il ne faut pas que j'oublie de faire CLFB, tiens… ^^


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1194 Le 15/01/2011, à 04:11

samυncle

Re : /* Topic des codeurs couche-tard [3] */

smile


Hello world

Hors ligne

#1195 Le 15/01/2011, à 04:22

Rolinh

Re : /* Topic des codeurs couche-tard [3] */

smile

Hors ligne

#1196 Le 15/01/2011, à 04:45

nesthib

Re : /* Topic des codeurs couche-tard [3] */

plop


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#1197 Le 15/01/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores totaux, depuis le début :

1) 2321    nesthib
2) 2197    samuncle
3) 1858    Pylade
4) 1508    Кຼزດ
5) 1121+5  grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1058    cm-t
7) 783    \\Ouranos//
7) 783    helly
9) 776    Р☢w ! ✰ :mad: ✰ (эй !)
10) 598    gnuuat
11) 538    Lagierl
12) 366    tshirtman
13) 196    Askelon
14) 185    Kanor
15) 172    nathéo
16) 134    The Uploader
17) 132    Rolinh
18) 121    ǤƦƯƝƬ
19) 93    petifrancais
20) 78    edge_one
20) 78    pierguiard
22) 70    gulp
23) 63    kamui57
24) 37    ilagas
25) 35    Le Rouge
26) 30    keny
27) 25    GentooUser
27) 25    Morgiver
27) 25    xapantu
30) 24    ไ୦บเઢ'
30) 24    Steap
32) 20    CROWD
32) 20    d10g3n
34) 18    Ph3nix_
35) 15    timsy
35) 15    :!pakman
37) 14    kouskous
38) 12    stratoboy
38) 12    sailing
38) 12    sakul
41) 11    alexises
41) 11    Crocoii
43) 10    Toineo
43) 10    NutMotion
43) 10    pseudovingtcinqcaracteres
43) 10    pfriedZ
47) 8    Mornagest
48) 7    Vista
49) 6    Zeibux
49) 6    ubuntlin
49) 6    asma.geek
52) 5    tendances-tdct
52) 5    kinouchou
54) 4    danychou56
54) 4    Neros
54) 4    Biaise
54) 4    totoflute
54) 4    pinballyoda ㋛
59) 3    Revan26914
60) 2    SoJaS
60) 2    ceric
62) 1    geenux

RépartitionPosts/heure


Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#1198 Le 15/01/2011, à 08:42

Compteur du TdCCT

Re : /* Topic des codeurs couche-tard [3] */

Scores de la période en cours :

1) 132    samuncle
2) 120    nesthib
3) 93    Кຼزດ
4) 86    Pylade
5) 72    grim7reaper
6) 66    gnuuat
7) 51    Rolinh
8) 44    Р☢w ! ✰ :mad: ✰ (эй !)
9) 42    helly
10) 41    The Uploader
11) 20    Lagierl
12) 18    tshirtman
13) 15    \\Ouranos//
13) 15    :!pakman
15) 10    cm-t
16) 4    kamui57
17) 3    Steap
17) 3    xapantu
17) 3    Le Rouge

Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !

J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).

Hors ligne

#1199 Le 15/01/2011, à 10:40

grim7reaper

Re : /* Topic des codeurs couche-tard [3] */

Hello World !

Кຼزດ a écrit :

Hop tongue
j'ai ajouté la gestion des archives (tar.gz, tar.bz2, tar, zip), et changé la licence pour une GPL3 (j'attendais que le code soit plus long que la licence :°)

\o/
Je vais pouvoir laisser tomber comix maintenant.



Pylade a écrit :

Et puis il ne faut pas que j'oublie de faire CLFB, tiens… ^^

Moi aussi faudrait que je m'y remettes. J'ai peut-être vu un truc intéressant pour moi avec les transformeurs de monades, mais faut que je comprenne la façon de les utiliser…

Hors ligne

#1200 Le 15/01/2011, à 12:48

Elzen

Re : /* Topic des codeurs couche-tard [3] */

Merci pour les explications, Pylade, et j'comprends mieux pourquoi tu me sortais (à tord tongue) que ça ne faisait pas ce que j'attendais :

Pylade a écrit :

Ensuite, les exception peuvent être levée en cas d'erreur de « code » (SyntaxError ou NameError, par exemple) ou d'erreur d'exécution (car il n'y a pas de compilation, on ne détecte donc pas les erreurs de « code » en amont)

Justement, celles-là, je veux que ça les bloque aussi ^^
Dans la pratique, les exceptions que je reçois sont même quasiment tout de temps des problèmes dans mon code, je n'ai encore jamais vu le chargement d'un module planter de lui-même, sans que j'ai fait une bêtise.

Ceci dit, effectivement, je n'avais pas pensé à l'infime probabilité de risques que l'utilisateur fasse un Ctrl+C dans la microseconde au cours de laquelle le programme tente de charger un plugin… Y a moyen de dire « toutes les exceptions, quelles qu'elles soient, sauf celle-là » ?
M'enfin, dans le pire des cas, il n'y à qu'à en faire deux d'affilée, ça doit marcher…

Pylade a écrit :

s'il se produit un événement dont on pense qu'il empêche le chargement d'un module, on va simplement l'ignorer et se passer du module, puis continuer comme si de rien n'était ?

Je crois que je pourrais finir par vous expliquer de quoi il s'agit, en fait…

C'est pour le gestionnaire de bureaux de Touhy (vous savez, la fenêtre qui s'affiche à l'arrière-plan). Tout seul, sans rien, il ne gère que le fond d'écran.
Ensuite, pour les différents contenus qu'on peut vouloir afficher sur le bureau, chaque type disponible (actuellement : icône, groupe d'icônes, nom du bureau actuel, liste des fenêtres, pager, liste des fenêtres minimisées et liste des périphériques connectés) est fourni par un plugin particulier.

Donc oui, le comportement que j'attend est précisément de ne pas empêcher l'utilisateur de voir son bureau s'afficher juste parce que j'ai laissé traîné un bug dans le code d'un seul petit type d'icône de rien du tout.
Là j'ai mis juste un print de l'exception vu que c'est que pour moi, pour débugger ; quand je publierai, je pense que je remplacerai par un affichage (sur la sortie standard, voire même dans une popup) d'un petit message « Désolé, le plugin machin n'a pas pu se charger. L'erreur renvoyée est [Exception]. Veuillez contacter l'auteur pour qu'il puisse corriger le problème. » ou quelque chose du genre.
J'veux justement pas que le client ne s'en rende pas compte, mais qu'il sache ce qui est arrivé et pourquoi et qu'il doit me demander de débugger, sinon j'aurais pas fait s'afficher l'exception, ce que j'ai explicitement dit que je faisais tongue
D'ailleurs, ce n'est pas comme ça que fonctionnent le gnome-panel et compagnie ? (Ça tente de charger les différents plugins demandés, et ça prévient s'il y a eu une erreur quelconque sur l'un d'entre eux, mais ça continue quand même de charger le reste comme si de rien n'était ?) Parce que comme immonde logiciel privatif, le gnome-panel, voilà quoi tongue


Donc comme je le disais un peu plus tôt à tshirtman, je suis bel et bien d'accord que dans le cas général, c'est une pratique totalement à éviter (ce que je fais en Java aussi souvent que possible, et que je faisais moins en Python seulement par méconnaissance, mais maintenant je saurai), seulement dans ce cas-là bien précis, c'est juste qu'il n'y a que ça qui correspond à ce que je veux tongue

Dernière modification par ArkSeth (Le 15/01/2011, à 12:51)

Hors ligne