Quantcast
Channel: AFPy's Planet
Viewing all 3544 articles
Browse latest View live

[carlchenet] Liens intéressants Journal Du pirate semaine #12

$
0
0
Suivez-moi aussi sur Diaspora* ou Twitter  ou sur Identi.ca Pour cette 12ème semaine de 2015, 5 liens intéressants que vous avez peut-être ratés, relayés cette semaine par le Journal Du Pirate, votre source d’informations pour le Logiciel Libre francophone ! Docker Compose remplace Fig Installation d’un cluster de stockage CEPH Censure administrative du Web en…

[afpyro] AFPyro à Lyon - mercredi 25 mars

$
0
0

Un Afpyro aura lieu le mercredi 25 mars à partir de 19h au Gîte Numérique - 6 rue Saint Georges - 69005 Lyon.

Une présentation sur apetizer sera donnée par son auteur, et hôte de l’AFPyro, Nicolas Danjean. Apetizer est une librairie pour Django permettant de simplifier la création de vues, APIs, et notamment dans le cadre de création de wizards.

Pour se rendre au Gîte Numérique :

  • en métro : arrêt Vieux Lyon - Cathédrale Saint Jean
  • en bus : lignes C20 ou 31 arrêt Saint Georges ou Sala
  • en vélo’v : stations Saint Jean / Cathédrale, Place Crépu

[sciunto] Don du mois : ipython et jupyter

$
0
0

Ce post s'inscrit dans la série des dons pour vous donner envie de contribuer même très modestement à des logiciels libres. Les petites pierres font les grands édifices.

C'est au tour de Ipython, une interface de type console et web pour python et d'autres langages. Le montant de ce don est de $6. Les raisons de ce soutien :

  • Je l'utilise au quotidien avec Python, notamment pour les notebooks qui me facilite l'analyse et la visualisation de données. Ca a grandement amélioré mon travail.
  • Ipython donne une réelle valeur ajoutée à python par une approche complémentaire pour résoudre un problème. En effet, je n'effectue pas un traitement d'images comme l'écriture d'une bibliothèque logicielle.
  • Ipython a annoncé qu'il allait se découper en deux avec Jupyter, car Ipython gère aussi d'autres langages comme perl ou ruby. C'est donc un projet de très grande ampleur et qui a un fort potentiel.
  • Plusieurs financements viennent aider le développement, ce qui permet d'avoir 6 développeurs à plein temps.
  • L'intégration dans un navigateur en fait une solution facilement auto-hébergeable.

Pour donner à Ipython/Jupyter.

[logilab] PyconFR 2014 : jour 1, BDD, postgresql et asyncio

$
0
0

J'ai eu le plaisir de participer à la conférence PyconFR 2014, voici quelques notes sur les présentations auxquelles j'ai pu assister. Étant donné la longueur, je vais publier sous forme de plusieurs billets de blog.

http://www.pycon.fr/2014_static/pyconfr/images/banner.png

BDD avec Behave

Le Behaviour Driven Develpment en Python peut se faire avec behave. Dans un premier temps on décrit en language "naturel" le test. Dans un deuxième temps on implémente les tests unitaires pour faire le lien avec la description behave, et on met les chaines de caractères dans un decorateur @given, puis @when puis @then.

Les scenarios behave sont utiles pour le dévelopement, pour la documentation, pour la formation des nouveaux arrivants et même pour faciliter la supervision des applications en production.

Les diapos de la présentation sont disponible sur slideshare.

Python + PostgreSQL

Stéphane Wirtle nous a présenté comment les relations étroites entre le monde de Python et celui de PostgreSQL.

https://avatars1.githubusercontent.com/u/2947270?v=2&s=400

Points à noter :

  • FDW : Foreign Data Wrapper, dont voici une liste sur le wiki de PostgreSQL
  • PL (Procedure Language) : PL/C, PL/Python, PL/v8, etc. pour étendre sa base de donnée. Les procedure language SQL sont par défault "trusted", les autres ne sont pas trusted par défaut. Dans CubicWeb, nous utilisons PL/Python pour la recherche plein texte et la lemmatisation du texte.

Pour ceux qui souhaiteraient essayer un ORM, Stéphane Wirtle conseille Peewee ORM.

Pour les migrations de schema SQLalchemy, Stéphane Wirtle nous conseille Alembic.

Parfois un ORM peut générer beaucoup de requêtes SQL et il y a de la place pour une optimisation en tapant directement du SQL. Pour évaluer la surcharge dûe à l'ORM, on peut utiliser pgBadger.

Support de présentation : https://speakerdeck.com/matrixise/python-and-postgresql-a-wonderful-wedding/

Un serveur fiable avec python 3.4

Après une petite introduction aux principes de concurrence, Martin Richard nous a présenté un retour d'expérience sur l'utilisation du module asyncio introduit dans python 3.4. Il permet de ne plus avoir à utiliser twisted ou gevent.

Les ressources et bibliothèques qui utilisent asyncio sont recensées sur http://asyncio.org/

objgraph permet de d'analyser des structures de données Python pour identifier des fuites memoire.

memoryview introduit dans python3.4 permet de faire "référence" à une structure de données sans la copier, ce qui peut être très pratique mais rend complexe la gestion de code.

Martin a utilisé @lru_cache pour mettre en cache les resultats d'un calcul en utilisant la politique de cache "Least Recently Used (LRU)".

Support de présentation : http://marti.us/t/pyconfr-2014/

[logilab] PyconFR 2014 : jour 1, frameworks web et gestion de source

$
0
0

Suite de pyconfr 2014 jour 1 épisode 1.

Performance des frameworks web : Python vs the world

Ronan Amicel nous a présenté le travail de benchmark publié par TechEmpower. Ces tests et résultats sont forcement faux et biaisés, mais le code source des tests est publié en libre et il est donc possible d'apporter des corrections via le projet sur github

Pour l'instant, Python3 serait plus lent que Python2, mais on peut espérer que Python3 rattrape son retard, puisqu'il est toujours développé. La comparaison avec pypy est surprenante, celui-ci est bien plus lent, l'hypothèse étant qu'il est ralenti lorsqu'il parle au driver mysql. En revanche, pour le test pypy + tornado, les performances peuvent être meilleures que nodejs car tornado est écrit en pur python il peut être optimisé par pypy.

Dans le comparatif entre python et php, un acteur surprenant est phalcon qui a pris le parti de tout coder en C (plutôt qu'une partie seulement comme on peut le trouver dans nombre de projets python).

Support de présentation : https://speakerdeck.com/ronnix/performance-des-frameworks-web-python-vs-the-world-v1-dot-1

CubicWeb - Vos données ont du sens

Nous attendions avec impatience cette présentation, et Christophe de Vienne a très bien présenté CubicWeb, le framework web dont Logilab est à l'origine.

https://www.logilab.org/file/269991/raw/logo-cubicweb.png

Après une courte introduction aux concepts du web sémantique (les URIS, les relations, le Linked Data), il a appuyé sur la nécéssité de donner du sens aux données que l'on stoque dans nos applications. Il a expliqué la finesse des réglages dans le moteur de permissions de CubicWeb.

Il a expliqué certaines fonctionnalités intéressantes selon lui dans Cubicweb :

  • les hooks: équivalent des procédures stockées déclenchées par des triggers, ils sont écrits en Python et permettent de modifier des données en cascades, implémenter des règle de gestion ou générer des notifications.
  • les adaptateurs : permettent de maximiser la réutilisation de code en adaptant une entité à une nouvelle interface

Selon Christophe, CubicWeb permet de développer une "base de donnée métier" strictement structurée, mais restant souple. Il a expliqué que l'interface par défaut n'est pas très sexy, mais qu'elle est néanmoins fonctionnelle comme backend d'édition.

Une petite introduction aux cubes qui sont les "plugins" ou les "extensions" dans le monde CubicWeb, ils contiennent :

  • un schéma
  • du code métier
  • des vues
  • des contrôleurs

Pour manipuler les données, CubicWeb utilise RQL, qui a été inventé avant SPARQL (langage de requête du web sémantique) et est plus pragmatique et lisible. Une fonctionnalité notable de RQL : plus besoin d'écrire des jointures SQL !

Finalement Christophe a conclu en présentant le mariage de Pyramid et Cubicweb. Selon lui, en regardant dedans, ils ont des philosophies communes. Le code permettant de développer une application Pyramid sur une base CubicWeb est publié sur la forge de CubicWeb. Christophe a aussi expliqué qu'il pousse des modifications pour que CubicWeb soit plus accessible aux développeurs habitués aux modes de développement "à la python".

Support de présentation : https://dl.dropboxusercontent.com/u/36590471/pyconfr-2014-pres-cubicweb/index.html

La gestion de version, ce problème tellement simple…

Pierre-Yves David (marmoute) nous a concocté un petit panorama des problèmes traités par les gestionnaires de source, avec des anecdotes de problèmes non-triviaux et quelques rappels historiques sur notre "science" informatique (merci les encodages!) Pierre-Yves s'est concentré sur les systèmes de gestion de version de "nouvelle génération", les outils décentralisés (hg, git, bzr). Forcément, étant donné qu'il travaille sur mercurial (et oui, celui écrit en python) il s'est concentré sur celui-là.

http://mercurial.selenic.com/images/mercurial-logo.png

Quand il travaillait chez Logilab, Pierre-Yves a notamment rajouté à Mercurial la notion de changeset obsolete et de phase pour faciliter la revue de code et le travail en équipe.

Manipuler son code python avec RedBaron

baron et RedBaron sont des projets assez prometteurs (et assez dingues) de manipulation de code en utilisant du code (plutôt que des éditeurs).

Laurent Peuch est revenu sur les outils historiques du domaine : rope qui a pris la suite de bicycle repair man. Il y a aussi pyfmt par le même auteur, et autopep8 écrit par d'autres.

Un exemple qui m'a parlé : ajouter @profile sur toutes les fonctions d'un script devient faisable en 3 lignes de python, et inversement pour les enlever. À suivre...

Support de présentation : https://psycojoker.github.io/pyconfr-redbaron/presentation.html

Prochain épisode

Prochain épisode: jour 1, bus de communication, packaging et fin

[unlish] pip install -e / setup.py develop on a cube

$
0
0

The current layout of CubicWeb cubes is not setuptools friendly, and does not permit to use the "develop" mode. The CWEP 004, currently under discussion, aims to solve that problem, and once adopted make life easier for the developers.

Meanwhile, some people (like us at Unlish) would like to use the develop mode anyway, so that we can work on a cube without cloning the whole tree of CubicWeb requirements.

After a few experiments, it turns out we can tweak the virtualenv after pip install -e is run on the cube, and have the benefit of it.

The solution I describe below allows to work on both the cube and the unittests, importing from "cubes.thecube" and "cubes.anothercube" in a virtualenv. It can be applied to several cubes in the same virtualenv. It does *not* apply to the other cubicweb packages.

From this point, 'thecube' is the cube that we work on, 'anothercube' is any other cube involved in the application we develop.

Problem 1 - the cubes path

Once pip install -e has been run the cube on which it was launched is not usable because it is not present in the cube path.

We do not want to add the parent directory of our cube to CW_CUBES_PATH because:
  • When importing from cubes.acube, and because "cubes" is not a proper namespace, we have issues
  • The spirit of virtualenv is that where the project was checked out does not matter -> we do not want to put restriction on where it can be put in the filesystem.

Solution

From within the virtualenv :

ln -s $(pwd) $VIRTUAL_ENV/share/cubicweb/cubes/thecube

Problem 2 - the python path

  1. pip install -e add our directory to the interpreter path. It is a problem because it pollutes the root namespace, it not masks some modules when the names match (for example in unlish we have a 'markdown.py' file).
  2. for some reason I did not identified, I could not import from cubes.xxx because the virtualenv cubes path is not added to the syspath like I expected it to (I may have done something wrong on this matter).

Solution

  1. Remove our directory from the virtualenv path
    PTH=$VIRTUAL_ENV/lib/python2.7/site-packages/easy-install.pth
    grep -v $(pwd) $PTH > .pth.tmp
    mv .pth.tmp $PTH
  2. Add the virtualenv cubes path to the python path
    export PYTHONPATH=$VIRTUAL_ENV/share/cubicweb
    This last command has to be done each time the virtualenv is activated, it is recommended to add it to the 'activate' script, OR postactivate script if you are using virtualenvwrapper (which I recommend too). 

    Put it all together

    The following script does all that for you, and has to be run after each run of pip install -e.
    Note that it will overwrite your postactivate script, set CW_MODE=user and define a 'ctl' alias, so you may need to modify it before using it.

    #!/bin/bash

    MYPATH=$(pwd)
    MODNAME=$(python -c "import __pkginfo__; print __pkginfo__.modname")

    if [ -z "$VIRTUAL_ENV" ]; then
    exit 1
    fi

    if [ -n "$VIRTUAL_ENV/bin/postactivate" ]; then
    cat >>$VIRTUAL_ENV/bin/activate <<EOF
    . $VIRTUAL_ENV/bin/postactivate
    EOF
    fi

    cat >$VIRTUAL_ENV/bin/postactivate <<EOF
    export CW_MODE=user
    export PYTHONPATH=$VIRTUAL_ENV/share/cubicweb

    alias ctl=cubicweb-ctl
    EOF

    rm -rf $VIRTUAL_ENV/share/cubicweb/cubes/$MODNAME
    ln -s $MYPATH $VIRTUAL_ENV/share/cubicweb/cubes/$MODNAME

    PTH=$VIRTUAL_ENV/lib/python2.7/site-packages/easy-install.pth
    grep -v $MYPATH $PTH > .pth.tmp
    mv .pth.tmp $PTH

    echo "Tweaked virtualenv $VIRTUAL_ENV"
    echo "Don't forget to re-activate it:"
    echo ""
    echo " workon $(basename $VIRTUAL_ENV)"

    To conclude, this is only a hackish workaround to wait for the real solution: reforming the cubes in cubicweb.

    (this post was initially a mail on the cubicweb mailing-list)

    [j-mad] Django 1.7 et écriture de tests, petites explorations

    $
    0
    0
    Je me suis enfin lancé dans l’écriture d’une app django gérant les badges (ou les succès si vous préférez). L’objectif étant de pouvoir réécrire de zéro histoires de rôlistes. L’idée était de tenter de faire une vraie app django, en mode réutilisable, histoire que peut-être des gens puissent trouver intéressant de l’utiliser. Je me suis [...]

    [carlchenet] Verify your backups… or lose them all

    $
    0
    0
    Follow me on Identi.ca  or Twitter  or Diaspora* As a good sysadmin, you thought you had backups for your server but you didn’t verify them before the major migration you attempted? When you need them, they’re empty or full of useless files. And now it’s too late… You won’t guess how often this situation occurs. Backup Checker…

    [carlchenet] Unverified backups are useless. Automatize the controls!

    $
    0
    0
    Follow me on Identi.ca  or Twitter  or Diaspora* Unverified backups are useless, every sysadmins know that. But manually verifying a backup means wasting time and resources. Moreover it’s boring. You should automatize it! Backup Checker is a command line software developed in Python 3.4 on GitHub (stars appreciated :) ) allowing users to verify the integrity of…

    [carlchenet] On a une sauvegarde de la base de données ? Elle a 6 mois, inutilisable

    $
    0
    0
    Suivez-moi aussi sur Diaspora* ou Twitter  ou sur Identi.ca Péremption des données Quel informaticien n’a pas été confronté à la péremption des données ? Vos données sont trop vieilles, inutilisables. Les causes peuvent être multiples : schémas des données ayant évolués, format de fichiers incompatibles ou delta trop important avec l’existant. Le cas est particulièrement…

    [carlchenet] Liens intéressants Journal Du pirate semaine #13

    $
    0
    0
    Suivez-moi aussi sur Diaspora* ou Twitter  ou sur Identi.ca Pour cette 13ème semaine de 2015, 5 liens intéressants que vous avez peut-être ratés, relayés cette semaine par le Journal Du Pirate, votre source d’informations pour le Logiciel Libre francophone ! Evqueue, un ordonnanceur de tâches libre et open source LDAPS : OpenLDAP et GnuTLS Image…

    [carlchenet] Liens intéressants Journal Du pirate semaine #14

    $
    0
    0
    Suivez-moi aussi sur Diaspora* ou Twitter  ou sur Identi.ca Pour cette 14ème semaine de 2015, 5 liens intéressants que vous avez peut-être ratés, relayés cette semaine par le Journal Du Pirate, votre source d’informations pour le Logiciel Libre francophone ! Hublin, vidéos et réunions en ligne en mode Libre Hacker les voitures connectées ? C’est…

    [logilab] Retour sur la journée conteneurs dans le cadre de Open Source Innovation Spring

    $
    0
    0

    Logilab a co-organisé la demi-journée sur les conteneurs dans le cadre du Printemps de l'innovation open source (Open Source Innovation Spring). Voici une partie des choses qui y furent dites.

    Open Source Innovation Spring

    AlterWay a commencé par une introduction expliquant pourquoi docker est si hype en ce moment. Quelques bémols ont été placés sur les questions de sécurité et les systèmes de fichiers utilisés par défaut (AUFS n'est pas dans le kernel linux officiel, des alternatives sont à l'étude).

    Une partie de l'écosystème autour de Docker a été mentionné :

    Ensuite Normation a présenté la gestion de configuration et Docker, avec de grandes questions générales sur le déploiement de serveurs, leur durée de vie, leur transformation, etc.

    Logilab & Mozilla

    Logilab a présenté l'utilisation conjointe de Salt Mercurial et Docker pour appliquer les bonnes pratiques du développement logiciel à la gestion d'infrastructures. Les supports de présentation sont sur http://slides.logilab.fr/osis/osis (aussi sur slideshare).

    Normation a ensuite présenté les fondements techniques des conteneurs, à savoir les fonctionnalités du noyau linux qui ont permis leur essor. Petit historique sur les cgroups, avec les idées d'origine sur les processus dans Unix, mais aussi les bonnes idées apportées par Plan 9 (et qui ont ensuite été reprises par Linux). On a vu des choses sur les chroots, les namespaces, fakeroot, ip netns, les informations dans /proc/<pid>/ns, et les systèmes de fichier d'union utilisé par les conteneurs : aufs, unionfs, overlayfs, fuse.

    Intervenants de la journée

    Ensuite deux démonstrations ont été présentées :

    • Utilisation de docker et docker-swarm sur amazon ec2 pour déployer une application html5 : CircleCI lit le dépôt git de l'application, construit l'image Docker et l'ajoute au hub puis pilote docker-swarm pour qu'elle soit déployée.
    • Utilisation de plusieurs plate-formes de cloud (Azure, Numergy, CloudWatt) pour déployer un conteneur docker sur plusieurs clouds en parallèle.

    Deux retours d'expérience par Theodo et Deliverous ont conclu la journée.

    [AFPy Salt-fr] Annonce : Meetup Salt Paris chez tinyclues - avril 2015

    [carlchenet] Liens intéressants Journal Du pirate semaine #15

    $
    0
    0
    Suivez-moi aussi sur Diaspora* ou Twitter  ou sur Identi.ca Pour cette 15ème semaine de 2015, 5 liens intéressants que vous avez peut-être ratés, relayés cette semaine par le Journal Du Pirate, votre source d’informations pour le Logiciel Libre francophone ! Proxmox : mise en place de 2 nœuds en Haute disponibilité(HA) Backup Checker 1.7 :…

    [tarek] DNS-Based soft releases

    $
    0
    0

    Firefox Hello is this cool WebRTC app we've landed in Firefox to let you video chat with friends. You should try it, it's amazing.

    My team was in charge of the server side of this project - which consists of a few APIs that keep track of some session information like the list of the rooms and such things.

    The project was not hard to scale since the real work is done in the background by Tokbox - who provide all the firewall traversal infrastructure. If you are curious about the reasons we need all those server-side bits for a peer-2-peer technology, this article is great to get the whole picture: http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/

    One thing we wanted to avoid is a huge peak of load on our servers on Firefox release day. While we've done a lot of load testing, there are so many interacting services that it's quite hard to be 100% confident. Potentially going from 0 to millions of users in a single day is... scary ? :)

    So right now only 10% of our user base sees the Hello button. You can bypass this by tweaking a few prefs, as explained in many places on the web.

    This percent is going to be gradually increased so our whole user base can use Hello.

    How does it work ?

    When you start Firefox, a random number is generated. Then Firefox ask our service for another number. If the generated number is inferior to the number sent by the server, the Hello button is displayed. If is superior, the button is hidden.

    Adam Roach proposed to set up an HTTP endpoint on our server to send back the number and after a team meeting I suggested to use a DNS lookup instead.

    The reason I wanted to use a DNS server was to rely on a system that's highly available and freaking fast. On the server side all we had to do is to add a new DNS entry and let Firefox do a DNS lookup - yeah you can do DNS lookups in Javascript as long as you are within Gecko.

    Due to a DNS limitation we had to move from a TXT field to an A field - which returns an IP field. But converting IP to integer values is not a problem, so that worked out.

    See https://wiki.mozilla.org/Loop/Load_Handling#Service_Soft_Start for all the details.

    Generalizing the idea

    I think using DNS as a distributed database for simple values like this is an awesome idea. I am happy I thought of this one :)

    Based on the same technique, you can also set up some A/B testing based on the DNS server ability to send back a different value depending on things like a user location for example.

    For example, we could activate a feature in Firefox only for people in Connecticut, or France or Europe.

    We had a work week in Portland and we started to brainstorm on how such a service could look like, and if it would be practical from a client-side point of view.

    The general feedback I had so far on this is: Hell yeah we want this!

    To be continued...

    [tarek] 5 work week tips

    $
    0
    0

    Our Mozilla work week just ended with an amazing evening. We had a private Mackelmore concert. Just check out Twitter with the #mozlandia tag and feel the vibe. example.

    When they got on stage I must admit I did not know who Mackelmore was. yeah sorry. I live in a Spotify-curated music world and I have no TV.

    At some point they played a song that got me thinking: ooohhh yeah that song, ok.

    Anyways.

    During some conversations a lot of folks told me that they where overwhelmed by the work week and har a very hard time to keep up with all the events. Some of them were very frustrated and felt like they were completely disconnected.

    I went through this a lot in the past but things improved throughout the years. This blog post collect a few tips.

    1. List the folks you want to meet

    This one is a given. Before you arrive, make a list of the folks you want to meet and the topics you want to talk about with them.

    Make that list short. 10, no more.

    2. Do not code

    This is the worst thing to do: dive into your laptop and code. It's easy to do and time will fly by once you've started to code. People that don't know you well will be afraid of disturbing you.

    Coding is not something to do during your work weeks. If you need a break from the crowd that's the next tip.

    3. Listen to your body

    A work week is intense for your body. By the end of the week you will look like a Zombie and you will not be able to fully enjoy what's happening. If you are coming for a far place, the jetlag is going to make the problem worse. If you're a partygoer that's not going to help either. All the food and drinks are not really helping.

    I've seen numerous folks getting really sick on day 3 or 4 because they had intensive days at the beginning of the event. It's hard not to burn out.

    Some (young) folks are doing fine on this. I know I am not. What I did for the Portland work week was to skip everything on day 2 starting at 5pm, ate a soup and went to sleep at 8pm. Skipping on all the cookies and beers and goodies gives your body a bit of rest :)

    That gave me the energy I needed for day 3.

    4. Don't hang with your team all the time

    You talk to those folks all the time. Meet other folks, check out other sessions, etc.

    This is especially important if your native langage is not English. I got trapped many time by this problem: just hanging with a few french guys.

    5. Walk away from meetings

    Don't be shy of walking away from meetings that don't bring you any value. Walk out discretly and politely. You are not in a meeting to read hackernews on your laptop. You can do this at home.

    People won't get offended in the context of a work week - unless this is a vital team meeting or something.

    What are your tips?

    [afpyro] AFPyro à Lyon - mercredi 26 novembre

    $
    0
    0

    Un Afpyro aura lieu le mercredi 26 novembre à partir de 19h à l’Antre Autre - 11 rue Terme - 69001 Lyon.

    Cet apéro python sera l’occassion de rencontrer à nouveau les gens de l’AFUP/apéro PHP, autour d’une présentation sur Ruby. Ruby est un langage open source qui met l’accent sur la simplicité et la productivité.

    L’Antre Autre est un lieu où nous pouvons discuter autour d’un verre, et, pour ceux qui le souhaitent, prendre un repas.

    Pour se rendre à l’Antre Autre :

    • en métro : arrêt Hôtel de Ville
    • en bus : lignes C13 et C18 arrêt Mairie du 1er ou lignes 19, C14 et C3 à l’arrêt Terreaux
    • en vélo’v : stations Place Sathonay, Carmélites Burdeau, Place de la paix

    [AFPy-Nantes] Le meetup du 28 avril sera un barcamp

    $
    0
    0

    La prochaine rencontre Python Nantes sera au format BarCamp et se déroulera le mardi 28 avril, à la Cantine de Nantes.

    L'idée est simplement de se retrouver et de décider sur place des sujets de discussions qui vous intéressent, de les aborder ensemble en différents groupes, puis de mettre en commun ce qui s'est dit pendant les ateliers.

    Comme toujours ce meetup est ouvert à tous les amoureux ou curieux du langage Python, nous apprécions particulièrement la diversité des profils qui joignent à nous !

    Ceux qui ont envie pourront prolonger la soirée autour d'un verre en centre ville de Nantes.

    Si vous avez des questions ou des remarques concernant nos meetups, rejoignez-nous sur le chan IRC de l'AFPy Nantes ou inscrivez vous sur la liste de diffusion . Vous pouvez aussi nous suivre sur Twitter via notre compte @PythonNantes :)

    À bientôt !

    [afpyro] AFPyro à Lyon - mercredi 22 avril

    $
    0
    0

    Un Afpyro aura lieu le mercredi 22 avril à partir de 19h au Gîte Numérique - 6 rue Saint Georges - 69005 Lyon.

    Balthazar nous emmène en balade coté backend et nous propose une visite guidée des différents types d’outils communément rencontrés dans le backend d’une application web Python (application et serveur WSGI, serveur web, base de données relationnelles et NoSQL, moteur de recherche, moteur de cache, tâches de fonds, etc...).

    Les participants sont invités à ramener des boissons ou de la nourriture à partager.

    Pour se rendre au Gîte Numérique :

    • en métro : arrêt Vieux Lyon - Cathédrale Saint Jean
    • en bus : lignes C20 ou 31 arrêt Saint Georges ou Sala
    • en vélo’v : stations Saint Jean / Cathédrale, Place Crépu

    Autres liens :

    Viewing all 3544 articles
    Browse latest View live