08:21 < kujiu> bonjour
08:35 < kujiu> salut lgodard
08:35 < ogrisel> matin café
08:35 < kujiu> j'ai aussi du thé pour ceux qui en veulent :p
09:07 < feth> bonjour
09:07 < feth> kujiu: Thé Pu Er, 172 rue de Charonne, Paris XIe, France, Terre, s'il te plait
09:07 < feth> (une petite tasse)
09:08 < kujiu> :)
09:09 < kujiu> /dcc send feth tasse-de-the
09:10 < feth> pff, jsuis mal NATé, ça passe pas.
09:10 < kujiu> c'est bien dommage :/
09:13 < nfroidure> hello
09:14 < nfroidure> Je suis le blog de david`bgk sur lequel on conseille python
09:14 < nfroidure> (slt david)
09:14 < feth> bonjour. moi je suis un utilisateur d'irc
09:14 < nfroidure> ?
09:15 < feth> rien, c'est nul. jvais me taire et me terrer
09:15 < romain> non je trouvais la réplique très bien
09:16 < nfroidure> En terme d'accueil c'est tout de même moyen...
09:16 < nfroidure> Mais bon, je m'arrête pas à ça.
09:16 < nfroidure> Bref, je lis un tuto sur Python pour voir si ça me correspond
09:16 < nfroidure> Et pour pas mourrir idiot
09:17 < nfroidure> Du coup, j'ai quelques questions
09:17 < feth> je crois qu'il faut pas hésiter à poser des questions
09:17 < nfroidure> Déjà, est-ce que ce tuto vaut qqchose :
09:17 < nfroidure> http://lfe.developpez.com/tutoriel/python/node8.php
09:18 < nfroidure> Ensuite, niveau perf, que vaut python par rapport à PHP ?
09:19 < romain> c'est pas trop la même utilité
09:19 < feth> vaste champ
09:19 < feth> (c'est vraiment Saite Bench aujourd'hui)
09:19 < feth> (sainte)
09:19 < romain> mais si tu hésites entre apprendre le PHP et le Python, n'hésite plus
09:20 < misc> on noteras que les pythonneux évitent de reconnaitre que python est peut etre plus lent que php
09:20 < nfroidure> Je connais PHP depuis longtemps, mais bon, je sais qu'un jour je devrait passer à un autre langage plus propre
09:21 < misc> pourquoi "tu devrait" ?
09:21 < misc> tu peut aussi faire du php plus propre
09:21 < nfroidure> :)
09:21 < romain> misc: on notera aussi que le choix d'un langage ne se limite pas uniquement aux perfs, et à supposer que Python soit plus lent que PHP, c'est pas suffisant pour pencher vers PHP
09:21 < misc> la propreté, c'est quand même assez indépendant du language
09:22 < romain> misc: faire du PHP propre, c'est faire du code qui serait dégueulasse dans un autre langage ? :)
09:22 < nfroidure> ma problématique, c'est du code en prod sur un serveur http, donc, la perf, ça compte bcp
09:22 < nfroidure> Mon CMS a 3 ans et je vais certainement faire une refonte complète du code
09:24 < nfroidure> Le problème de PHP, c'est que c'est que pour le web
09:24 < romain> pas nécessairement
09:25 < misc> je connait aucun language qui soit "pour tout"
09:25 < misc> personne sain d'esprit va faire des drivers en python
09:25 < misc> et personne sain d'esprit va faire un cms en C
09:26 < nfroidure> C'est sûr, mais bon, avec Python, si j'ai bien compris, on peut faire de interface utilisateur
09:27 < feth> oh que oui
09:27 < misc> oui
09:27 < nfroidure> Avec PHP, c'est pas possible (ou alors, j'ai loupé le coche)
09:28 < misc> avec php-gtk, mais bon, c'est pas trop prévu pour
09:28 < nfroidure> En gros, ma problématique, c'est comme je veux refondre mon CMS, je préfèrerai trouver un langage qui me permette d'accélérer mon développement et de faire le lien avec d'autres applications.
09:29 < romain> misc: c'est prévu pour quoi php-gtk alors, si c'est pas pour faire des interfaces graphiques ?
09:29 < feth> twisted, django...
09:29 < nfroidure> Après, bien-sûr, avoir des perfs potables et pouvoir utiliser quelques libs similaire à PHP (simpleXML, entête HTTP, base de donnée)
09:29 < misc> romain: c'est un puissant outil de troll :)
09:30 < misc> feth: ah ah twisted pour un débutant
09:30 < feth> nfroidure: tu n'aurais pas de problème de perfs
09:30 < romain> misc: twisted c'est un langage dans un langage :)
09:30 < nfroidure> Pour le moment, non, mais je prévois pour la suite.
09:30 < misc> romain: twisted, c'est un etat d'esprit
09:32 < nfroidure> J'ai pensé à Java (que je connais un peu et qui semble aller plus vite que PHP car précompilé), Ruby et Python. Je prospecte donc actuellement pour choisir le meilleur.
09:32 < misc> pas perl ?
09:32 < romain> niveau perfs tu n'as pas de soucis à te faire, ils sont tous aussi lents les uns que les autres
09:32 < nfroidure> Ce qui me choque dans Python, c'est que c'est pas full POO genre pourquoi len(a) et pas a.len ?
09:33 < romain> ouais mais en python les méthodes sont des objets
09:33 < feth> c'est pas vrai, java bien programmé ça va très vite
09:33 < feth> (au moins c'est threadé
09:33 < misc> nfroidure: pour pas casser la compatibilité
09:33 < feth> nfroidure: tu fais un site à forte charge ?
09:34 < nfroidure> Après, on a pas de truc du genre var a:String (chose qui me fait penser à quitter PHP), mais il est dit que le language est typé "dynamiquemnent'.
09:34 < misc> nfroidure: c'est expliqué sur le site de python, je croit que c'est corrigé en 3.0
09:34 < nfroidure> Or si je fais a=1 puis a='truc' ca marche
09:34 < misc> ben pourquoi ça devrait pas marché ?
09:34 < romain> déjà quand tu sais qu'en PHP "0" == 0, tu te dis que c'est pas la peine
09:35 < nfroidure> feth : en fait, mon CMS est multisite, donc c'est plein de petits sites de PME qui tournent sur le même code du même serveur.
09:35 < nfroidure> misc : j'utilise ActionScript pour mes dev flash et ça ne marche pas à la compilation
09:35 < nfroidure> Je me dit que c'est grâce à ça que l'action script est si rapide.
09:36 < feth> nfroidure: je crois que tu connais pas du tout Python, et son esthétique, et que tu es déjà en train de discuter avec des médaillés du troll un vendredi
09:36 < feth> nfroidure: spa la meilleure approche :)
09:36 < romain> et t'as pas pensé genre à avoir un serveur par site et à les faire communiquer entre eux avec une application en twisted modulaire par XML-RPC que t'aurrais intelligement appellé nucentral ?
09:36 < glooze> salut kes dompteurs
09:36 < glooze> *les
09:36 < misc> romain: ça sent le bloatware :)
09:37 < nfroidure> romain : j'ai un serveur virtuel par domaine, mais le CMS est dans le path PHP commun
09:38 < misc> nfroidure: y a des chances, oui, mais l'idée c'est que tu fait un compromis entre la souplesse du language au runtime et sa vitesse
09:38 < nfroidure> Après, j'écrase les fichiers avec des fichiers personnalisés quand quelquechose change sur un des sites
09:38 < misc> nfroidure: à ce niveau la, java me semble ce que tu voudrait
09:38 < feth> nfroidure: ça me semble un design responsable. en POO on n'écrase pas, on subclasse normalement, mais bon
09:38 < misc> c'est ce que fait RT
09:40 < nfroidure> feth : l'idée, c'est justement de pas charger le PHP du CMS dont je me sert pas
09:41 < nfroidure> Sachant que j'utilise cela surtout pour les TPL, les fichiers de lang (qui sont chargés pour chaque path) et autres fichiers de conf.
09:41 < feth> oui, je comprends ça, s'agissant de PHP
09:41 < feth> http://www.djangoproject.com/
09:42 < nfroidure> Du coup, je peux forker le CMS et utiliser le fork pour quelques sites seulement en ajoutant un path
09:42 < No`> salut les afpystes
09:43 < nfroidure> Existe-t-il un système similaire avec Python (de path) et donc "d'include" comme en PHP ?
09:44 < No`> "import"
09:44 < nfroidure> Ensuite, niveau mise en oeuvre, je vois qu'il y a pas mal de frameworks. Est-ce obligé d'utiliser un framework python pour éxecuter un fichier Python pour servir du code ou existe-t-il un module Apache pour Python qui s'installe simplement.
09:45 < misc> y a mod-python et psp
09:45 < glooze> mod_wsgi :p
09:45 < No`> y'a mod_wsgi qui a le vent en poupe aussi
09:45 < No`> ah zut pas assez rapide
09:45 < nfroidure> No` : C'est donc le système des modules comme je le voit sur le tuto.
09:45 < glooze> ben parait d'après un des articles python de ccomb que c'est très performant
09:45 < glooze> :p
09:45 < glooze> Je fais confiance, moi
09:46 < nfroidure> Vosu dîtes que Pyhon est peut-être plus lent par rapport à PHP, même compilé ?
09:48 < nfroidure> D'ailleurs, est-ce qu'on peut compiler du code quand on l'utilise pour générer des pages web ?
09:48 < No`> ça se compile pas vraiment, python
09:49 < nfroidure> C'est du Bytecode comme Java
09:49 < No`> sauf que tu ne "compiles pas" au sens propre
09:50 < Ohan> nfroidure, j'ai pas lu toute la conversation, mais juste deux ou trois trucs: python au moins aussi rapide que php a ce que j'en sais
09:50 < nfroidure> Mais ça prend du temps de pré-compiler, donc si on utilise des .pyc, ça sert le contenu plus vite ?
09:50 < feth> Si tu as des problèmes de perfs il faut pas faire de cgi-like
09:50 < feth> nfroidure: non, tout pareil, les .pyc sont générés la premiere fois
09:51 < Ohan> nfroidure, et pour les tutos, je te conseille l'excellent bouquin "think like a computer scientist"
09:51 < No`> et ils ne sont pas regénérés, à moins que le code .py change
09:51 < nfroidure> J'ai pas vraiment de problème de perf, mais bon, si je peux mettre plus de sites sur un serveur grâce à l'utilisation d'un autre langage... why not.
09:52 < nfroidure> No`, ok, c'est un genre de cache.
09:52 < Ohan> http://www.greenteapress.com/thinkpython/thinkpython.html
09:52 < No`> les perfs ne sont pas uniquement liées au langage de prog
09:52 < ccomb> Python plus lent que PHP ?
09:52 < ccomb> ça va pas non ?
09:52 < glooze> ccomb, mod_wsgi t'en penses quoi ? :D
09:52 < ccomb> http://shootout.alioth.debian.org
09:52 < ccomb> entre 1 et 3 fois plus rapide que PHP
09:52 < No`> optimisation des requêtes en base, utilisation de cache, pages HTML allégées, JS et CSS compressées, etc
09:53 < ccomb> glooze: mod_wsgi on retrouve certains des inconvénients de mod_python
09:53 < ccomb> je préfère un serveur séparé à la Paste
09:53 < Ohan> ccomb, faudra que je teste paste a l'occase, je suis en mod_wsgi sur apache pour le moment
09:53 < Ohan> faut dire que mon site a pas beaucoup de traffic, donc pas besoin d'overkill ;)
09:54 < ccomb> mais c'est peut-être ça qui va offrir Python pour le grand public en mutualisé
09:54 < nfroidure> No` : Tout ça, je le fait déjà :) moi aussi je suis abonné à performance.survol.fr ;)
09:54 < glooze> ahah, moi je connais l'auteur, c'mieux :p
09:54 < ccomb> http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=python&lang2=php&box=1
09:56 < Ohan> ccomb, je comprends rien a ton lien
09:56 < nfroidure> Comme je l'ai dit, niveau perf, j'ai pas à me plaindre, mais bon, ma boîte est jeune est j'héberge qu'une cinquantaine de sites, mais mon objectif serait d'en héberger bcp plus sans avoir de pb de perf, et je sais qu'il vaut mieux prendre les devants dans ce genre de cas.
09:56 < Ohan> comment ca se lit?
09:56 < ccomb> ils ont changé leur présentation, avant c'était plus facile à lire
09:57 < ccomb> tiens, je crois pas qu'il y avait la taille des sources avant
09:58 < nfroidure> J'avais trouvé ce lien : http://shootout.alioth.debian.org/
09:58 < romain> tu l'as trouvé en lisant ccomb y a cinq minutes ?
09:59 < nfroidure> Sur un troll sur la lenteur de Python sur developpez.com
09:59 < nfroidure> ;)
09:59 < romain> c'est super comme référence developpez.com...
10:00 < nfroidure> romain : en même temps, je m'intéresse à Python depuis deux jours, donc, je connais pas (encore) les références.
10:01 < ccomb> Ohan: dans tous les tests de vitesse (de ce bench) sauf un, Python est 1 à 3 fois plus rapide que PHP
10:01 < feth> nfroidure: et t'es déjà sur le channel #afpy !
10:01 < ccomb> time = 1 jusqu'à 1/3
10:01 < ccomb> ça prend aussi moins de mémoire pour 7 tests sur 10
10:01 < Ohan> ccomb, c'est ce que j'avais entendu dire ailleurs: python plus rapide
10:02 < ccomb> et le code source est plus petit pour tous les tests sauf un
10:02 < nfroidure> feth : les tutos, c'est bien, mais j'aime bien aller sur les chans irc pour avoir des réponses plus immédiates.
10:03 < Ohan> nfroidure, ca se dit pas "plus immédiate" :D
10:03 < Ohan> mais c'est clair et net que les salons ircs, c'est une belle invention
10:03 < nfroidure> C'est sûr qu'il y a des choses sympa dans Python niveau conceptuel, et pourtant, j'en suis qu'à la page 6 dudit tuto.
10:04 < Ohan> au cas ou tu l'aurais pas vu:
10:04 < Ohan> http://www.greenteapress.com/thinkpython/thinkpython.html
10:05 < Ohan> excellent bouquin (vraiment excellent)
10:05 < Ohan> et gratuit
10:05 < feth> nfroidure: ah non, je critique pas, c'est juste que je t'aurais attendu sur #python-fr :)
10:05 < nfroidure> Ca me rapelle un certain think Java :)
10:06 < nfroidure> feth : j'y suis allé, mais j'étais seul :D
10:08 < nfroidure> En tout cas, malgré un abord froid, la communauté fr a l'air cool.
10:09 < nfroidure> Je continue ma lecture et je laisse ouvert pour ouvrir un nouveau troll en cas d'autre question ;)
10:09 < feth> nfroidure: froid, eh, j'ai fait une blagueu
10:10 < Ohan> haha, feth, tu sors, t'as fait peur à un nouveau
10:10 < Ohan> honte sur toi, et que la malédiction de guido te suive, que le cul te gratte, et que les bras te raccourcissent!!!
10:12 < nfroidure> Je viens d'avoir ma réponse avec sys.path
10:12 < feth> Ohan: grbmlm
10:13 < nfroidure> Sinon, pour vous permettre de troller pendant que je lis, j'ai lu quelquepart que le dév de C++ aurait dit en voyant python qu'il avait perdu son temps et qu'il aurait du inventer python, c'est vrai ou c'est de la propagande ?
10:13 < Ohan> c'est peut-être de la vraie propagande!
10:13 < Ohan> perso j'en sais rien, et que ca soit vrai ou pas, ca m'en touche une sans faire bouger l'autre
10:14 < Ohan> (florilège d'expressions ce matin, je suis en forme)
10:14 < romain> je pense que l'objectif de bjarne stroustrump n'était pas le même que celui de python
10:14 < david`bgk> hello
10:14 < Ohan> lut david`bgk
10:14 < nfroidure> lut david`bgk
10:21 < feth> je pense que cpp c'est l'avenir, c'est flexible grace aux templates dont la syntaxe est lumineuse
10:21 < feth> en plus j'adore écrire un header qavec la meme chose que dans le source
10:21 < Ohan> HAHA
10:21 < Ohan> tu resors
10:21 < Ohan> ressors même
10:21 < feth> oh eh
10:21 < Ohan> ressort?
10:22 [#] feth boing
10:22 < Ohan> ressors
10:22 < romain> feth: le fait de définir la classe dans un header n'est pas un mal
10:22 < feth> oh, j'en ai ferré un gros, faut mouliner doucement
10:23 < romain> on en parlera à midi :)
10:23 < feth> Non et puis bon, ça compile vite
10:23 < feth> à la piscine ?
10:24 [#] feth a cramé son cher powerbook en compilant du cpp
10:24 < No`> pinaise, il commence fort ce vendredi
10:24 < romain> heu non, je vais éviter de tomber davantage malade
10:24 < Ohan> No`, pinaise, mais t'avais raison! c'est le troll-day le vendredi !
10:24 < romain> bah tant pis, tu resteras dans l'ignorance :)
10:27 < No`> allez, j'me lance
10:27 < No`> cpp, c'est dépassé, BASIC, c'est l'avenir
10:28 < romain> c'est nul comme troll
10:29 < Ohan> c'est un troll mort-né
10:30 < Ohan> j'ai mieux: django ca poutre quand même, par rapport a zope
10:32 < No`> Ohan: rhô, t'a fait quitté ccomb
10:53 < ccomb> nfroidure: si tu retrouves la source de l'info, fait circuler :)
10:54 < misc> faut reconnaitre que sans c++ et tout ce qu'il a apporté aussi bien en terme de popularisation de la poo qu'en terme de nouveauté à confronter au monde réel, le python n'aurait surement pas eu la même tronche
10:55 < misc> ( et je parle même pas des bénéfices apportés en terme de logiciel, et de rapidité )
10:55 < No`> misc: tu veux dire... qu'on aurait eu des accolades ?
10:55 < misc> ( si j'avais envie de troller, je dirait même que c++ fut le premier pas vers la démocratisation de l'informatique )
10:55 < No`> (araaaaaggggrhhhhrrrr)
10:55 < romain> No`: en gros t'as pas compris ce que misc a dit
10:56 < romain> misc: l'intérêt du C++ c'est de faire de l'objet tout en restant un minimum bas niveau et compatible avec le C, et permet donc l'exploitation de libs en C
10:57 < misc> romain: comme python avec ctypes, sauf si rester bas niveau est un but en soi et pas un moyen
10:57 < No`> romain: j'suis pas programmé pour comprendre les gens qui traînent ici
10:57 < No`> :p
10:57 < nfroidure> http://www.biologeek.com/python/pourquoi-programmer-en-python/#c33024
10:58 < feth> traîner, tout de suite
10:58 < feth> on peut inclure de l'asm dans un programme Python ?
10:59 < misc> directement ?
10:59 < feth> misc: c'est ma question, oui, parce que je sais que sinon on peut
10:59 < nfroidure> ccomb : cf ^
10:59 < misc> feth: l'inverse est vrai, mais
11:00 < glooze> de toute façon vim et emacs c'est aussi pourri l'un que l'autre
11:00 < glooze> rien de mieux qu'eclipse
11:00 < misc> feth: cf pyastra
11:02 < feth> misc: ah ouais c'est énorme ça. mais c'est pas ça :)
11:02 < misc> feth: toady a sans doute la réponse à ta question, en fait, car il a parlé d'un truc comme ça
11:03 < feth> il est trop loin et il a son cax
11:03 < misc> feth: il est sur irc/jabber
11:04 < feth> misc: oui oui t'inquiete
11:05 < misc> feth: enfin je croit que c'est dans un clone de piviz regarde sur son blog
11:12 < feth> PyInline
11:17 < nfroidure> Petit doute : quand on utilise Python pour le web, on utilise pas Apache ?
11:17 < misc> pas forcement
11:17 < misc> moi, j'utilise nginx et lighttpd :)
11:18 < nfroidure> Je suis sur http://webpy.org/tutorial3.en
11:18 < nfroidure> On y lit ça : "You now have your web.py application running a real web server on your computer."
11:20 < RAGE2000> ouai t'as pas mal de framework python qui font tourner leur propre serveur d'application et ensuite tu link avec un serveur http (apache, ngnix, etc ...) en proxy sur le serveur d'appli
11:22 < nfroidure> Tout ce qui est url rewriting est relégué au script python.
11:22 < RAGE2000> ca depend tu fais comme tu veux
11:22 < nfroidure> A chaque changement dans le script, il faut arrêter et rédémarrer le serveur
11:24 < nfroidure> En revanche, on charge que ce qui est nécessaire, c'est pas comme les mods PHP qui sont chargés même si toutes les applis les utilisent pas
11:24 < RAGE2000> ba apres c'est ton appli python qui gere les import
11:24 < gawel> ccomb: ping
11:25 < gawel> enfin tenis de table
11:25 < misc> mais les mods php sont de toute façon dans la partie partagé de apache
11:25 < misc> donc ils sont chargés une fois
11:25 < misc> je sais pas comment ça se passe avec mod_python, ça doit être pareil si tu as un intepreteur
11:26 < misc> encore que, en mod_prefork, vu que les modules python sont chargés dynamiquement, ils sont pas forcement partagés entre tout les process
11:26 < nfroidure> Qu'en-est-il des modules Python ? On peut mettre des modules dans une mémoire qui serai partagées par tous les sites ?
11:27 < nfroidure> Ca serait l'idéal au vu de l'architecture de mon CMS.
11:28 < nfroidure> A moins que je supprime tous les virtualhost et que j'utilise les nom de domaine comme identifiants pour charger les configuration des sites.
11:29 < misc> nfroidure: en fait, avant d'arriver la, faut voir l'archi de déploiment que tu veut mettre
11:30 < misc> car tu as mod_python, le fastcgi et consort, etc
11:30 < nfroidure> Après, le fait que les frameworks créer leur propre serveur HTTP, faut bien vérifier que les protocoles soient bien supportés car implémenter HTTP ça nécessite de la rigeur quand même.
11:30 < nfroidure> mod_python, c'est utiliser Python comme PHP ?
11:30 < misc> non
11:30 < misc> ( et oui )
11:30 < nfroidure> :/
11:31 < misc> mod_python, c'est mettre python dans apache
11:31 < misc> ensuite, soit tu t'en sert dans un mode à la php avec des page, soit tu mets des applis compéltes
11:31 < misc> complétes
11:32 < nfroidure> Bah, je me dit que si Python peut faire tout le boulot et bien (mais ça dépend des libs, je supposes), ça vaut ptêt pas le coup de garder Apache (sauf pour le contenu static).
11:33 < nfroidure> En fait, j'utilise PHP avec un seul fichier index.php qui est executé pour toutes les pages avec un modèle MVC
11:34 < nfroidure> Ca revient à une appli ?
11:34 < nfroidure> Après faut voir si Apache est pas plus rapide pour ce qui est de l gestion de la charge, du HTTP etc..
11:35 < misc> je pense que tu devrait garder apache pour le moment :)
11:35 < misc> ( ou du moins garder un serveur conventionnel )
11:36 < ccomb> gawel
11:38 < nfroidure> Pour la perf ou pour passer moins de temps ?
11:42 < david`bgk> pour la doc et l'habitude j'imagine
11:43 < david`bgk> j'aime bien lighttpd pour ma part :)
11:43 < No`> les sysadmins ont tendance à rester sur ce qu'ils maîtrisent... et aiment pas trop installer des trucs qu'ils ne connaissent pas trop
11:44 < No`> "oui, mais ça peut casser autre chose"
11:44 < No`> (refrain connu)
11:44 < gawel> ccomb: je te fou dans la boucle pour les LMHS. tu saura aller les chercher en caisse ?
11:44 < ccomb> je peux faire ça oui
11:44 < gawel> cool
11:44 < nfroidure> En fait, ce qui diffère entre Apache et directement Python en serveur web, c'est que apache execute tout à chaque requête.
11:45 < nfroidure> En tant que serveur web, python va pouvoir garder des modules en mémoire tout le temps
11:45 < nfroidure> C'est juste ?
11:45 < misc> nfroidure: en cgi, sinon, tu as des caches possibles à divers niveau
11:45 < misc> si tu charges python dans apache via mod_python, il execute pas tout tout le temps
11:45 < misc> ( c'est le but )
11:46 < ogrisel> nfroidure: mod_wsgi permet de garder des process instanciés sur plusieurs requetes
11:46 < nfroidure> Deux accès à deux pages qui utilisent le même script seraient "regroupés" ?
11:46 < misc> ça depend de ton archi :)
11:46 < ogrisel> mod_python c'est une peu viellot
11:46 < ogrisel> nfroidure: je te recommande fortement la lecture de l'article python et le web dans le dernier linux mag
11:47 < ogrisel> celui avec ZFS en couverture
11:47 < ogrisel> il est excellent
11:47 < ogrisel> et c'est ccomb et david`bgk les auteurs
11:48 < nfroidure> Arf, j'ai pas la culture papier, mais je vais faire un effort.
11:48 < ogrisel> ca vaut le coup pour cette fois je pense
11:55 < feth> OH YEAH, la doc Qt est maintenant tout à fait professionnelle avec des frames, outil de recherche et tout
11:55 < romain> heu, les frames, c'est nul
11:56 < ogrisel> c'est clair que les frames ca fait tout de suite professionel
11:56 < romain> feth: par contre je sais pas où tu as vu ça
11:56 < ogrisel> c'est pour ca que python c'est pas professionel par rapport a java, la doc en ligne de python a pas de frames
11:57 < ogrisel> pouce ! patapé ! on a le droit on est vendredi !
11:58 < feth> romain: http://library.forum.nokia.com/index.jsp?topic=/Qt_for_S60_Developers_Library/GUID-ECBE8350-9D54-48D1-B777-264B895B9063/qboxlayout.html par exemple
11:59 < romain> pas dans http://doc.trolltech.com/4.5/
11:59 < feth> Notez le .jsp
11:59 < feth> c'est pro ça
13:02 < glooze> ogrisel, n'importe quoi, python fait pas pro parce que c'est libre
13:03 < misc> java aussi est libre
13:03 < glooze> pas vraiment encore tout à fait complètement
13:04 < misc> je pense plus que python ne fait pas pro parce que le marketing de sun a fait ce qu'il faut pour que ça soit pro, avec l'utilisation dans sa gamme pro, l'ecoute des professionnels ayant des logiques metiers, etc
13:04 < misc> et que personne n'a fait ça pour python
13:06 < No`> php aussi est libre
13:19 < sebastienb> perl aussi est libre, et il est reconnu dans le monde entier
13:20 < sebastienb> si bien que les écrans 16/9 se sont répandus largement pour faciliter la vie des codeurs perl
13:53 < feth> sebastienb: \o/ troll-day award leader pour l'instant
14:06 < nfroidure> Python, au niveau POO a l'air de ressembler à JS sans déclaration de variable.
14:06 < No`> hem... tu considères que Javascript c'est de l'objet ?
14:06 < glooze> GODWIN !
14:07 < romain> comparer Python au Javascript, ça c'est du troll...
14:07 < glooze> Moi je rêve de voir un jour du pythonscript en jit :p
14:07 < glooze> oh flute
14:08 < glooze> ça existe peut-être déjà :p
14:08 < No`> y'avait un projet du genre
14:08 < No`> mais je sais pas ce qu'il en est devenu
14:08 < No`> (c'est pas français ma dernière phrase)
14:11 < glooze> s/devenu/advenu/g
14:11 < glooze> et là c'est français
14:12 < nfroidure> Y'a pas de classe, mais des objets
14:12 < nfroidure> JS c'est un language super
14:13 < nfroidure> Faut juste s'y être intéressé
14:13 < No`> c'est un outil, c'est sûr. Et il gagne beaucoup quand on utilise un framework... mais c'est "prototype-based", plutôt
14:13 < nfroidure> La seule chose qui lui manque c'est un vrai typage comme ActionScript 3.0
14:18 < nfroidure> Je suis à la Poo, et par contre, le coup du self, c'est dommage. Pourquoi ne pas utiliser le mot-clés this comme dans les autres languages ?
14:18 < No`> doit y'avoir une raison
14:18 < glooze> et ça change quoi ?
14:18 < No`> Guido a __souvent__ une explication
14:18 < glooze> c'est aussi chiant à taper :p
14:18 < glooze> y a le même nombre de lettres
14:18 < david`bgk> tu peux utiliser le teme que tu veux
14:18 < david`bgk> c'est juste une convention
14:19 < david`bgk> terme*
14:20 < romain> david`bgk: tu veux aussi utiliser this
14:20 < romain> s/veux/peux/
14:21 < david`bgk> si tu veux rendre ton code illisible par les autres dev python, tu peux :)
14:21 < No`> http://fr.wikipedia.org/wiki/Python_(langage)#M.C3.A9thodes
14:21 < nfroidure> C'est pas le mot, mais le fait de toujours l'indiuer dans les arguments que je regrette
14:22 < No`> nfroidure: ben justement, c'est comme ça qu'il peut changer de nom
14:24 < No`> http://dpaste.com/16911/
14:26 < nfroidure> :)
14:31 < feth> import this
14:32 < misc> "try to import this"
14:33 < feth> nfroidure: dans un interprêteur Python, "import this"
14:34 < nfroidure> Comme quoi, je suis pas le seul à poser la question ;)
14:36 < No`> nfroidure: nan... ouvre un interpréteur python et fais >>> import this
14:36 < feth> Ton côté nit picking me fait me demander si Ruby n'est pas ton lagage de choix :)
14:36 < nfroidure> J'ai fait :)
14:36 < feth> langage
14:36 < No`> ok
14:36 < No`> BAGUETTE ON SNAILS!
14:36 < No`> (pardon)
14:36 < misc> python -mthis ?
14:39 < nfroidure> J'ai regardé aussi ruby
14:39 < nfroidure> Mais de toute façon, je vais lire un tuto de chaque pour bien me faire une idée de ce qui attire les dev vers ces languages.
14:41 < glooze> la syntaxe \o/
14:41 < glooze> la puissance \o/
14:41 < misc> les libs autour aussi
14:41 < glooze> Comme tout humain, le dév est attiré par la puissance !
14:42 < glooze> (et les tueries)
14:42 < No`> la bière
14:42 < No`> \o/
14:42 < glooze> (on joue bien à des FPS en buvant ici ?)
14:44 < Ohan> nfroidure, en restant objectif, je pense que python est incontournable, une fois que tu met de côté ses trois "soucis"
14:46 < nfroidure> Je dois dire que ce qui est assez déroutant, c'est le fait de pas spécifier les choses avec des var, int, array etc... Ca donne l'impression de coder sans savoir ce qu'on fait. C'est assez destabilisant.
14:46 < feth> Python est un langage d'intégristes de l'esthétique et de la théorie de la programmation, je sais pas s'il est adapté au web
14:47 < No`> il est plutôt "spécialisé en rien", donc "adapté à tout"
14:47 < Ohan> nfroidure, qu'est-ce qui compte le plus pour toi dans un langage de prog ?
14:47 < No`> comme beaucoup d'autres langages
14:48 < Ohan> nfroidure, est-ce que c'est la performance? la facilité de dev? d'apprentissage? de relecture? de test? la spécialisation ou au contraire la non-spécialisation? la librairie standard?
14:48 < Ohan> la portabilité?
14:48 < feth> ou le fait d'avoir un framework dont il faut "remplir les blancs"
14:48 < Ohan> si déjà tu sait répondre à cette question, ca t'aidera a faire un choix
14:48 < romain> Ohan: et c'est quoi ses trois soucis ?
14:49 < nfroidure> Difficile à dire...
14:49 < Ohan> romain, 1/ la syntaxe (pas d'accolades) 2/ l'utilisation de len(foo) au lieu de foo.len ou encore de foo.__len__ 3/ l'indentation
14:50 < Ohan> romain, c'est pas des problèmes pour moi en tout cas
14:50 < Ohan> mais pour certains, ca l'est
14:50 < feth> Ohan: Excellent ce troll
14:50 < Ohan> feth, troll?
14:50 < nfroidure> Ta liste est pleine de chose qu'on souhaite avoir dans un language
14:50 < No`> nfroidure: quoi qu'il en soit, c'est bien de s'ouvrir à un nouveau langage, ça ne peut pas êter une perte de temps
14:50 < romain> 1 et 3 c'est exactement la même chose
14:50 < Ohan> nfroidure, tu peux classer du plus important au moins important?
14:50 < feth> Ohan: nfroidure t'a répondu
14:50 < Ohan> romain, non, 3 est une des solutions pour pouvoir se passer de 1
14:50 < No`> "pas d'accolade" + "indentation", pour moi c'est la *killer* feature de Python
14:50 < Ohan> No`, pour moi aussi ;)
14:50 < kujiu> No`: idem
14:51 < Ohan> feth, ?
14:51 < romain> l'indentation c'est chiant
14:51 < Ohan> pas pour moi
14:51 < nfroidure> Y'a un truc qui meplait dans python et vous aller tt de suite avoir quoi en regardant ceci :
14:51 < feth> si seulement tout le monde codait en ts=2
14:51 < kujiu> romain: l'indentation, ça permet déjà d'avoir un code lisible
14:51 < Ohan> je préfère indenter (plus simple, rapide avec l'indentation automatique, et plus lisible)
14:51 < No`> romain: quand tu reviens sur du code mal indenté au bout de trois mois, tu reviendras nous dire si l'indentation c'est mal
14:51 < No`> ou chiant
14:51 < romain> kujiu: sauf qu'un programmeur rigoureux va indenter de toute façon
14:51 < kujiu> oui
14:52 < nfroidure> https://bitbucket.org/nfroidure/kgen/src/tip/chrome/tags/content/tags.js
14:52 < romain> ce qui est lourd c'est que tout se base là dessus
14:52 < kujiu> de toute façon, un codeur qui n'indente pas, chez nous, il gicle très vite
14:53 < misc> en fait, je pense que les pythonneux seraient content qu'on leur force le style de programmation, genre tu as forcement un espace aprés un, , etc
14:53 < romain> les pythonneux sont des esclaves soumis \o/
14:53 < No`> romain: forcément, on a un BDFL
14:53 < feth> romain: y a beaucoup de plaisir comme ça
14:54 < feth> Moi comme souci dont j'entends parler c'est le GIL. En même temps je l'aime beaucoup le GIL moi, j'aime bien codé sans threads
14:54 < feth> coder.
14:54 < feth> mais c'est déplorable ce que je deviens mauvais en grammaire
14:55 < misc> feth: donc en gros, ce que tu aimes, c'est de pas pouvoir faire de threads ?
14:55 < nfroidure> GIL ?
14:55 < misc> global interpreteur lock
14:57 < nfroidure> En fait, dans un language, j'aime bien la cohérence, je peut pas m'empêcher de me demander pourquoi, ça sécurise d 'avoir des réponses à ses questions :)
15:06 < feth> misc: oui, je pense que dans la plupart des cas, les forks, c'est mieux
15:06 < feth> après faut etre pragmatique
15:06 < feth> mais l'explosion de complexité liée au thread coûte cher en temps de dev.
15:07 < feth> (sauf sur des cas simples et bien connus)
15:07 < misc> feth: ben si tu aimes pas les threads, suffit de pas en faire :)
15:07 < feth> misc: ouais mais t'as les collègues qui en font quand meme ces gorets
15:07 < misc> c'est un peu nazi de dire "j'aime pas ça, je suis content que personne au monde puisse en faire"
15:09 < nfroidure> y'a des choses qu'on est obligé de threader
15:09 < nfroidure> Genre la gestion d'une interface utilisateur et des event listener ou les requêtes asynchrone
15:10 < nfroidure> Les timers aussi
15:11 < misc> pas forcement, tu peut t'en sortir sans thread
15:11 < feth> ou alors on confie ces choses-là à un truc plus bas niveau, comme twisted
15:11 < feth> ou Qt
15:11 < misc> faut juste s'assurer que ton programme rends la main
15:12 < misc> des framework genre poe, twisted, fonctionne sans thread
15:13 < feth> Après, les threads c'est bien pour répondre à 40 requètes/seconde.
15:13 < nfroidure> Si tu veux capturer des évènements même pendant un traitement ?
15:13 < feth> -et tant que c'est des requètes read only c'est super facile-
15:13 < feth> nfroidure: tu fais pas de Python, ça marche pas les signaux dans les threads
15:13 < feth> ou alors faut que tu polles tout le temps
15:14 < feth> ce qui réduit l'intérêt de la chose
15:14 < feth> je connais un gars qui voulait faire ça, quel goret
15:14 < misc> ben y a select :)
15:15 < misc> et les apis plus spécifiques à un os, genre les kqueues
15:15 < nfroidure> Je comrpends pas, si t'as deux requêtes apache simultanées, il execute bien les scripts des requêtes en paralèles ?
15:15 < misc> nfroidure: ben tu as 2 programmes séparés
15:16 < nfroidure> Ok, donc, le coup du serveur en Python, c'est le pot de pue.
15:16 < feth> en JEE tu as un seul programme qui va gérer les requètes dans des threads
15:16 < feth> nfroidure: note qu'en Ruby, aussi
15:17 < misc> bah c'est apache ou tu as 2 serveurs spéarés, sauf si tu as le module threaded
15:17 < misc> ( donc j'ai oublié le nom )
15:18 < feth> Cela dit, dans le temps on threadait tout le temps avec raison : le fork était long sous windows, donc fallait savoir threader
15:18 < feth> maintenant c'est bon
15:18 < nfroidure> ruby, comme JEE ou comme python ?
15:18 < feth> nfroidure: comme Python, voire pire :)
15:18 < misc> feth: maintenant, c'est bon, cad ?
15:18 < misc> car un fork est toujours long par rapport à un thread
15:18 < feth> misc: on peut forker en un temps raisonnable
15:18 < feth> certes
15:18 < misc> feth: un ordre d'idée de "temps raisonnable" ?
15:19 < feth> misc: imperceptible ?
15:19 < feth> genre j'en sais rien, je m'étais meme pas rendu compte du fork
15:19 < misc> sur 1 fork, ça va
15:19 < misc> c'est dés que tu es dans une boucle que ça chie
15:20 < feth> Je pense que ça devient ennuyeux à plus de 100 forks/seconde non ?
15:20 < feth> ce qui représente déjà un bon trafic
15:20 < misc> avec la propension à la mutualisation des machines via des couches de virtualisation, faut pas négliger les performances
15:21 < feth> un socket : un fork ça me semble raisonnable. Y a des réserves d'optimisation ailleurs
15:21 < misc> car bon, oui, ça va tourner super vite sur ta machine
15:25 < romain> « 15:11:30 misc> pas forcement, tu peut t'en sortir sans thread » ouais enfin le problème c'est que quand ce con tente une connexion il freeze quand même jusqu'au timeout si c'est injoignable et qu'il se prends un REJECT à la place d'un DROP
15:27 < nfroidure> En consultant mon suphp_log j'ai souvent 20 à 30 pages générées par seconde aux heures de pointe.
15:28 < misc> romain: tu sais que tu peut rendre les socket non bloquante via une ligne de python ?
15:31 < misc> http://www.amk.ca/python/howto/sockets/sockets.html#SECTION000600000000000000000
15:31 < misc> ( et via fcntl en C, pour completer )
15:31 < romain> non mais, c'est pas moi qui gère les sockets, mais twisted
15:32 < romain> en l'occurence t.i.xmlrpc
15:32 < misc> ben twisted est asynchrone, non ?
15:34 < romain> bah, en l'occurence, si le serveur qu'essaie de joindre t.i.xmlrpc n'est pas accessible (genre que le paquet est rejeté), il va attendre le timeout de plusieurs minutes en bloquant toute l'application
15:36 < misc> mhh, ça m'etonnes de twisted, ça pue que ça soit comme ça :/
15:36 < romain> twisted.enterprise.adbapi a le même comportement
15:36 < romain> ça m'étonne aussi mais c'est ce qui a été relevé
17:17 < arikel> bonjour à tous.
18:12 < ccomb> gawel: http://ccomb.gorfou.fr/static/pytux.jpg :)
18:14 < gawel> haha :)
19:56 < yotaff> tapour taper plusieurs commandes shell à la suite, comment vous procédez ?
19:59 < feth> je les tape dans l'ordre
19:59 < feth> (sinon tu penses à «;» ?)
21:58 < david`bgk> yotaff, && ?
22:13 < david`bgk> il est ici james pic qui a proposé un lightning talk django ?
22:14 < david`bgk> j'arrive difficilement à voir comment on peut présenter tout ça en 10 min en fait :)
22:44 < david`bgk> ça serait bien de mettre le [type] de chaque session proposée sur http://pycon.fr/sessions/seances
22:49 < ogrisel> oui c'est pas fo
22:50 < david`bgk> bon voilà, 4 propositions soumises :)
22:52 < ogrisel> cool
22:52 < david`bgk> zut je voulais parler de fabric aussi
22:53 < david`bgk> "Sortez votre python pour draguer" c'est quand même la classe
23:06 < ogrisel> c'est malin
2019 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
2019 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2019 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2019 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2019 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2018 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2018 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2018 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2017 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2017 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2017 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2016 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2016 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2016 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2015 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2015 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2015 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2014 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2014 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2014 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2013 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2013 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2013 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 04
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2012 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2012 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
2012 01
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 12
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 10
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 09
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 08
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 07
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2011 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2011 04
01 04 07 08 11 14 15 19 20 21 22 23 24 25 26 27 28 29 30
2011 03
01 02 03 04 06 07 08 09 10 11 12 14 15 16 17 21 22 23 25 28 29 31
2011 02
02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 21 22 23 24 25
2011 01
03 04 05 06 10 11 13 15 16 18 19 20 21 22 23 24 25 26 27 28 31
2010 12
01 02 03 07 08 09 10 14 15 16 17 21 22 23 28 29 30
2010 11
01 02 03 04 05 06 07 08 09 10 13 14 16 17 18 19 22 23 24 25 26 28 29
2010 10
01 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 22 24 25 27 28 29 30 31
2010 09
01 02 03 04 06 07 08 09 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 08
02 03 04 05 06 08 09 10 11 12 13 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2010 07
01 02 03 05 07 08 13 14 15 19 20 21 22 23 25 26 27 28 29 30 31
2010 06
01 02 03 04 08 09 10 11 13 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2010 05
03 06 09 10 11 12 14 15 17 18 19 21 22 25 26 27 28 30
2010 04
01 02 03 04 05 06 08 09 10 11 12 13 15 16 19 20 21 22 24 26 27 28 29 30
2010 03
02 03 04 05 06 07 09 10 11 12 14 15 19 22 23 24 25 26 27 28 29 30 31
2010 02
01 02 03 04 05 08 09 11 12 14 15 18 19 21 23 25 26
2010 01
03 04 05 06 07 11 12 14 15 18 21 22 23 24 25 26 27 28 29 30 31
2009 12
01 02 03 04 07 08 09 10 11 14 15 16 17 18 19 20 23 25 28 30 31
2009 11
01 02 03 04 05 07 08 09 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2009 10
01 02 03 04 05 06 07 08 09 11 13 14 15 16 18 19 20 21 22 23 24 25 26 27 29 30 31
2009 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 21 22 23 24 25 27 28 30
2009 08
01 02 03 04 05 06 07 09 10 11 12 13 14 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 07
02 03 04 05 06 07 08 09 10 13 15 16 17 18 20 21 22 23 24 26 27 28 29 30 31
2009 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 29 30
2009 05
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2009 04
01 02 03 04 06 07 08 09 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30
2009 03
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31
2009 02
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28
2009 01
04 05 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 12
01 03 04 05 06 07 08 09 10 11 12 14 15 16 17 18 19 20 21 22 23 24 28 29 30 31
2008 11
01 02 03 04 05 06 07 08 09 10 11 12 13 14 16 17 18 19 20 21 23 24 25 26 27 28 29
2008 10
01 02 03 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 09
01 02 03 04 05 06 07 08 09 10 11 12 13 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2008 08
01 02 03 04 05 06 07 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30
2008 07
01 02 03 04 05 07 08 09 10 11 12 13 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 31
2008 06
01 02 03 04 06 07 08 09 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30
2008 05
01 02 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2008 04
01 02 03 07 09 10 14 15 16 23 24 25 26 28 29 30
2008 03
02 03 04 05 06 07 10 11 12 13 14 17 18 19 20 21 25 28
2008 02
04 05 06 07 08 11 12 13 14 16 17 18 21 22 23 24 25 26 27 28 29
2008 01
02 07 08 11 12 14 18 22 24 28 29 30 31
2007 12
03 05 06 13 14 15 16 17 18 20 21
2007 11
03 04 05 08 09 10 11 14 15 17 19 23 26 27 28 29 30
2007 10
01 02 03 04 05 06 09 10 11 12 13 14 15 16 17 18 22 23 24 25 27 29
2007 09
01 03 04 05 06 07 08 09 10 11 12 13 15 16 18 19 20 21 26 27 28 29 30
2007 08
02 06 14 16 17 19 22 23 24 27 28 29 30 31
2007 07
02 03 04 05 06 09 10 11 12 13 15 18 19 20 25 27
2007 06
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 18 19 20 21 22 23 24 25 26 27 28 29 30
2007 05
02 03 07 09 10 12 14 15 18 19 20 22 23 24 25 29 30 31
2007 04
01 02 03 04 05 06 07 08 10 11 12 16 18 19 20 21 23 24 25 26
2007 03
01 02 06 07 08 09 10 12 13 14 16 19 20 21 22 23 24 26 27 28 29 31
2007 02
26 27 28