Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#101 Le 14/06/2010, à 23:56

Elzen

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

Je sais qu'il y en a un au moins dans pyxfce, mais les seuls paquets pyxfce que j'ai trouvé datent d'une vieille version d'Ubuntu et ne sont plus installables hmm


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#102 Le 15/06/2010, à 00:01

grim7reaper

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

Oui mais c'est ce que je dis, c'est un truc codé à part, ce n'est pas du GTK de base.
Donc à moins de le faire toi même (où d'en trouver un tout fait) c'est cuit.

Remarque ce n'est peut-être pas très compliqué à implémenter (je dis bien peut-être).

Hors ligne

#103 Le 15/06/2010, à 00:37

Pylades

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

Bon, ça y est, j’ai trouvé une graine qui fout tout en l’air : 1276554911.
Le bug est reproductible à volonté. \o/


“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

#104 Le 15/06/2010, à 00:42

grim7reaper

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

Le plus dur est fait wink

Hors ligne

#105 Le 15/06/2010, à 00:50

Pylades

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

Pas sûr… hmm
J’ai la flemme de m’y coller ; je vais devoir me coltiner une édition du code à chaque malloc pour voir sur lequel il échoue, et ensuite pouvoir traquer la fuite… Bon, promis, je m’y mets avant une heure et demie. ><'


“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

#106 Le 15/06/2010, à 00:57

grim7reaper

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

Bah non, Valgrind t'indique le malloc qui n'est pas libéré.

Hors ligne

#107 Le 15/06/2010, à 01:02

nesthib

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

plop les codeurs de C


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ᴉsdnGMT-4

Hors ligne

#108 Le 15/06/2010, à 01:19

Pylades

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

grim7reaper a écrit :

Bah non, Valgrind t'indique le malloc qui n'est pas libéré.

Mais pas celui qui a échoué…

Mais sinon, j’ai changé mon fusil d’épaule :

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int i;
    srand(1276554911);
    for(i=1;i<=50;i++)
        printf("%d: %d\n",i,rand()%6);
    return 0;
}

Ce qui donne :

1: 3
2: 3
3: 5
4: 4
5: 5
6: 4
7: 1
8: 3
9: 1
10: 3
11: 3
12: 3
13: 3
14: 0
[…]

Donc maintenant, je sais que c’est le quatorzième malloc qui échoue. Bon, je ne sais pas si j’ai le courage de me coltiner la lecture du code jusqu’au quatorzième malloc, plutôt que de modifier le code à chaque malloc.

Et merde, je suis con : Valgrind me disait que 13 malloc avaient été effectués… Donc c’était forcément le quatorzième qui pétait… ><'

On se sent vraiment con, des fois…


“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

#109 Le 15/06/2010, à 01:37

Кຼزດ

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

Plop.


dou

Hors ligne

#110 Le 15/06/2010, à 02:00

Pylades

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

Ben voyons… Bon, j’ai compris mon erreur. C’est con, très con. Je m’explique : quand realloc échoue, il renvoie un NULL, mais ne touche pas au bloc de données originellement alloué. Et moi, comme un con, j’ai fait ptr=realloc(ptr,size); ! roll

Et là, évidemment, lorsqu’il y a échec, ptr vaut NULL, et on a perdu l’adresse du bloc alloué.
Donc en pratique je dois faire comment ? Utiliser une variable intermédiaire pour vérifier si c’est NULL ou pas, puis alors si c’est bon affecter la nouvelle adresse à mon pointeur ?
Je pense que c’est ça, mais j’ai déjà fait tellement de conneries…

Bon, voilà, j’ai élucidé la source de mes maux. smile


“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

#111 Le 15/06/2010, à 02:14

grim7reaper

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

Pylade a écrit :

Ben voyons… Bon, j’ai compris mon erreur. C’est con, très con. Je m’explique : quand realloc échoue, il renvoie un NULL, mais ne touche pas au bloc de données originellement alloué. Et moi, comme un con, j’ai fait ptr=realloc(ptr,size); ! roll

Et là, évidemment, lorsqu’il y a échec, ptr vaut NULL, et on a perdu l’adresse du bloc alloué.
Donc en pratique je dois faire comment ? Utiliser une variable intermédiaire pour vérifier si c’est NULL ou pas, puis alors si c’est bon affecter la nouvelle adresse à mon pointeur ?
Je pense que c’est ça, mais j’ai déjà fait tellement de conneries…

Bon, voilà, j’ai élucidé la source de mes maux. smile

Ha oui, le realloc faut savoir s'en servir (ou lire le man tongue) sous peine de problème.

Ouais la soluce c'est de passer par un ptr inermédiaire et s'il est correct alors tu affectes la valeur retournée à l'ancien.

Hors ligne

#112 Le 15/06/2010, à 03:06

cm-t

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

42    cm-t

/me se bat sur le ftp, adumal avec toile-libre, et sur free.fr avec leurs 500...
besoin dodo 'nuit


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

Hors ligne

#113 Le 15/06/2010, à 03:07

Pylades

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

Merci. smile


Tiens, en me baladant sur le site d’E.D. (j’ai atterri là en lisant une de ses interventions sur un forum, et il liait dessus), j’ai appris que j’adoptais une approche orientée objet, ressemblant à de l’ADT (mais je n’ai pas poussé l’ADT à son paroxysme), et que j’utilisais des constructeurs (doux mot du C++ ^^). C’est fou ce qu’on apprend comme trucs. tongue

Du coup, il faudrait peut-être que je me mette au C++ un jour ; peut-être que ça me conviendrait…

En tous cas, glob à dix points. smile

BN all.


“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

#114 Le 15/06/2010, à 03:08

samυncle

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

Bonne nuit


Hello world

Hors ligne

#115 Le 15/06/2010, à 03:11

grim7reaper

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

Pylade a écrit :

Merci. smile


Tiens, en me baladant sur le site d’E.D. (j’ai atterri là en lisant une de ses interventions sur un forum, et il liait dessus), j’ai appris que j’adoptais une approche orientée objet, ressemblant à de l’ADT (mais je n’ai pas poussé l’ADT à son paroxysme), et que j’utilisais des constructeurs (doux mot du C++ ^^). C’est fou ce qu’on apprend comme trucs. tongue

Du coup, il faudrait peut-être que je me mette au C++ un jour ; peut-être que ça me conviendrait…

En tous cas, glob à dix points. smile

BN all.

Ouais l'ADT c'est cool.
J'y ai souvent recours, ça fait quand même plus propre quand tu utilises des structures.

Moi aussi faut que je me mette au C++ (dans 2 semaines si tout va bien), il y a des fonctionnalités sympa.
Pour faire de l'objet de base, ça se fait en C (regarde GTK+ wink).

Allez, BN World !

Hors ligne

#116 Le 15/06/2010, à 03:12

nesthib

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

BN


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ᴉsdnGMT-4

Hors ligne

#117 Le 15/06/2010, à 11:19

Compteur du TdCCT

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

Scores totaux, depuis le début :

1) 515    samuncle
2) 430    nesthib
3) 425    Pylade
4) 383+5  grim7reaper ** bonus +5 pour avoir répondu à ce post : ./viewtopic.php?pid=3486252#p3486252 **
5) 336    mathieuI
6) 235    cm-t
7) 185    helly
8) 163    gnuuat
9) 121    ǤƦƯƝƬ
10) 107    tshirtman
11) 83    petifrancais
12) 50    \\Ouranos//
13) 38    pierguiard
14) 37    ilagas
15) 30    keny
16) 25    GentooUser
17) 23    Kanor
18) 19    Le Rouge
19) 18    Ph3nix_
20) 14    kouskous
21) 12    stratoboy
21) 12    sailing
23) 11    Lagierl
24) 10    CROWD
24) 10    Toineo
26) 9    xapantu
27) 8    Mornagest
28) 7    Vista
29) 6    Zeibux
29) 6    Р'tite G☢gole :mad:
31) 5    timsy
32) 4    danychou56
32) 4    Neros
32) 4    Biaise
35) 3    gulp
36) 1    ceric
36) 1    pfriedK
36) 1    geenux

chart?chs=675x280&cht=p3&chco=d80020,d88000,ffd840,20d820,2080ff,101080,a020d8&chf=bg,s,c0c0c0&chl=00h%20-%2000h59|01h%20-%2001h59|02h%20-%2002h59|03h%20-%2003h59|10h%20-%2010h59|12h%20-%2012h59|15h%20-%2015h59|18h%20-%2018h59|19h%20-%2019h59|23h%20-%2023h59&chd=t:5,3,2,5,2,4,1,1,1,4&chp=1.6&chtt=R%C3%A9partition%20des%20posts&chts=606060,16chart?chs=675x250&cht=bvs&chxt=x,y&chds=0,10&chxr=1,0,10&chf=b0,lg,0,803000,0,ffc080,1|bg,lg,90,e8e8e8,0,c0c0c0,0.9&chxl=0:|05h|06h|07h|08h|09h|10h|11h|12h|13h|14h|15h|16h|17h|18h|19h|20h|21h|22h|23h|00h|01h|02h|03h|04h&chxp=0,0.7,4.9,9.1,13.2,17.3,21.5,25.6,29.8,33.9,38,42.2,46.3,50.5,54.6,58.8,62.9,67,71.2,75.3,79.4,83.6,87.7,91.8,96&chd=t:0,0,0,0,0,2,0,4,0,0,1,0,0,1,1,0,0,0,4,5,3,2,5,0&chm=N,803000,0,-1,12&chtt=Nombre%20de%20posts%20par%20heure&chts=606060,16


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

#118 Le 15/06/2010, à 11:19

Compteur du TdCCT

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

Scores de la période en cours :

1) 140    Pylade
2) 120    samuncle
3) 105    grim7reaper
4) 103    nesthib
5) 101    mathieuI
6) 66    gnuuat
7) 52    helly
7) 52    cm-t
9) 32    tshirtman
10) 20    keny
11) 15    \\Ouranos//
11) 15    ǤƦƯƝƬ
13) 13    petifrancais
13) 13    pierguiard
15) 9    Kanor
16) 7    Vista
17) 5    sailing
17) 5    timsy
19) 4    Toineo
19) 4    Lagierl
19) 4    xapantu
22) 3    gulp
22) 3    Р'tite G☢gole :mad:
24) 2    kouskous
24) 2    Mornagest

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

#119 Le 15/06/2010, à 11:57

Pylades

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

Hum, il y a un truc marrant : le script de nesthib, il est bien gentil, mais j’arrive au même résultat en deux lignes de commande. tongue

wget 'http://forum.ubuntu-fr.org/extern.php?action=online_full&type=rss'
< extern.php\?action\=online_full\&type\=rss sed -e 's/<a[^>]*>//g' -e 's/<\/a>//g' -e 's/<br \/>//g' | tr : \\n | sed 1,2d | tr , \\n | uniq -d

En fait, il sert à quoi ce script, à part à se compliquer la vie ? tongue


“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

#120 Le 15/06/2010, à 21:03

nesthib

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

à intégrer dans un projet qui n'est PAS fait en bash tongue
(et puis avant que kanor la donne je ne connaissais pas l'adresse en xml petit tricheur tongue:P, forcément là c'est plus facile

sinon quitte à faire une utilisation intelligente de sed :

curl -s 'http://forum.ubuntu-fr.org/extern.php?action=online_full&type=rss' | sed -e 's/^[^"]*"/<a href="/' -e 's#<[^<>]*>##g' -e 's/, /\n/g' | uniq -dc

tongue:P:P


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ᴉsdnGMT-4

Hors ligne

#121 Le 15/06/2010, à 23:30

Pylades

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

On peut se poser des questions sur l’utilité de faire un truc pareil en python, mais bon…


Bon, je vais (encore tongue) vous assommer de questions.

Premièrement, je me demande si je dois aller complétement vers de l’ADT. Cela aurait le mérite de fournir une API cohérente, mais j’ai quand-même des scrupules à faire des fonctions pour juste positionner un drapeau booléen. Je sais bien que dans un langage complétement orienté objet, on appliquerait la sacro-sainte loi de l’encapsulation ; mais demander l’utilisation d’une fonction pour une action aussi triviale qu’un opt->takes_value=1;, j’ai du mal. Surtout si c’est pour ensuite demander à l’utilisateur de plus au moins de démerder avec son tableau de pointeurs pour m’envoyer le bon…
En tout, un truc à faire quand j’aurais appris le C++, ça serait de recoder cette bibliothèque avec, je pense que cela s’y prête bien.

Ensuite, j’hésite à protéger l’utilisateur contre un SIGSEGV s’il donne un NULL à manger à un destructeur. E.D. le faisait, dans un exemple de code, mais je ne suis pas sûr que dans mon cas cela soit très appréciable. En effet, j’ai conçu l’API de sorte à ce que l’utilisateur n’ait à aucun moment le besoin ni même l’envie de passer NULL aux destructeurs. Un tel cas a de très fortes chances de résulter de l’erreur de l’utilisateur ; et donc l’avertir qu’il a fait quelque chose de pas net via un SIGSEGV ne me semble pas une mauvaise chose.

Et enfin troisièmement, j’hésite à créer un destructeur partiel pour mes structures gérant les options. Je m’explique : pour effectuer le traitement des options, j’ai besoin que les structures soient renseignée sur plusieurs points, notamment la liste des arguments de la ligne de commande qui permettrons d’activer une option. Or, une fois le traitement des options effectué, ces renseignements deviennent inutiles. Comme les structures ne sont pas immédiatement détruites, car elles restent nécessaires pour en tirer le résultat du traitement des options, et influencer le comportement du programme. Donc j’hésite à faire un destructeur partiel qui serait appelé à la fin de ma fonction principale de traitement. Cela permettrait d’économiser un peu de mémoire, mais pas beaucoup (je suis quand-même assez économe en mémoire). Je me demande si cela vaut vraiment la peine de détruire les structures dédiées aux options en deux fois… pour un gain assez faible.

Je vous demande si vous m’approuvez des mes considérations, on si vous avez des conseils à me donner. Pour l’instant, je ne vois pas de motivation suffisante pour inclure dans le code une de ces propositions, mais avec votre avis, je reconsidérerait peut-être la chose autrement.
Merci d’avance pour vos remarques éventuelles.

Sinon, bonsoir à tous ; et je vais probablement passer cette nuit à réfléchir sur le bien fondé ou non de telle ou telle chose dans le code…


“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

#122 Le 15/06/2010, à 23:37

nesthib

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

Pylade a écrit :

On peut se poser des questions sur l’utilité de faire un truc pareil en python, mais bon…


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ᴉsdnGMT-4

Hors ligne

#123 Le 15/06/2010, à 23:42

Pylades

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

nesthib a écrit :
Pylade a écrit :

On peut se poser des questions sur l’utilité de faire un truc pareil en python, mais bon…

Plaît-il ?

Pour ton édit d’en haut : curl n’est pas une commande standard, elle n’est pas disponible partout. Par exemple, chez moi elle n’est pas installé. Mais on peut faire ça en une ligne avec wget aussi. tongue

wget -q 'http://forum.ubuntu-fr.org/extern.php?action=online_full&type=rss' -O - | sed -e 's/<a[^>]*>//g' -e 's/<\/a>//g' -e 's/<br \/>//g' | tr : \\n | sed 1,2d | tr , \\n | uniq -d

Nettement mieux. smile


“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

#124 Le 15/06/2010, à 23:47

Elzen

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

Quelqu'un serait-il susceptible de m'expliquer comment on peut faire en sorte qu'une application écoute le clavier même si elle n'a aucune fenêtre qui a le focus ? Genre comme xbindkeys ou certains lecteurs de musique.


Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
J'ai pour qualité de ne jamais attaquer les gens. J'ai pour défaut de souvent avoir l'air de le faire.

Hors ligne

#125 Le 15/06/2010, à 23:52

nesthib

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

Pylade a écrit :

curl n’est pas une commande standard, elle n’est pas disponible partout. Par exemple, chez moi elle n’est pas installé. Mais on peut faire ça en une ligne avec wget aussi. tongue

wget -q 'http://forum.ubuntu-fr.org/extern.php?action=online_full&type=rss' -O - | sed -e 's/<a[^>]*>//g' -e 's/<\/a>//g' -e 's/<br \/>//g' | tr : \\n | sed 1,2d | tr , \\n | uniq -d

Nettement mieux. smile

si tu veux pour wget par contre ton code suivant est largement améliorable (cf. mon post) tongue

/me & /you dans un combat de tongue ce soir ^^

sur ce /me retourne coder wink


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ᴉsdnGMT-4

Hors ligne

Haut de page ↑