00:00 <david`bgk> http://toastdriven.com/fresh/django-dash-2009/ qui est partant pour faire un sprint django ? :)
00:06 <ogrisel> demande a misc sur #python-fr
00:08 <david`bgk> ok
00:08 <david`bgk> tiens tarek tu as été pingué dans les commentaires de http://lucumr.pocoo.org/2009/3/2/std-stands-for-sleazy-tattered-and-dead
00:08 <haypo> tiens, je sais pas quoi présenter à Pycon FR cette année
00:08 <david`bgk> moi j'ai une petite idée mais il faut encore que j'y réfléchisse
00:09 <hard_shooter> plop
00:10 <hard_shooter> vous savez si je peux voir qu'un mail a deja ete lu avec imaplib ?
00:10 <ogrisel> david`bgk: haha
00:10 <ogrisel> david`bgk il va faire une presentation sur .... zope3
00:10 <haypo> gawel présente django et ccomb présente mod_python ?
00:10 <haypo> cool, ça va être drôle cette année
00:11 <ogrisel> hard_shooter: imaplib c'est la lib préférée de tarek
00:11 <hard_shooter> :D
00:12 <ogrisel> haypo: visiblement faut que tu fasses un tutoriel sur les "ascii decode error"
00:12 <ogrisel> le message passe pas :P
00:13 <haypo> rah putain
00:13 <haypo> j'ai tjr pas codé un bot pour ça :)
00:13 <haypo> ogrisel: python3 est la meilleure solution à ce problème
00:14 <haypo> mais pourquoi pas une conf' "python et unicode"
00:14 <ogrisel> oui je sais mais bon avant que django marche en python 3 tu vas en avoir des question IRC de noobs qui debarquent
00:14 <haypo> django parle unicode non ?
00:14 <ogrisel> ou plutot "python et charset"
00:14 <ogrisel> de maniere plus generale
00:15 <ogrisel> le gens ne savent pas ce que c'est qu'une chaine de characteres et un byte array
00:15 <ogrisel> django oui surement mais par contre il marche pas en python 3 si ?
00:16 <haypo> hum, il me semble que django tourne sur pypy
00:16 <haypo> pour python3, je ne sais pas
00:16 <ogrisel> c'est juste que beaucoup de debutants en python debarque parce qu'il commence par un projet web en django et decouvrer les pbm d'unicode le jour ou il parse un fichier texte qui vient d'un copier /coller depuis word ou outlook
00:16 <haypo> python2 décourage beaucoup des gens voulant utiliser unicoder partout
00:17 <haypo> oups, de gens* unicode*
00:17 <haypo> pour les exceptions par exemple, on ne peut pas stocker d'unicode dans Exception
00:17 <ogrisel> yep
00:17 <haypo> le message d'IOError est encodé dans la locale courante
00:18 <haypo> sys.stdout.write() ne parle pas unicode
00:18 <haypo> print parle parfois unicode, parfois non
00:18 <ogrisel> oué faut tuer la locale courante
00:19 <haypo> ogrisel: euh non, faut convertir manuellement en unicode en devinant le charset du message
00:19 <ogrisel> en meme temps pour IOError c'est pas sensé etre du contenu utilisateur, tu peux mettre que de l'ascii 7bits
00:20 <ogrisel> et catcher l'erreur et afficher un message traduit en unicode en utilisant la couche I18n de ton appli
00:20 <ogrisel> genre gettext
00:20 <haypo> bah, j'aime bien écrire genre : except IOError, err: print "Unable to open %s: %s" % (filename, err)
00:21 <tarek> david`bgk, ouai j'ai vu
00:21 <tarek> thx
00:21 <ogrisel> idem pour les entrée sortie genre stdout c'est "normal" de devoir encoder soit meme en son ame et conscience de developpeur dans l'encoding de ton choix
00:21 <tarek> ogrisel, imaplib ??
00:21 <ogrisel> t'avais pas joué avec a la grande epoque de CPSMailChéPlusQuoi ?
00:22 <haypo> ogrisel: bah non, print (càd print dans sys.stdout) supporte unicode normalement
00:23 <haypo> dans python3, print parle très bien unicode
00:23 <tarek> ogrisel, a si exact
00:23 <ogrisel> c'est vrai que ca peut paraitre naturelle d'encode automatiquement un objet unicode en 'utf-8' qd tu le passe a print
00:23 <tarek> hard_shooter, que t'arrives til
00:23 <hard_shooter> salut
00:23 <hard_shooter> euh
00:23 <ogrisel> mais bon un stdout posix c'est juste un flux de bytes
00:23 <hard_shooter> En fait jfais un ptit client imap
00:23 <hard_shooter> et j'aimerai afficher que les messages non lus
00:24 <ogrisel> personnes ne peut garantire que celui qui va le lire va naturellement le decoder en utf-8
00:24 <hard_shooter> simplement je vois pas comment faire
00:24 <hard_shooter> je pensais au flag \Seen
00:24 <ogrisel> hard_shooter: ca doit vraiment etre la requete de base du protocole imap non
00:25 <ogrisel> genre ne chopper que le mail non lus
00:25 <hard_shooter> oui ^^
00:25 <haypo> ogrisel: bah, normalement stdout est un terminal texte. si la sortie est redirigée, là ouais, ça pose problème :)
00:25 <tarek> hard_shooter, ouai c ca en gros
00:25 <hard_shooter> bah tout mes mails on le flag seen
00:25 <tarek> hard_shooter, j'ai un exemple dans mon bouquin blacn
00:25 <hard_shooter> alors que je les ai lu
00:25 <tarek> ben oui
00:25 <hard_shooter> erf
00:25 <hard_shooter> bah oui
00:25 <tarek> seen ca veut dire "vu"
00:25 <hard_shooter> oui
00:25 <hard_shooter> mais meme ceux pas lu en fait
00:25 <tarek> a ok
00:25 <ogrisel> stdout == flux d'octets
00:26 <ogrisel> y a pas de meta données sur ce que contients les octets
00:26 <tarek> hard_shooter, tten
00:26 <haypo> ah en fait, si la sortie part dans un pipe, stdout utilise ASCII
00:26 <ogrisel> genre la commande dvgrab elle pond du signal DV binaire sur stdout
00:26 <haypo> ogrisel: dans python, sys.stdout=fichier texte, sys.stdout.raw=fichier binaire
00:26 <ogrisel> ca sert a rien de l'afficher dans un terminal utf-8 :)
00:26 <hard_shooter> hmmm
00:26 <hard_shooter> en fait maintenant ca fonctionne...
00:27 <ogrisel> haypo: ah je savais pas ca
00:27 <hard_shooter> etrange
00:27 <haypo> ogrisel: oups, je voulais écrire dans *python3*
00:27 <ogrisel> haypo: mais la difference fichier en mode texte / mode binaire ca existe quand dans windows non ?
00:28 <tarek> hard_shooter,
00:28 <tarek> http://pastebin.com/me847e33
00:28 <tarek> c'est UNSEEN en fait
00:28 <haypo> ogrisel: dans python3, readline() renvoie une chaine "bytes" sur un fichier binaire et "unicode" sur un fichier texte
00:28 <tarek> hard_shooter,
00:28 <tarek> testé sur qmail
00:28 <haypo> dans python2, il faut utiliser codecs.open() pour avoir de vrais fichiers textes
00:28 <hard_shooter> bah
00:29 <ogrisel> tarek: ca resort du vieux script de debug de serveur qmail on dirait
00:29 <hard_shooter> j'ai recuperer les flags a la main
00:29 <ogrisel> tarek: t'as pas craché ton disque depuis tout ce temps ?
00:29 <haypo> ogrisel: bon en fait, python+unicode ne semble pas être hyper clair pour toi :)
00:29 <hard_shooter> et sur mes messages non lu j'ai pas unseen
00:29 <haypo> mais bon, je te comprend, le "problème" d'unicode est compliqué
00:29 <ogrisel> haypo: ok c'est bien de faire ca
00:29 <tarek> ogrisel, haha c'est lexemple à jour pour le chapitre 11 du livre eyrlles :)
00:29 <tarek> hard_shooter, c quoi ton serveur de mail ?
00:30 <hard_shooter> gmail ... :D
00:30 <ogrisel> sisi c'est clair pour moi haypo
00:30 <haypo> ogrisel: bon, va pour une conf' sur Unicode :)
00:30 <tarek> hard_shooter, il est imap rfc-compliant ?
00:30 <hard_shooter> j'en sais rien
00:30 <hard_shooter> par contre
00:30 <hard_shooter> c'est peut etre parce que je les ai lus
00:30 <hard_shooter> et que apres j'ai fais "Marquer comme non lu"
00:30 <tarek> ah mmm...
00:30 <tarek> c quoi ton client de mail ?
00:31 <hard_shooter> la c'est juste l'interface web
00:31 <tarek> c ptet marqué coté client
00:31 <tarek> en ajax ?
00:31 <hard_shooter> ouai c'est probable
00:31 <hard_shooter> ouai
00:31 <tarek> bon je sais pas
00:31 <ogrisel> haypo: c'est juste que le fait de dire si un fichier est binaire ou texte c'est juste celui qui l'interprete qui choisit
00:31 <hard_shooter> ca doit pas rajouter tout les tags
00:31 <hard_shooter> enfin maintenant ca marche
00:31 <tarek> mais mon script fonctionne bien avec qmail
00:31 <ogrisel> sur le filesysteme c'est le meme donnée
00:31 <ogrisel> s
00:31 <tarek> ca t'affiche les 5 derniers
00:32 <tarek> d'ailleurs
00:32 <ogrisel> bon apres c'est con d'essayer de decoder un mp3 avec le decodeur latin9
00:32 <tarek> bientot
00:32 <haypo> ogrisel: en python2, open(f, 'rb') vs open(f, 'r') change juste la manière dont les retours à la ligne sont lus sous windows
00:32 <tarek> with imap(.. :
00:32 <ogrisel> ah ok ca je savais pas
00:32 <haypo> mais read() va créer des chaînes 'str' dans les deux cas
00:32 <haypo> chaînes d'octets
00:33 <hard_shooter> bwarf chui debutant en python
00:33 <ogrisel> oui oui
00:33 <hard_shooter> enfin bon jfais du java plus souvent et que pendant mes etudes...
00:33 <ogrisel> faut decoder apres si tu veux faire un objet unicode python
00:34 <haypo> vaut mieux utiliser codecs.open()
00:34 <haypo> parce que pour gérer les BOM (genre pour UTF-16/32), c'est chiant le faire manuellement :-p
00:36 <ogrisel> ah ok tu prends en comptes les BOMs
00:36 <haypo> bah les BOM, c'est une des joies d'unicode :)
00:37 <haypo> quand tu mélanges des chaînes d'octets, tu peux avoir plusieurs BOM (ce qui est bizzare est sûrement source de problèmes ;-))
00:37 <ogrisel> effectivement dans ce cas tu peux faire la distinctions entre "fichier texte" et "fichier binaire"
00:37 <haypo> le problème c'est surtout de croire qu'un fichier binaire est un fichier texte :)
00:38 <ogrisel> masi bon y a pas de BOMs dans le bon d'une reponse HTTP ou d'un POST par exemple
00:38 <haypo> ce qu'on essaye de nous faire croire depuis trop longtemps !
00:38 <ogrisel> oui je suis d'accor
00:38 <ogrisel> d
00:38 <hard_shooter> euh tarek quand tu fais imap_object c'est quoi ?
00:38 <ogrisel> c'est ca le vrai pbm :)
00:39 <hard_shooter> vu que t'as pas d'objet imap_object
00:39 <haypo> python2 n'aime pas, le type "chaîne d'octets" s'appelle "str" comme "character STRing", ça prête à confusion
00:39 <haypo> et python2 passe à son temps à faire des conversions implicites entre octets et caractères
00:40 <haypo> python3 a rétabli l'ordre juste : plus de conversion implicite
00:40 <haypo> bytes+str lance une exception
00:40 <haypo> bytes == str donne False
00:40 <ogrisel> oui je suis d'accord
00:40 <haypo> bytes < str lance aussi une exception
00:40 <tarek> hard_shooter, s/imap_object/imap/
00:40 <ogrisel> python 3 marche comme java et c'est beacoup plus explicite
00:41 <hard_shooter> c'est une erreur ?
00:41 <tarek> hard_shooter, oui. c chelou
00:41 <ogrisel> par contre l'API java pour lire des fichier est vraiment pourrie
00:41 <hard_shooter> ok ;)
00:41 <haypo> en fait, la conf', c'est vite vu : 1ère partie "python2 c'est pourri, y'a tous ces problèmes : ..."; 2e partie : "python3 est arrivé..."
00:41 <tarek> hard_shooter, ca a été testé. ca doit etre une typo de copier coller
00:41 <tarek> ogrisel, tu peux lire des fichiers en java ??
00:41 <ogrisel> vaut mieux pas
00:41 <haypo> tarek: depuis la version 6 ouais
00:42 <haypo> ogrisel: qu'est-ce qu'elle a l'API Java ?
00:42 <ogrisel> faut faire des bufferfilereader sur des fileinputstreams
00:42 <tarek> hehe
00:42 <haypo> dans python3, en gros y'a deux niveaux : fichiers binaires et fichiers texte
00:42 <haypo> un fichier texte repose forcément sur un fichier binaire
00:43 <haypo> genre sys.stdout repose sur sys.stdout.raw
00:43 <haypo> et on peut écrire directement dans sys.stdout.raw si on veut écrire des *octets*
00:43 <ogrisel> c'est un poil lourdingue juste pour faire un open(filepath).read().decode(filecodec)
00:44 <ogrisel> haypo: ca me va bien cette API
00:44 <haypo> Antoine Pitrou et Benjamin Peterson ont d'ailleurs réécrit la nouvelle API "io" de Python3 en C
00:44 <haypo> avant c'était tout en Python et donc très lent
00:44 <ogrisel> oui j'ai vu
00:44 <haypo> Antoine Pitrou est très bon, il fait parti de l'équipe de développement de Python
00:44 <haypo> vous saviez qu'il est sur Paris ?
00:44 <ogrisel> ah bas non
00:45 <haypo> faut l'obliger à donner un conf' :)
00:45 <ogrisel> faudrait l'inviter a parler de ca
00:45 <ogrisel> clair
00:45 <ogrisel> tu le connais ?
00:45 <haypo> "tu fais quoi mercredi prochain ? j'ai des amis qui viennent manger"
00:45 <haypo> ogrisel: depuis pas longtemps ouais
00:45 <haypo> il est sympa
00:45 <ogrisel> ah bas hesite pas a lui proposer alors
00:46 <ogrisel> bon je vais lire http://unicode.org/faq/utf_bom.html#BOM
00:46 <haypo> :)
00:51 <ogrisel> ok c'est fait je vais retourner lire mon papier les graph transformer networks
00:51 <ogrisel> bonne nuit
00:53 <haypo> je travaille antoine
00:53 <haypo> déjà, il m'a dit qu'il vient ;)
00:55 <haypo> la conf' de No est en ligne ! http://ftp.heanet.ie/mirrors/fosdem-video/2009/lightningtalks/pyroom.xvid.avi
00:55 <haypo> (la mienne aussi /o\)
00:58 <haypo> houlà, le son est horrible
01:00 <ogrisel> c'est quoi ton url ?
01:02 <haypo> ogrisel: http://ftp.heanet.ie/mirrors/fosdem-video/2009/maintracks/fusil.xvid.avi ? le son est correct sur "ma" vidéo
01:02 <haypo> par contre, je déteste me voir en vidéo :-p
01:02 <ogrisel> ok
01:03 <ogrisel> haha trop bon le 3eme commentaire de http://it.slashdot.org/article.pl?sid=09/03/03/1951222
01:05 <tarek> haypo, tu stresses un peu au début, ca s'entends dans la voix ;)
01:05 <haypo> oui, beaucoup même
01:08 <tarek> ca déchire la qualité
01:08 <haypo> la vidéo est toute petite
01:08 <haypo> en Ko je veux dire
01:10 <haypo> no a super bien géré son temps, la présentation est fluide
01:10 <haypo> par contre, j'ai toujours pas compris à quoi sert pyroom :-D
01:10 <haypo> c'est vim en moins bien ?! :)
01:13 <haypo> bonne nuit, j'ai plus de batterie /o\
01:16 <ogrisel> héhé
01:16 <ogrisel> bonne nuit haypo
01:18 <ccomb> 'tain, y a eu une coupure de net
01:18 <ccomb> avec nouveau firmware de freebox on dirait
01:19 <ccomb> ca y est ils ont déjà voté l'hadopi et mis en application en moins d'1h
01:19 <ccomb> sont trop forts :)
01:22 <RAGE2000> ;)
01:27 <tarek> ogrisel, ping
01:34 <hard_shooter> tarek: a partir de la ligne 81 c'est quoi ? c'est du code exécuté avant le main ?
01:38 <tarek> avant le main ?
01:39 <hard_shooter> la fonction main()
01:40 <tarek> j'ai pas compris
01:40 <tarek> main c'est la fonction principale
01:40 <hard_shooter> oui
01:40 <hard_shooter> elle est exécutée quand tu lance le programme
01:40 <hard_shooter> mais pourquoi ya quelque chose qui commence par un if en dessous ?
01:41 <hard_shooter> if __name__ == '__main__':
01:42 <tarek> a ca
01:42 <tarek> si tu fais:
01:42 <tarek> python truc.py
01:43 <tarek> il mets dans __name__ la valeur __main__
01:43 <tarek> mais pas si tu importes
01:43 <hard_shooter> et donc
01:43 <hard_shooter> ce bout de code
01:43 <tarek> donc ce "if" permet de s'assurer que ce bout de code est lancé
01:43 <hard_shooter> il fait la verif avant d'executé le main ?
01:44 <hard_shooter> ah nan pfff
01:44 <tarek> oui
01:44 <hard_shooter> ouai c'est bon
01:45 <hard_shooter> merci ;)
01:46 <hard_shooter> c'est a cause du java...
01:46 <hard_shooter> le main s'execute en premier et tu peux pas avoir de code qui traine comme ca...
07:14 <Ohan> o/
08:00 <kujiu> bonjour
10:12 <gawel> matin café
10:12 <jpcw> matin café thé
10:14 <kujiu> matin
10:19 <haypo> je vois la dépêche de yotaff en modération
10:19 <haypo> y'aurait pas moyen de mettre une url vers les anciennes éditions ?
10:19 <gawel> non
10:19 <yotaff> non
10:19 <yotaff> les sites n'existent plus
10:19 <haypo> pourquoi, le site web n'existe plus ?
10:20 <haypo> ah merde, c'est nul ça !
10:20 <gawel> changement de serveur
10:20 <haypo> et si on veut revoir les vidéos des anciennes éditions ?
10:20 <gawel> sont chez moi les autres
10:20 <gawel> dl.afpy.org
10:20 <haypo> je vois 2008, mais pas 2007
10:20 <gawel> les 2007 sont sur google vids
10:21 <haypo> c'est compliqué de remonter le site web des anciennes éditions ?
10:21 <gawel> peut-être je les avait stockée. quelquepart, je regarderais
10:21 <haypo> j'trouve ça très dommage qu'ils soient plus en ligne :-(
10:21 <gawel> c'est surtout que c'est un plone, et que notre pauvre serv il va pas aimer
10:22 <haypo> bah, le minimum serait le programme des années précédentes avec l'url des vidéos et des supports (diaporamas)
10:23 <gawel> demandes du temps. on en trouve déjà pas pour cette anée :p
10:23 <haypo> le temps ça sera trouve, c'est une histoire de centres d'intérêts :)
10:23 <gawel> aussi
10:23 <haypo> je comprend que vous voulez d'abord pousser l'édition 2009 :)
11:51 <haypo> yotaff: dans ta dépêche, tu as écrit "Inscription : sessions@pycon.fr"
11:51 <haypo> juste après "En cas de problème, vous pouvez également proposer votre session par e-mail à sessions@pycon.fr ou sur http://pycon.fr/sessions (...)"
11:51 <haypo> ça veut dire que les orateurs doivent s'incrire par courriel ou les visiteurs aussi ?
11:56 <haypo> ogrisel, gawel, yotaff : c'est quoi cette histoier d'inscription pour Pycon FR ?
11:56 <haypo> qui doit s'inscrire ? ce n'est pas clair
11:58 <yotaff> ca parle de sessions, et dans l'email y'a sessions
11:58 <yotaff> donc je dirais pour inscrire les sessions :)
11:58 <yotaff> et le titre c'est d'ailleurs appel à orateurs :)
11:58 <haypo> tu répêtes 3 fois l'email sessions@...
11:58 <haypo> <ul><li>Inscription : <a href="http://www.pycon.fr">http://www.pycon.fr</a>
11:59 <haypo> yotaff: ^^ c'est l'inscription de qui ?
11:59 <haypo> pour les visteurs, l'inscription est obligatoire / optionnelle / conseillée ?
12:01 <yotaff> inscription des SESSIONS
12:02 <haypo> yotaff: pour les sponsors, "logo sur la home du site web de la conférence" : je comprend pas, page d'accueil du site web ou page d'une conférence en particulier ?
12:02 <haypo> ça serait pas "logo sur la home du site web" tout court ?
12:02 <yotaff> s/de la conférence/Pycon France/
12:10 <haypo> ok, j'ai adapté le texte
12:10 <haypo> ces terroristes de modérateur ont mis l'agenda du libre comme 1er lien !
12:10 <haypo> j'ai remis Pycon France comme 1er lien, non mais
12:12 <yotaff> surtout que j'ai pas mis d'annonce sur agenda du libre
12:12 <haypo> http://agendadulibre.org/?year=2009&month=5®ion=all
12:12 <yotaff> donc c'est un peu con non ?
12:12 <haypo> oui, j'allais le dire :)
12:12 <yotaff> je le fais ce soir
12:13 <yotaff> maintenant faut trouver les bons endroits pour buzzer
12:13 <yotaff> genre ml blender, gimp, de dev...
12:23 <haypo> j'ai retouché un peu la dépêche, elle est très bien maintenant :)
12:25 <yotaff> ahaha
12:25 <yotaff> ok cool
12:57 <No`> salut l'afpy
22:20 <haypo:#afpy> ccomb: t'abuses, tu n'as pas parlé de cherrypy, Karrigell, juno, CubicWeb, nagare, web2py, Turbo Gears dans ta dépêche linuxfr !
22:20 <haypo:#afpy> prochaine fois, n'oublie pas de citer les 349340 frameworks
22:21 <haypo:#afpy> d'ailleurs, n'oublie pas de parler celui que je compte coder la semaine prochaine qui est super trop bien car c'est moi qui l'ait écrit ;-)
22:24 <gawel> le scoop de l'année: haypo se lance dans le web
22:25 <haypo> gawel: désolé, j'ai déjà prévu de vendre les photos de mon bébé à Closer
22:25 <haypo> il sera codé en python3, 100% unicode, super trop bien et tout
22:26 <haypo> mince, no n'est plus là
22:26 <haypo> j'peux pas lui poser des questions importantes sur PyRoom
22:49 <haypo> tchoup, j'ai posté ma conf' unicode dans le tube
22:49 <haypo> alors, on croulle pas trop sous les propositions de conf' ?