#1401 Le 20/07/2010, à 23:52
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
#!/bin/bash
cont=1
while [ $cont -eq 1 ]
do
valgrind --tool=memcheck --leak-check=full --leak-resolution=high --show-reachable=yes ./debug -d 2>valfile
lin=`wc -l < valfile`
if [ $lin -ne 14 ]
then
cont=0
fi
done
Ça fait quatre minutes qu’il tourne, sans succès… ><'
J’en viens à me demander si le bug ne résulterait pas d’une optimisation du compilateur !
“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
#1402 Le 21/07/2010, à 00:02
- grim7reaper
Re : /* Topic des codeurs couche-tard [1] */
Au pire envoie le code pour avoir un regard extérieur.
Si tu n'utilises pas time(NULL) pour srand() tu peux ignorer la totalité du paragraphe suivant .
Ton script de test n'est pas optimal (tu lances le prog plusieurs fois par seconde donc plusieurs fois avec la même graine donc tu testes plusieurs fois le même cas ). Dans des cas comme celui-ci il vaut mieux initialiser le générateur avec le PID plutôt qu'avec time(NULL).
BN World !
Hors ligne
#1403 Le 21/07/2010, à 00:13
- Кຼزດ
Re : /* Topic des codeurs couche-tard [1] */
plop
dou
Hors ligne
#1404 Le 21/07/2010, à 00:14
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
Bof, vu la vitesse de Valgrind, il ne doit pas y en avoir plus de deux dans la même seconde… Mais c’est une remarque intéressante, je vais de ce pas corriger ça.
Sinon, mon PC a coupé à cause de la chaleur, le PID utilisé était alors le 11397, et toujours rien. Je commence à me poser des questions…
Dès que j’aurai fait un peu de trucs utiles, je vais vous présenter une deuxième alpha.
“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
#1405 Le 21/07/2010, à 01:03
- helly
Re : /* Topic des codeurs couche-tard [1] */
BN
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
#1406 Le 21/07/2010, à 01:05
- cm-t
Re : /* Topic des codeurs couche-tard [1] */
'Nuit;
Actu Ubuntu ☺/
Pauses Ubuntu sur Paris \_< -t
[(π)] La Quadrature du net
Hors ligne
#1407 Le 21/07/2010, à 01:22
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
Pas mieux…
“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
#1408 Le 21/07/2010, à 02:01
- compte supprimé
Re : /* Topic des codeurs couche-tard [1] */
Bonne nuit !
#1409 Le 21/07/2010, à 02:11
- samυncle
Re : /* Topic des codeurs couche-tard [1] */
Hello world
Hors ligne
#1410 Le 21/07/2010, à 03:08
- nesthib
Re : /* Topic des codeurs couche-tard [1] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#1411 Le 21/07/2010, à 03:09
- :dam: tob☢B tit'Р
Re : /* Topic des codeurs couche-tard [1] */
Fuck.
Hors ligne
#1412 Le 21/07/2010, à 03:16
- Sir Na Kraïou
Re : /* Topic des codeurs couche-tard [1] */
Fuck.
etouq.
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
#1413 Le 21/07/2010, à 03:27
- samυncle
Re : /* Topic des codeurs couche-tard [1] */
Hello world
Hors ligne
#1414 Le 21/07/2010, à 09:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [1] */
Scores totaux, depuis le début :
1) 834 samuncle
2) 785 nesthib
3) 760 Pylade
4) 629+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
5) 496 mathieuI
6) 412 cm-t
7) 342 helly
8) 235 \\Ouranos//
9) 193 gnuuat
10) 164 Lagierl
11) 150 tshirtman
12) 121 ǤƦƯƝƬ
13) 93 petifrancais
14) 48 edge_one
15) 47 Kanor
15) 47 Р'tite G☢gole :mad:
17) 44 pierguiard
18) 37 ilagas
19) 30 keny
20) 25 GentooUser
21) 19 Le Rouge
22) 18 Ph3nix_
23) 15 timsy
24) 14 kouskous
25) 13 xapantu
26) 12 stratoboy
26) 12 sailing
28) 11 alexises
29) 10 CROWD
29) 10 Toineo
29) 10 NutMotion
29) 10 :dam: tob☢B tit'Р
33) 8 Mornagest
34) 7 Vista
35) 6 Zeibux
36) 4 danychou56
36) 4 Neros
36) 4 Biaise
39) 3 gulp
40) 2 SoJaS
40) 2 ceric
42) 1 pfriedK
42) 1 geenux
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
#1415 Le 21/07/2010, à 09:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [1] */
Scores de la période en cours :
1) 200 nesthib
2) 175 Pylade
3) 173 samuncle
4) 121 Lagierl
5) 118 cm-t
6) 116 \\Ouranos//
7) 104 grim7reaper
8) 86 helly
9) 59 mathieuI
10) 41 Р'tite G☢gole :mad:
11) 37 edge_one
12) 23 tshirtman
13) 20 gnuuat
14) 10 timsy
14) 10 Kanor
14) 10 :dam: tob☢B tit'Р
17) 2 pierguiard
18) 1 ceric
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
#1416 Le 21/07/2010, à 09:55
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
WTF!
Je croyais avoir blacklisté ce vilain petit canard…
Il y a un truc qui merde…
edit :
Dernière modification par nesthib (Le 21/07/2010, à 10:31)
“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
#1417 Le 21/07/2010, à 10:30
- nesthib
Re : /* Topic des codeurs couche-tard [1] */
sinon tu peux juste supprimer le caractère unicode u202E
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#1418 Le 21/07/2010, à 10:38
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
Une âme charitable qui connaisse python que me dise comment insérer un caractère Unicode dans une chaîne ? Parce que là j’ai des petits problèmes…
“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
#1419 Le 21/07/2010, à 12:23
- tshirtman
Re : /* Topic des codeurs couche-tard [1] */
On ne peut pas insérer ou supprimer un caractère dans une chaine.
Hors ligne
#1420 Le 21/07/2010, à 14:42
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
Nan, mais je veux dire créer une chaîne avec le caractère U+202E dedans, mais sans le mettre explicitement dans le code (vous comprendrez pourquoi ^^). Un petit peu comme dans « '\x62' », mais pour y faire tenir le caractère entier, et pas juste les trois octets mis bout à bout, histoire de pouvoir faire des comparaisons avec les résultats du parsing du topic.
Vous comprenez ?
Et pour supprimer un caractère, on peut toujours tenter un truc comme ça, s’il n’est présent qu’en un exemplaire :
a = a.split('ð')[0]+a.split('ð')[1]
Après, ça peut s’améliorer pour marcher quel que soit le nombre de caractères « ð »…
“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
#1421 Le 21/07/2010, à 16:46
- tshirtman
Re : /* Topic des codeurs couche-tard [1] */
j'ai du mal a comprendre ta question…
mais peut être que ces quelques tests pourront t'aider à clarifier ta demande, ou a trouver la solution:
>>> print '\x62'
File "<input>", line 1
print '\x62'
^
SyntaxError: invalid syntax
>>> print '\x62'
b
>>> print u'\x62'
b
>>> chr(x62)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'x62' is not defined
>>> chr('x62')
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: an integer is required
>>> chr(62)
'>'
>>> chr(0x62)
'b'
>>> chr(0x202)
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: chr() arg not in range(256)
>>> chr(202)
'\xca'
>>> print chr(202)
^J>>>
pour ta solution de suppression tu construit une nouvelle chaine, c'est une solution, mais tu ne supprime pas un caractère de la chaine. une solution de ce type généralisé serait:
a = ''.join(a.split('ð'))
Hors ligne
#1422 Le 21/07/2010, à 17:26
- nany
Re : /* Topic des codeurs couche-tard [1] */
Bonjour chez vous.
Nan, mais je veux dire créer une chaîne avec le caractère U+202E dedans, mais sans le mettre explicitement dans le code (vous comprendrez pourquoi ^^). Un petit peu comme dans « '\x62' », mais pour y faire tenir le caractère entier, et pas juste les trois octets mis bout à bout, histoire de pouvoir faire des comparaisons avec les résultats du parsing du topic.
Vous comprenez ?
Euh… non, je ne comprends pas vraiment où tu veux en venir.
Et pour supprimer un caractère, on peut toujours tenter un truc comme ça, s’il n’est présent qu’en un exemplaire :
a = a.split('ð')[0]+a.split('ð')[1]
Après, ça peut s’améliorer pour marcher quel que soit le nombre de caractères « ð »…
a = a.replace('ð', '')
Donc, dans un premier temps, il suffit de mettre
class Entry:
def __init__(self,name='',date=Date(),edit=Date()):
self.name = name.replace('\xe2\x80\xae','')
self.date = max(date,edit)
def setName(self, name):
self.name = name
def setDate(self, date):
if date.points()>self.date.points(): self.date = date
et de remettre en ordre les fichiers count et count10days.
Sinon, il faut savoir qu’il y a deux Р'tit B☢bot :mad: qui trainent sur le forum (le TdCT est victime des deux) et je suis contre leur blacklistage car, jusqu’à preuve du contraire, ce ne sont pas des bots (AMHA ).
J’ai donc fait un petit truc pour retourner celui qui est en verlan (auquel cas il ne faut pas modifier la classe Entry) mais qui est plutôt moche et dont je ne suis pas sur du résultat dans le cas où le caractère est implanté au milieu de la chaine et même plusieurs fois.
try:
entry = Entry(str(post.find('div','postleft').find('a')).split('>')[1].split('<')[0])
except:
entry = Entry(str(post.find('div','postleft').find('strong')).split('>')[1].split('<')[0])
if '\xe2\x80\xae' in entry.name:
new_name = entry.name.split('\xe2\x80\xae')[0]
if new_name == '': new_name = '\xe2\x80\xad'
new_name = new_name.decode('utf-8')
for segment in entry.name.split('\xe2\x80\xae')[1:]:
if segment == '': segment = '\xe2\x80\xad'
segment = segment.decode('utf-8')
for car in segment:
new_name = car + new_name
new_name = new_name.encode('utf-8')
entry.setName(new_name)
Encore une fois, j’ai du mal à comprendre ce que tu cherches mais tu auras peut-être des réponses ici.
Hors ligne
#1423 Le 21/07/2010, à 17:31
- Sir Na Kraïou
Re : /* Topic des codeurs couche-tard [1] */
WTF!
Je croyais avoir blacklisté ce vilain petit canard…
Il y a un truc qui merde…
edit :
Il y a deux vilains petits canards, le premier n'était pas parfait.
c'là dit, il pourrait y en avoir un nouveau par jour
Dernière modification par Р☢w ! ✰ :mad: ✰ (эй !) (Le 21/07/2010, à 17:32)
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
#1424 Le 21/07/2010, à 18:24
- Pylades
Re : /* Topic des codeurs couche-tard [1] */
@Tshirtman : nan, les chaînes Unicode sont trop compliquées et ne produisent pas le résultat escompté ; et chr n’a pas pour fonction de produire des caractères Unicode. Ce n’était pas cela ce que je cherchais.
pour ta solution de suppression tu construit une nouvelle chaine, c'est une solution, mais tu ne supprime pas un caractère de la chaine. une solution de ce type généralisé serait:
a = ''.join(a.split('ð'))
Merci !
a = a.replace('ð', '')
Merci encore !
Donc, dans un premier temps, il suffit de mettre
class Entry: def __init__(self,name='',date=Date(),edit=Date()): self.name = name.replace('\xe2\x80\xae','') self.date = max(date,edit) def setName(self, name): self.name = name def setDate(self, date): if date.points()>self.date.points(): self.date = date
Ouais, je crois que je vais en arriver là. Il y a quoi d’autre comme caractère dangereux ? Les caractères hébreux et arabes mettent-ils aussi un tel boxon ? Je vais tester…
et de remettre en ordre les fichiers count et count10days.
Ah non, chez moi c’est « count_period » ; en effet, j’ai adapté le compteur pour qu’il puisse travailler avec n’importe que nom de fichier.
Sinon, il faut savoir qu’il y a deux Р'tit B☢bot
qui trainent sur le forum (le TdCT est victime des deux) et je suis contre leur blacklistage car, jusqu’à preuve du contraire, ce ne sont pas des bots (AMHA
).
Ah, d’accord ! C’est donc pour ça. ^^
Ste perverse…
Et moi je suis pour leur blacklistage, ce ne sont que des faux-nez de la ’tite, tout comme Maurice, ils seront donc blacklistés, à juste titre. Et puis ils ne peuvent s’en prendre qu’à eux-mêmes ; ils mettent les scores en l’air.
En fait, tout individu ayant un caractère suspect dans son pseudo sera interdit de marquer des points, à partir de maintenant.
Ou à la rigueur, les caractères suspects seront supprimés.
J’ai donc fait un petit truc pour retourner celui qui est en verlan (auquel cas il ne faut pas modifier la classe Entry) mais qui est plutôt moche et dont je ne suis pas sur du résultat dans le cas où le caractère est implanté au milieu de la chaine et même plusieurs fois.
try: entry = Entry(str(post.find('div','postleft').find('a')).split('>')[1].split('<')[0]) except: entry = Entry(str(post.find('div','postleft').find('strong')).split('>')[1].split('<')[0]) if '\xe2\x80\xae' in entry.name: new_name = entry.name.split('\xe2\x80\xae')[0] if new_name == '': new_name = '\xe2\x80\xad' new_name = new_name.decode('utf-8') for segment in entry.name.split('\xe2\x80\xae')[1:]: if segment == '': segment = '\xe2\x80\xad' segment = segment.decode('utf-8') for car in segment: new_name = car + new_name new_name = new_name.encode('utf-8') entry.setName(new_name)
Et puis quoi encore ?
On ne va pas rajouter du code (en peu moche, qui plus est) rien que pour ce ’tit salopiot ?
Sinon, on peut toujours rajouter un U+202D au début de chaque ligne, mais bon, ça ne serait pas super élégant…
Je préfère le blacklistage ou la suppression des caractères douteux.
Encore une fois, j’ai du mal à comprendre ce que tu cherches mais tu auras peut-être des réponses ici.
OK, je vais potasser ça.

Pylade a écrit :WTF!
Je croyais avoir blacklisté ce vilain petit canard…
Il y a un truc qui merde…
edit :
Il y a deux vilains petits canards, le premier n'était pas parfait.
c'là dit, il pourrait y en avoir un nouveau par jour
“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
#1425 Le 21/07/2010, à 20:10
- nany
Re : /* Topic des codeurs couche-tard [1] */
[…]
le n@nyl@nd a écrit :et de remettre en ordre les fichiers count et count10days.
Ah non, chez moi c’est « count_period » ; en effet, j’ai adapté le compteur pour qu’il puisse travailler avec n’importe que nom de fichier.
Désolé mais ma boule de cristal est cassée : je ne peux pas lire ton code.
le n@nyl@nd a écrit :Sinon, il faut savoir qu’il y a deux Р'tit B☢bot
qui trainent sur le forum (le TdCT est victime des deux) et je suis contre leur blacklistage car, jusqu’à preuve du contraire, ce ne sont pas des bots (AMHA
).
Ah, d’accord ! C’est donc pour ça. ^^
Ste perverse…
Et moi je suis pour leur blacklistage, ce ne sont que des faux-nez de la ’tite, tout comme Maurice, ils seront donc blacklistés, à juste titre. Et puis ils ne peuvent s’en prendre qu’à eux-mêmes ; ils mettent les scores en l’air.
En fait, tout individu ayant un caractère suspect dans son pseudo sera interdit de marquer des points, à partir de maintenant.
Ou à la rigueur, les caractères suspects seront supprimés.
Ah oui, je l’avais oublié le Maurice. Donc tu n’as pas tort après tout.
le n@nyl@nd a écrit :J’ai donc fait un petit truc pour retourner celui qui est en verlan (auquel cas il ne faut pas modifier la classe Entry) mais qui est plutôt moche et dont je ne suis pas sur du résultat dans le cas où le caractère est implanté au milieu de la chaine et même plusieurs fois.
try: entry = Entry(str(post.find('div','postleft').find('a')).split('>')[1].split('<')[0]) except: entry = Entry(str(post.find('div','postleft').find('strong')).split('>')[1].split('<')[0]) if '\xe2\x80\xae' in entry.name: new_name = entry.name.split('\xe2\x80\xae')[0] if new_name == '': new_name = '\xe2\x80\xad' new_name = new_name.decode('utf-8') for segment in entry.name.split('\xe2\x80\xae')[1:]: if segment == '': segment = '\xe2\x80\xad' segment = segment.decode('utf-8') for car in segment: new_name = car + new_name new_name = new_name.encode('utf-8') entry.setName(new_name)
Et puis quoi encore ?
On ne va pas rajouter du code (en peu moche, qui plus est) rien que pour ce ’tit salopiot ?
Je suis entièrement d’accord. C’est plus le côté challenge que les excentricités de la ’tite apportent qui m’attire, d’où mon petit bout de code à la va-vite. C’est juste histoire de se dire qu’on peut toujours résoudre le problème. Après, il n’y a aucune obligation de mettre la solution en production.
Sinon, on peut toujours rajouter un U+202D au début de chaque ligne, mais bon, ça ne serait pas super élégant…
J’y avais aussi pensé mais ce n’est effectivement pas élégant et puis ça ne change rien au problème des lignes de ces deux vilains petits canards (enfin surtout un).
Je préfère le blacklistage ou la suppression des caractères douteux.
[…]
Pour le blacklistage, il faudrait modifier la ligne
if entry.name not in ignoreList and (entry.date.points() is not 0): entries.addEntry(entry)
en
if entry.name not in ignoreList and ('\xe2\x80\xae' not in entry.name) and (entry.date.points() is not 0): entries.addEntry(entry)
Après, si tu as une liste de caractères douteux, tu es obligé de lancer une recherche de ceux-ci dans entry.name.
Pour la suppression, je t’ai donné la solution avec la classe Entry.
Dernière modification par le n@nyl@nd (Le 21/07/2010, à 20:12)
Hors ligne