Envoyez nous les scripts que vous ne pigez pas 16


Parmi les idées de l’enquête Comment dynamiser la communauté Python, il a été suggéré de commenter des scripts envoyé par les lecteurs.

Pourquoi pas, en plus  ça fait de l’inspiration pour les articles.

Voilà le deal:

  • Vous avez un script en Python dont vous ne comprenez pas certaines partie.
  • Vous nous le postez sur un pastebin.
  • Et vous nous envoyez le lien par le formulaire de contact.
  • Nous faisons une sélection, et une fois de temps en temps on en choisi un.
  • On le commente, expliquant pas à pas ce qu’il fait.
  • Ensuite on pond une version alternative, parfois mieux, parfois juste différente.

Les conditions:

  • Pas de script de 3 km. Je peux pas passer ma semaine dessus.
  • Que du Python. Si c’est du Django, on ne commentera pas le HTML, le JS ou le CSS.
  • Mettez bien tout le code utile pour comprendre, on est pas devin.
  • Évitez les trucs “faites mes devoirs” ou “faites mon taff du bureau”. Ca nous mettrait de mauvaise humeur. Un snippet du bureau ou de l’école est ok si c’est la partie qui vous bloque, mais tout abus sera tamponné.
  • Il n’y a aucune garantie qu’on fasse quoique ce soit, et si on le fait, on ne donne pas de délai. Faut pas pousser :-)
  • Vous devez évidement avoir le droit de publier le script.
  • On est pas votre debugger perso. On explique du code qui marche.
  • Dans le mail, expliquez ce que vous ne comprenez pas et la démarche que vous avez menée pour comprendre le truc. Ca jouera dans la sélection, et ça nous permettra de cibler l’explication.
  • Si vous faites un truc pointu, ajoutez les explications nécessaires pour qu’on comprenne: nous ne sommes pas physiciens ou biologistes. On code en utilisant Django, pas Numpy, au quotidien. Quand à la prog bas niveau…

16 thoughts on “Envoyez nous les scripts que vous ne pigez pas

  • foxmask

    Bonjour,
    pour suivre le deal du truc que je ne pige pas, j’ai une question des plus QQ mais qui me taraude : Pourquoi aucun module tiers django ne fourni aucun template par défaut ? Si on (les débutant) avait les templates, on pigerait à vitesse grand V. Que là on se tape par exemple un doc comme cela https://bitbucket.org/ubernostrum/django-profiles/src/c21962558420/docs/overview.txt (§ Basic use) et de là, vas te pondre les templates/views/forms qui vont bien ne maitrisant encore quasiment _rien_ . On pourra me dire “plutôt que de faire une intégration d’un module tiers ; autant faire soi même un tel module pour ‘apprendre'” mais alors on n’est plus très DRY ;)

    Quelle est donc cette raison ?
    cordialement

  • Sam Post author

    Pour la même raison que des fois il n’y a pas de doc.

    Un template d’exemple est en effet toujours idéal.

    Rien que django-registration, le temps qu’on perd à pondre les templates soi-même alors que quelques snippets HTML aurait tout changé.

    Dev Django de tout poils, fournissez des templates basiques pour vos applis !

  • foxmask

    Donc ce n’est pas volontaire de la part des djangonautes que de ne pas en fournir ? je suis tombé sur le cas à part ? Parce que effectivement là j’utilise django-profiles et registration et c’est long …

  • Sam Post author

    C’est comme la doc: ça dépend du temps, de la volonté, du talent, de l’envie. Mais ça n’a rien d’une limite technique.

    Je pense aussi qu’il y a beaucoup de techos qui se rendent pas compte de l’importance de ce genre de détails.

  • foxmask

    ok je comprends pourtant il faudrait garder à l’esprit que le module devrait être utilisable quasiement juste après avoir faire un python manage.py syncdb.
    je vais m’arrêter sur ce sujet pour laisser la place “aux questions sur les scripts” ;) peut-etre avec un des miens :) Mais c serait plutôt pour dire “est-ce qu’il est correctement écrit” car si je code un truc c’est que je le comprends, quitte à faire une factory à optimiser:-)
    Merci pour ton écoute. Je repars donc plus rassurer pour mes prochaines intégrations de modules tiers.

  • Soli

    Typos :
    – « la démarche […] menéE »
    – « Si vous faites un truc pointU, ajouteZ »

    sinon, excellente idée ;)

  • roro


    Prépare de suite un tampon, voila ma question:
    Que répondrait-tu à quelqu’un qui te demanderait de lui faire, contre rétribution, une vue aérienne des batiments et voies de communication, d’un monument composé de: 180 scripts py, 90.c et autant de h., plus quelques .dat et autres bricoles…35Mo le lot
    si tu pouvais faire à la louche une estimation de tarif, ça serait sympa…Il s’agit d’un log de modélisation molléculaire, dont j’aurais besoin de maitriser certains paramètres.

  • roro

    Addenda: La transmission se ferait par CD (courrier) la licence est SGLite, et l’utilisation non professionelle (privée).
    Reste calme….

  • Sam Post author

    @roro: les devis en aveugle ça marche pas. Il faut les mains sur le code, le projet, parler au client, connaître les contraintes, etc.

    Dans ton cas faut voir la qualité et présentation du code. Si il marche facilement. Ce que tu veux comme modélisation (des commentaires pour chaque fichier ou juste un gros mapping), etc. Il faut aussi connaître ton budget car il faut pas proposer la totale si tu as le budget d’une demi journée d’un lab de biologie.

    La fourchette de prix d’un jour de consulting peut énormément varier selon ces critères: 300 à 1200 euros/jour. Si tu as 10 jours de taff, ça fait un delta d’entre 3000 et 12000 euros. C’est énorme, personne peut vivre avec une marge pareil, surtout si l’idée c’était un défrichement de code avec en tête 200 euros de budget.

    Le plus simple: envoie nous ton mail via le formulaire de contact, et on en discute sérieusement hors du blog (l’anonymat se marie mal avec la vie professionnelle). Inclus dedans ce que tu veux exactement, et quelques liens vers des extraits de fichiers dans 0bin.

  • foxmask

    j’ai fait le boulet hier soir, enfin ce matin quand j’ai posté, j’ai pas relu les pré-requis. Et j’ai fini par mettre le doigt sur ce qui dérangeait django. Les urls nommées avec des quotes le défrisent. Je pars me l’ancrer là où il faut :D

  • roro

    Merci Sam, je prépare ça, ça va etre un peu long, mais je sais exactement ce que je veux, et malgrés le volume du truc, qui est de trés bonne qualité, ce n’est pas un gros gros boulot. Juste defricher un peu qui fait quoi. Ca fait un moment que je suis dessus, et j’ai besoin d’une vision exterieure.
    Ce garnement de Max a bien failli me faire sortir de la route avec ces tampons….Brrrraaanleeeuur!

  • roro

    Salut, je ne suis pas un vétéran du net, et je ne sais pas pourquoi il faut utiliser un pastebin. Je ne suis peut-etre pas seul à me poser la question. Droit ? Virus ? Volume? Encombrement du forum ? En plus ça a l’air d’etre important…alors why?

  • Sam Post author

    Quand on travaille sur un code, on va avoir beaucoup de texte. Le texte va en plus être modifié, et reposter, encore et encore. Très vite il va devenir très difficile de lire les commentaires: le scroll sera long, la page se chargera lentement et les paroles seront perdus au milieu du code. De plus les pastebin viennent avec des outils en plus: cloner la page en cours pour la modifier, numérotation de ligne, copier dans le presse-papier, etc. Enfin, quand on a un pastebin, chaque version du code à une URL, il est donc facile de s’y référer.

    En résumer, utiliser un pastebin (n’importe lequel, pas forcément 0bin), est beaucoup plus efficace pour tous, et agréable pour celui qui va devoir passer du temps sur le code.

Leave a comment

Your email address will not be published. Required fields are marked *

Utilisez <pre lang='python'>VOTRE CODE</pre> pour insérer un block de code coloré

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.