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

[logilab] PME et simulation numérique : deux mondes qui peinent à se rejoindre

$
0
0

Ce matin, j'ai assisté aux Rencontres INRIA Industries qui portaient sur le thème "Modélisation, simulation et calcul intensif". Y était notamment présenté l'initiative HPC-PME dont l'objet est de faciliter l'accès des PME au calcul hautes performances. Cette conférence a été pour moi l'occasion de formaliser mes réflexions sur les PME et leur recours à la simulation numérique.

http://www.logilab.org/file/145959/raw/2013-HPC-PME.jpg

HPC-PME : une initiative pour montrer aux entreprises l'apport du calcul hautes performances

L'initiative HPC-PME est portée par l'INRIA, le GENCI et OSEO. Elle se propose d'accompagner des PME afin de leur montrer en quoi le calcul hautes performances peut leur être utile pour innover, gagner en compétitivité, et finalement identifier des leviers de croissance. Elle décline ses actions selon quatre axes :

  • la formation et le partage de bonnes pratiques,
  • l'accès à des ressources de calcul pour montrer l'utilité du calcul hautes performances,
  • le soutien d'experts issus de la recherche publique, qui vont transférer leurs compétences en calcul hautes performances,
  • l'intégration dans des dispositifs de financement de l'innovation.

L'accompagnement classique d'une PME consiste à identifier avec elle quels sont les points sur lesquels la simulation numérique peut lui apporter quelque chose, à dimensionner les besoins en calcul nécessaires à ces simulations, à l'aider à porter ses codes de simulation vers des machines de calcul hautes performances, et enfin à effectuer, sur ces machines, un cas de calcul typique.

https://www.logilab.org/file/145960/raw/Screenshot%20from%202013-06-12%2014%3A38%3A43.png

Après deux ans de travail, l'initiative HPC-PME a permis à 30 PME d'être accompagnées et de découvrir en quoi le calcul hautes performances peut les aider à gagner en compétitivité. Ces PME sont issues de domaines d'activités très divers (hydrologie marine, électronique, gestion de l'énergie, finance, etc.) et ont comme point commun d'être centrées sur un métier donné et de ne pas avoir, généralement, de compétences internes dans le domaine du calcul numérique.

Convaincu depuis longtemps que la simulation numérique et l'utilisation intelligente de la puissance informatique peuvent aider les entreprises à gagner en compétitivité, je ne peux qu'être ravi d'une initiative telle que HPC-PME. Toutefois, elle ne me semble pas toujours convenir aux besoins d'une PME qui se pose la question d'un recours à la simulation numérique.

Les besoins des PME : pouvoir, sans investissement, faire des calculs pas forcément complexes

Lors des différentes conversations que j'ai pu avoir avec des dirigeants de PME, il m'est apparu que leur principale demande est de pouvoir effectuer très simplement des simulations en fournissant un jeu de données puis en cliquant sur un bouton. L'initiative HPC-PME a pour objectif de démontrer l'intérêt du calcul hautes performances et d'aider les PME à acquérir les compétences leur permettant de mettre en œuvre des solutions de HPC. Or, la plupart des PME :

  • ne souhaitent pas mettre en place en interne une solution de calcul hautes performances (achat, configuration, maintenance),
  • ne désirent pas acquérir en interne les compétences leur permettant d'utiliser une solution de calcul hautes performances,
  • n'ont pas réellement besoin des performances extrêmes apportées par l'initiative HPC-PME (la Formule 1 de la simulation numérique), mais plutôt d'une solution solide, simple, et à coût d'entrée raisonnable (une bonne voiture haut de gamme suffit),
  • n'ont pas une demande continue leur permettant d'amortir un investissement en calcul numérique.

Les PME ont généralement une expertise métier forte, c'est là leur facteur différenciant. Mais elles n'ont, pour la majorité d'entre elles, aucune compétence en analyse numérique ou en informatique. Attendu qu'elles n'ont que peu de calculs à effectuer, il leur est surérogatoire d'internaliser ces compétences.

Partant de ce constat, je pense sincèrement que la meilleure façon pour une PME d'avoir accès au calcul numérique serait de disposer d'une plateforme dont l'accès est facturé à l'utilisation et qui lui permet de :

  • définir un cas de calcul en termes métier,
  • avoir accès à des ressources de calcul sur lesquelles les codes de calcul sont installés et configurés,
  • lancer en un clic le cas de calcul sur une ressource de calcul offrant des performances suffisantes,
  • pouvoir obtenir de l'aide de la part d'experts numériciens connaissant les codes de calcul (en cas de problème numérique ou de modélisation),
  • offrir des fonctionnalités de partage des cas de calcul selon des règles de sécurité strictes et entièrement contrôlables (typiquement pour faire appel à un expert numéricien, montrer ses résultats au client final ou faire travailler un fournisseur).

[carlchenet] Première mise à jour mineure Debian Wheezy 7.1 normalement ce week-end

$
0
0
Suivez-moi aussi sur Identi.ca ou sur Twitter. La première mise à jour mineure de Debian Wheezy, à savoir la version 7.1 est normalement prévue pour ce week-end. Au menu des mises à jour pour (sauf modifications de dernière minute) : Niveau noyaux : Noyau Linux 3.2.46 Noyau kfreebsd-9 9.0-10 Niveau serveurs : MySQL 5.5.31 modsecurity-apache 2.6.6.6 Niveau langages : PHP […]

[Biologeek] Outils conviviaux

$
0
0

Nous avons récemment déjeuné avec les personnes s'occupant d'Outils-Réseaux dans les locaux de scopyleft (d'ailleurs, si vous passez dans le coin de Montpellier/Clapiers n'hésitez pas à venir nous voir) qui nous ont parlé des outils conviviaux introduits par Ivan Illich :

Illich définit alors trois critères indispensables pour qu'une instrumentation ou une institution soit considérée comme juste ou conviviale :

  • elle ne doit pas dégrader l'autonomie personnelle en se rendant indispensable
  • elle ne suscite ni esclave, ni maître
  • elle élargit le rayon d'action personnel

Critères de convivialité, sur Wikipédia.

Lorsque l'on applique ces critères à l'informatique, on se rend compte du chemin qu'il reste à faire pour obtenir des outils numériques conviviaux. Cela m'a amené à penser à l'utilisation des frameworks comme outils d'industrialisation à l'origine d'une hiérarchisation entre ceux qui connaissent le langage et ceux qui connaissent les méta-outils associés au langage. On en arrive à une hiérarchie entre développeurs avant même de pouvoir rendre ces outils accessibles au grand public.

Permettre à nos outils de communiquer localement sans passer par un réseau distant à des propriétés sociales intéressantes :

  • Interactions physiques couplées à l'interaction du réseau local
  • Renforcement du contrat social
  • Augmentation de l'opacité vis à vis des infrastructures distantes

L'édition en intimité sur un réseau local, Karl Dubost

Pour un projet que l'on a en interne, j'ai pas mal réfléchi à la simplicité extrême que pouvait prendre une application et j'en suis arrivé à la solution conviviale suivante :

  • un seul fichier HTML à transmettre à l'utilisateur final contenant les css/js/html non minifiés et commentés, celui-ci doit être capable de le modifier ;
  • un espace de stockage local pour avoir du cache en situation de déconnexion ou si les données ne sont pas destinées à être échangées/publiées ;
  • une centralisation des données via une API (par exemple webdis) en attendant d'avoir une solution de pair-à-pair efficace pour synchroniser les données entre plusieurs personnes ;
  • la possibilité d'exporter les données dans un format lisible et traitable.

Est-ce que vous avez des exemples d'applications web conviviales ?

[novapost] Circus Sprint @ Novapost July 8th-9th, 2013

$
0
0

Introduction

Circus is a process & socket manager. It can be used to monitor and control processes and sockets.

At Novapost, we usually launch processes on different (virtual) machines, so we wanted Circus to manage processes launched on different servers.

Today we are using circus in production and one nice feature is to be able to monitor all processes and sockets dispatched around our servers from one interface.

Mozilla is coming

Circus is an Open Source project started by Tarek Ziadé and Alexis Metaireau from the Mozilla Services team.

It appears that after one year of development, Mozilla is now looking forward to use Circus internally to manage their service infrastructure.

As a matter of fact we, at Novapost, are also planning to replace our supervisord based infrastructure with circus.

A Sprint to implement clustering

Novapost is organizing a Sprint on Circus for two days in Paris.

From July the 8th to July the 9th 2013.

Pizza and Drinks will be provided.

You are welcome to help us, please register here : http://www.doodle.com/s856fqh4mht32nw6

[Biologeek] Conférences conviviales

$
0
0

Les conférences passives m'ennuient. De plus en plus. Dans la lignée des outils conviviaux, je me demande si l'on ne pourrait pas définir une conférence conviviale ainsi :

  • elle encourage la participation de toutes les personnes présentes ;
  • elle maximise les rencontres et minimise l'organisation ;
  • elle ne génère pas de hiérarchie entre les participants ;
  • elle est source d'inspiration et d'interactions.

C'est ce que j'ai essayé de faire avec les rencontres Django ou plus récemment Pytong et je pense qu'il y a encore beaucoup à explorer dans le domaine.

[No] Un virage - Novapost

$
0
0

Aujourd'hui, c'est mon dernier jour chez DEV 1.0. J'y aurai passé 3 ans environ, au sein d'une équipe soudée, de qualité, et dans laquelle j'ai passé de très bon moments.

Du bon café, un patron plutôt en phase avec mes convictions, une certaine décontraction auprès de certains clients, des projets variés... Tout aurait pu continuer sur ces roulettes assez bien huilées.

Mais...

Mais il y a quelques semaines, j'ai été contacté par Novapost, parce qu'un poste de développeur web s'y ouvrait ; en Python et Django, sur une pile logicielle qui dépote, avec des challenges intéressants. Quant à l'équipe, je la connais (en totalité, il me semble) - ce sont des piliers de la communauté Django francophone.

Ça paraît attrayant, tout ça.

Entendons-nous bien, mon travail chez Dev 1.0 n'était pas le bagne ou la galère. Pour être juste, l'utilisation systématique ou même systémique du langage Java pour ses développements peut se comprendre ou s'entendre. Mais je me suis toujours senti mal à l'aise dans ce langage avec lequel je dois me battre pour arriver à mes fins. Souvent j'ai l'impression d'être en train de raccrocher les wagons, de mettre des rustines. Beaucoup de code, trop de code, trop de scories, pas assez de concision.

Pas "zen".

Je n'ai pas franchement de reproches à faire du point de vue technique. Après tout, un algorithme reste un algorithme. On peut faire autant de choses en Java qu'en Python ou en Ruby, même.

Mais Python me sied mieux. Je me sens "chez moi" quand je fais mes blagounettes du genre Neige FR. Un script ridiculement simple me permet de générer un site statique ; je n'ai qu'à me concentrer sur son contenu. Dès que j'ai besoin d'un bidule qui trifouille des machins, le code coule sous mes doigts et j'arrive rapidement à mes fins. Et après quelques itérations, je raffine, j'améliore, j'optimise. Au final, j'ai ce que je veux : vite fait, bien fait, et sans avoir honte du code que je produis.

C'est pour toutes ces raisons que j'ai accepté l'offre de Novapost. Être développeur, c'est à dire résoudre des problèmes, c'est une oeuvre noble. Le faire avec les outils qu'on aime, à la finition impeccable, c'est une chance.

Lundi prochain, jour de mes 39 ans, je commencerai d'écrire une nouvelle page de ma carrière.

Cette page, pour l'instant blanche, est enthousiasmante mais elle a un revers angoissant. Pour la première fois, j'aurai l'opportunité de télétravailler à 100% - quelques déplacements vers la Kâpitâle sont prévus, cependant. C'est un vrai challenge de mon point de vue ; même si d'aucuns me rassurent du mieux qu'ils peuvent en me disant que j'en fais une montagne.

Dès lors, je me documente, j'essaie de m'organiser. Nous possédons un petit meuble-bureau informatique, hélas enseveli sous un bordel sans nom. Ma première mission sera d'y aménager un espace de travail pour m'y concentrer. J'ai acheté un bon casque audio pour bien m'isoler si besoin (y'a un micro, c'est pour les conférences sous mumble).

J'ai également l'intention d'aller traîner mes guêtres dans l'espace de coworking de la technopôle Izarbel, histoire de ne pas devenir Crusoë sur son île, brasser des idées, rencontrer des télétravailleurs, échanger et partager. De même, mon collègue Benoît se trouvant à proximité, je suis certain qu'il y a de quoi se synergiser.

Je n'exclus pas de me faire quelques sessions sur ma terrasse, hein, en essayant de joindre l'utile à l'agréable.

Il me faudra aussi faire une petite réserve de café en grains. Un bon carburant ça sert toujours.

À lundi.

[Biologeek] Python & JavaScript

$
0
0

J'ai co-présenté avec Vincent des expérimentations utilisant Python et JavaScript lors de la conférence Web-5 qui se tenait à Béziers ces 2 derniers jours. C'était l'occasion de comprendre un peu mieux JavaScript et les frameworks/bibliothèques récentes dans les 2 langages et ça m'a presque réconcilié avec JavaScript. Au programme, il y avait :

  • Django & React : une simple réalisation du tutoriel, peut-être l'exemple le moins intéressant (on ne l'a même pas montré faute de temps) mais le concept de mettre directement son html dans le js me rappelle les belles années de PHP :-) ;
  • Node & Brython : ce qui était à la base un gros troll (JS côté serveur et Python côté client) s'est révélé être ludique puis prise de tête suite à mes déboires avec le parsing JSON de Brython qui est manifestement cassé à l'heure actuelle, en tout cas ça ne m'a pas donné envie d'aller creuser plus loin ;
  • RapydScript : digne successeur de Pyjamas et déniché par Vincent la veille de notre intervention. La lisibilité du code JavaScript généré à partir d'un code utilisant des classes et de l'héritage côté Python m'a vraiment bluffé ;
  • Python 3.3 avec Tulip + websockets & AngularJS : pas grand chose à dire sur Angular si ce n'est qu'il intègrera vraisemblablement Polymer (voir la suite) dans une future version. Par contre l'utilisation de Python 3.3 avec les websockets a été douloureuse, surtout en raison de mon incompétence sur le sujet mais j'ai finalement réussi à faire tourner un exemple minimaliste ;
  • Tornado & Polymer : toujours un plaisir de servir des websockets avec Tornado, dans ce cas précis il renvoyait des données du CPU récupérées via psutil pour tracer un graphe dynamique en temps-réel. La bonne surprise de toute la grappe de technologies utilisées c'est vraiment Polymer qui implémente les Web Components comme le fait x-tags par exemple mais en étant plus complet et en tentant de standardiser une certaine logique dans les templates pour avoir plus de flexibilité avec le Shadow DOM de manière native. Si vous considérez votre application web comme une série de composants réutilisables et indépendants (voir l'exemple du dashboard) ça devient vraiment puissant !

Vous retrouverez l'ensemble de ces exemples codés à l'arrache sur le dépôt dédié à la session mais agrémentés d'un README dédié à chaque exemple qui devrait vous aider à comprendre. N'hésitez pas à bidouiller et à proposer vos améliorations !

[logilab] PyLint 10th anniversary 1.0 sprint: day 1

$
0
0

Today was the first day of the Pylint sprint we organized using Pylint's 10th years anniversary as an excuse.

So I (Sylvain) have welcome my fellow Logilab friends David, Anthony and Julien as well as Torsten from Google into Logilab's new Toulouse office.

After a bit of presentation and talk about Pylint development, we decided to keep discussion for lunch and dinner and to setup priorities. We ended with the following tasks (picks from the pad at http://piratepad.net/oAvsUoGCAC):

  • rename astng to move it outside the logilab package,
  • Torsten gpylint (Google Pylint) patches review, as much as possible (but not all of them, starting by a review of the numberous internal checks Google has, seeing one by one which one should be backported upstream),
  • setuptools namespace package support (https://www.logilab.org/8796),
  • python 3.3 support,
  • enhance astroid (former astng) API to allow more ad-hoc customization for a better grasp of magic occuring in e.g. web frameworks (protocol buffer or SQLAlchemy may also be an application of this).

Regarding the astng renaming, we decided to move on with astroid as pointed out by the survey on StellarSurvey.com

In the afternoon, David and Julien tackled this, while Torsten was extracting patches from Google code and sending them to bitbucket as pulll request, Sylvain embrassing setuptools namespaces packages and Anthony discovering the code to spread the @check_message decorator usage.

By the end of the day:

  • David and Julien submitted patches to rename logilab.astng which were quicly integrated and now https://bitbucket.org/logilab/astroid should be used instead of https://bitbucket.org/logilab/astng
  • Torsten submitted 5 pull-request with code extracted from gpylint, we reviewed them together and then Torsten used evolve to properly insert those in the pylint history once review comments were integrated
  • Sylvain submitted 2 patches on logilab-common to support both setuptools namespace packages and pkgutil.extend_path (but not bare __path__ manipulation
  • Anthony discovered various checkers and started adding proper @check_messages on visit methods

After doing some review all together, we even had some time to take a look at Python 3.3 support while writing this summary.

Hopefuly, forthcoming days will be as efficient as this first day!


[carlchenet] Vrac de mini-messages n°5 : rhel7, PyPy, Prism, Debian Wheezy 7.1, docker, SSH, chromium

$
0
0
Suivez-moi aussi sur Identi.ca ou sur Twitter. Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels observations et commentaires mûris au cours de la semaine passée. Au menu : contenu de RHEL7, la branche 3 de PyPy, question autour de Prism, sortie de Debian Wheezy 7.1, conteneurs Linux avec docker, sécurité autour des clés […]

[Biologeek] Startups et frameworks

$
0
0

En quelques mots, nous savons que l'exercice n'est pas facile, pourriez vous nous donner quelques arguments qui, selon vous, feraient pencher la balance en faveur de Django (avec ou sans la connaissance de Ruby On Rails).

Choix d'un framework pour une nouvelle entreprise. Django ?

Ce n'est pas la première fois que je reçois ce type de mail de la part de personnes souhaitant monter une startup et d'après mon expérience ce choix de framework ne changera rien.

Il y a 3 choses à la limite qui peuvent influer sur le choix technique initial :

  • une brique existante dans un certain langage dont il n'existe pas d'équivalent dans un autre et qui constitue le cœur de la valeur de votre projet (pas le framework donc), ce qui procurerait un avantage compétitif ;
  • un membre de l'équipe qui a une compétence technique sur un langage et qui va la mettre à profit sur le projet car il prend du plaisir à coder avec, à en explorer les possibilités et à se tenir informé des améliorations ;
  • un prestataire avec lequel vous avez l'habitude de travailler et avec lequel vous avez établi une relation de confiance dans votre boulot précédent.

Mais alors pourquoi est-ce que ce choix technique ne va avoir aucune influence malgré ces points ? Pourquoi est-ce que l'on ne trouve aucun article de blog dans la sphère des entrepreneurs sur LE framework qui a permis à telle startup de décoller ? Tout simplement car la réussite d'un projet dépend de tellement d'autres facteurs plus importants (valeur, cible, marketing, relations, recrutements, financements, etc) que le choix du framework en devient insignifiant !

Mon conseil si vous devez faire un choix technique : rencontrez des humains passionnés qui vont mettre en œuvre ces choix, pas seulement les conseiller.

[logilab] PyLint 10th anniversary 1.0 sprint: day 2

$
0
0

Today was the second day of the 10th anniversary Pylint sprint in Logilab's Toulouse office.

This morning, we started with a presentation by myself about how the inference engine works in astroid (former astng). Then we started thinking all together about how we should change its API to be able to plug more information during the inference process. The first use-case we wanted to assert was namedtuple, as explained in http://www.logilab.org/ticket/8796.

We ended up by addressing it by:

  • enhancing the existing transformation feature so one may register a transformation function on any node rather than on a module node only;
  • being able to specify, on a node instance, a custom inference function to use instead of the default (class) implementation.

We would then be able to customize both the tree structure and the inference process and so to resolve the cases we were targeting.

Once this was sufficiently sketched out, everyone got his own tasks to do. Here is a quick summary of what has been achieved today:

  • Anthony resumed the check_messages thing and finished it for the simple cases, then he started on having a template for text reported,
  • Julien and David made a lot of progress on the Python 3.3 compatibility, though not enough to get the full green test suite,
  • Torsten continued backporting stuff from gpylint, all of them having been integrated by the end of the day,
  • Sylvain implemented the new transformation API and had the namedtuple proof of concept working, and even some documentation! Now this have to be tested for more real-world uses.

So things are going really well, and see you tomorrow for even more improvements to pylint!

[Biologeek] 6 mois

$
0
0

Billet qui fait écho à celui publié sur le blog de scopyleft, avec des remarques plus personnelles.

Travailler entre humains,

scopyleft est avant tout une aventure humaine et je découvre chaque jour un peu plus la beauté des personnes avec lesquelles je travaille. Un long chemin reste à parcourir pour réussir à travailler efficacement ET avec plaisir ensemble mais le principal est d'en être conscient et de s'améliorer progressivement.

Le fait d'avoir un facilitateur dans l'équipe permet de désamorcer beaucoup de conflits en devenir avec les clients et de maintenir nos objectifs de respect et d'honnêteté intellectuelle.

sur des projets éthiques et intéressants,

Beaucoup de rencontres, parfois provoquées, d'autres fois impromptues, toujours enrichissantes. J'ai le sentiment que les échanges avec des personnes de divers horizons permettent de construire ce que deviendra scopyleft. Découvrir de nouveaux SCOPairs nous permet également d'identifier les différentes façons de s'organiser au sein d'une structure démocratique.

Quelques surprises avec le positionnement sur un créneau dont les limites sont floues et sujettes à interprétation, difficile aussi de formaliser notre rapport à l'Open-Source. Une rétrospective générale devrait permettre de réajuster tout ça :-).

tout en privilégiant le bien-être et le plaisir de chacun.

Dans ce domaine, il y a des efforts à faire car une partie de la charge a du mal à être répartie. Néanmoins, le premier bilan est plus que positif et me donne beaucoup d'espoir pour la suite. J'avais peur que l'alternance de télé-travail pose problème mais au final c'est plutôt sain à l'heure actuelle.

J'ai progressé dans énormément de domaines au cours de ce démarrage, autant techniques qu'éthiques ou sociaux. Je ne cache pas que j'ai plus appris en 6 mois de scopyleft qu'en 10 ans d'expérience pro.

[noirbizarre] Mes plugins pour Pelican

$
0
0

Depuis mon passage à Pelican comme moteur de blog, j’ai créé deux plugins que je veux vous présenter.

Ces plugins ne sont pas dans le dépôt pelican-plugins car je n’adhère pas forcement au principe de dépôt unique pour tous les plugins.

Je préfère simplement les publier en tant que paquets python standard.

Ces deux plugins sont bien sûr open-sources et testés et toute contribution est la bienvenue.

Pelican Microdata

Ce plugin permet d’insérer des marqueurs sémantiques Microdata (ou microdonnées en français).

Ces marqueurs permettent au moteur de recherche de mieux indexer le contenu de votre site puisqu’ils structurent sémantiquement son contenu.

Je ne ferai pas ici un cours sur Microdata car il est assez facile d’en trouver sur le net.

Ce plugin fourni deux directives:

  • itemscope, une directive de type block permettant d’ajouter un attribut itemscope à un tag:

    .. itemscope:: <Schema type>
        :tag: element type (défaut: div)
        :itemprop: attribut itemprop optionnel (pour l'imbrication)
        :compact: optionnel
    
        Contenu du bloc
    
  • itemprop, une directive de type inline pour annoter du texte avec un attribut itemprop.

    :itemprop:`Texte affiché <itemprop name>`
    :itemprop:`Texte affiché <itemprop name:http://some.url/>`
    

Par exemple, ce document en reStructuredText (issue de la page google sur les microdonnées):

.. itemscope:: Person
    :tag: p

    Je m'appelle :itemprop:`Pierre Dumoulin <name>`,
    mais on m'appelle :itemprop:`Pierrot <nickanme>`.
    Voici ma page d'accueil :
    :itemprop:`www.exemple.com <url:http://www.example.com>`
    J'habite à Strasbourg, en Alsace, et je suis :itemprop:`ingénieur <title>`
    chez la :itemprop:`société ABC <affiliation>`.

sera rendu comme suit:

<p itemscope itemtype="http://data-vocabulary.org/Person">
    Je m'appelle <span itemprop="name">Pierre Dumoulin</span>,
    mais on m'appelle <span itemprop="nickname">Pierrot</span>.
    Voici ma page d'accueil :
    <a href="http://www.example.com" itemprop="url">www.example.com</a>
    J'habite à Strasbourg, en Alsace, et je suis <span itemprop="title">ingénieur</span>
    chez la <span itemprop="affiliation">société ABC</span>.
</p>

Le deuxième exemple, plus complexe (avec des blocs imbriqués), de cette même page s’écrirait:

.. itemscope:: Person
    :compact:

    Je m'appelle :itemprop:`Pierre Dumoulin <name>`,
    mais on m'appelle :itemprop:`Pierrot <nickanme>`.
    Voici ma page d'accueil :
    :itemprop:`www.exemple.com <url:http://www.example.com>`
    J'habite à

    .. itemscope:: Address
        :tag: span
        :itemprop: address

        :itemprop:`Strasbourg <locality>`, :itemprop:`Alsace <region>`,

    et je suis :itemprop:`ingénieur <title>`
    chez :itemprop:`Tartampion <affiliation>`.

Il aurait exactement le rendu suivant, où l’adresse est à la fois un itemprop de type address et un itemscope de type Address:

<div>
    Je m'appelle <span itemprop="name">Pierre Dumoulin</span>,
    mais on m'appelle <span itemprop="nickname">Pierrot</span>.
    Voici ma page d'accueil :
    <a href="http://www.example.com" itemprop="url">www.example.com</a>.

    J'habite à
    <span itemprop="address" itemscope
      itemtype="http://data-vocabulary.org/Address">
      <span itemprop="locality">Strasbourg</span>,
      <span itemprop="region">Alsace</span>
    </span>
    et je suis <span itemprop="title">ingénieur</span>
    chez <span itemprop="affiliation">Tartampion</span>.
</div>

Le mot clef compact permet d’éviter la création de blocs <p> sous le bloc itemscope.

L’installation est tout à fait classique:

  1. installation avec pip:

    ~$ pip install pelican-microdata
    
  2. ajout du plugin dans la configuration de Pelican:

    PLUGINS = (
        'microdata',
    )
    

Pelican Social

Ce plugin permet d’insérer facilement des liens vers du contenu de différents réseaux sociaux.

L’idée m’est venue lorsque j’écrivais mes articles sur Devoxx et que je me suis retrouvé à écrire toutes les URL vers les différents profils de conférenciers une par une. C’est long, fastidieux et répétitif. Les URL sont toujours les mêmes, seul le nom d’utilisateur importe.

Avec ce plugin, lier à du contenu de réseau social devient rapide et facile:

Lier à :twitter:`mon profile twitter <noirbizarre>`
ou :github:`un dépôt github <noirbizarre/django.js>`
devient facile.

Cette première version permet de créer simplement des liens vers:

Les prochaines versions devraient ajouter de nouveaux réseaux sociaux, le support de nouveaux types de contenu ainsi que le support de Python 3.

L’installation est elle aussi tout à fait classique:

  1. installation avec pip:

    ~$ pip install pelican-social
    
  2. ajout du plugin dans la configuration de Pelican:

    PLUGINS = (
        'social',
    )
    

N’hésitez pas à suggérer d’autres réseaux sociaux ou à contribuer pour supporter de nouveaux types de contenus.

[logilab] PyLint 10th anniversary 1.0 sprint: day 3 - Sprint summary

$
0
0

Yesterday was the third and last day of the 10th anniversary Pylint sprint in Logilab's Toulouse office.

Design

To get started, we took advantage of this last day to have a few discussions about:

  • A "mode" feature gpylint has. It turns out that behind perhaps a few implementation details, this is something we definitly want into pylint (mode are specific configurations defined in the pylintrc and easilly recallable, they may even be specified per file).

  • How to avoid conflicts in the ChangeLog by using specific instruction in the commit message. We decided that a commit message should look like

    [my checker] do this and that. Closes #1234
    
    bla bla bla
    
    :release note: this will be a new item in the ChangeLog
    
    as well as anything until the end of the message
    

    now someone has to write the ChangeLog generation script so we may use this for post-1.0 releases

  • The roadmap. More on this later in this post.

Code

When we were not discussing, we were coding!

  • Anthony worked on having a template for the text reporter. His patch is available on Bitbucket but not yet integrated.
  • Julien and David pushed a bunch of patches on logilab-common, astroid and pylint for the Python 3.3 support. Not all tests are green on the pylint side, but much progress was done.
  • A couple other things were fixed, like a better "invalid name" message, stop complaining about string module being deprecated, etc.
  • A lot of patches have been integrated, from gpylint and others (e.g python 3 related)

All in all, an impressive amount of work was achieved during this sprint:

  • A lot of new checks or enhanced behaviour backported from gpylint (Take a look at Pylint's ChangeLog for more details on this, the list is impressively long).
  • The transformation API of astroid now allows to customize the tree structure as well as the inference process, hence to make pylint smarter than ever.
  • Better python 3 support.
  • A few bugs fixed and some enhancements added.
  • The templating stuff should land with the CLI cleanup (some output-formats will be removed as well as the --include-ids and --symbols option).
  • A lot of discussions, especially regarding the future community development of pylint/astroid on Bitbucket. Short summary being: more contributors and integrators are welcome! We should drop some note somewhere to describe how we are using bitbucket's pull requests and tracker.

Plan

Now here is the 1.O roadmap, which is expected by the begining of July:

  • Green tests under Python 3, including specification of Python version in message description (Julien).
  • Finish template for text reporters (Anthony).
  • Update web site (David).

And for later releases:

  • Backport mode from gpylint (Torsten).
  • Write ChangeLog update script (Sylvain).

So many thanks to everyone for this very successful sprint. I'm excited about this forthcoming 1.0 release!

[tarek] 3 years at Mozilla

$
0
0

3 years ago, I left my wife & 1 week old (!) girl to fly to San Francisco for a week, to start a new job at Mozilla.

That was a huge change in my life since I had to interact daily with people in English, cope with the 9 hours timezone and try to keep up the pace of working with smarter people than me (I am still the dumbest.)

I was the only guy in Europe in the Services team, and had to wait until 7pm to actually chat with my colleagues and exchange info. I had numerous late nights of work the first year.

But it was worthing the pain: I was the first Python guy in the Services team and worked to convert the Firefox Sync server to a "state of the art" Python application, along with all the ecosystem around it.

A big challenge I was quite proud of taking. I was trusted to do the right things and helped the team moving off the PHP version.

The Python launch did not go well because of a bug we could not really have avoided, and I had a few sleepless nights and nightmares before everything went back to normal. Eventually, the Python version worked very well and the next apps were built using the same tools & recipes.

The team grew and more Python folks joined later on. I've learned a lot during that time and looking back, those stressful weeks were the best times I had.

Since that first year, a lot of things have changed at Mozilla: Alexis joined the team and I slowly went back to a normal schedule since we've managed to start a 'Europe team' and work together.

The new Paris office opened a few months ago and you can feel that the Europe side of Mozilla is growing big time.

I don't feel like a remote guy away from his office anymore so that's great :)

These days I am doing a lot of work in building tools for server-side developers. I should include qa and devops as well.

Namely: Circus, Vaurien, Loads & Cornice.

I love what I am doing and I think those tools are useful outside our team itself.

Circus & Cornice are starting to get patches from outside Mozilla so that's great.

Last but not least: Everytime a privacy or a patent scandal occurs, I am proud that my thoughts & opinions are exactly the ones that are defended and echoed by Mozilla voices. (Mitchell, Alex Fowler, etc)

Looking foward to the next 3 years.


[tarek] Shutting down Facebook & Google

$
0
0

Last year I was starting to get really annoyed by getting targeted ads because of third party cookies, and in general about the lack of privacy on the internets

I made the decision to not depend on a couple of big companies anymore for all my data in the cloud and to pay for the services I really needed & use the proper Firefox addons to cut down on the ads.

I slowly moved away from Google.

I moved to NewsBlur instead of Google Reader - before Reader was planned to be stopped.

I moved from Gmail to fastmail.fm. That was the hardest one because I was on Gmail since 2004.

Last, I moved from the Google search engine to DuckDuckGo, then to StartPage. The latter gives better results than DuckDuckGo in general because it's a proxy on the top of Google search engine. It just secures your privacy and unlike DDG, you won't get Amazon referral links in your results I'd rather pay a yearly rate at DDG rather than this referral system.

Anyways, I kept my Google account for two reasons: redirecting mails to my fastmail account and using Google+ because I like this service a lot. The redirection is not important anymore. After over a year of redirection - people should know how to reach me :)

I also had Facebook to stay connected with my non-geek friends mostly. I also use Twitter a lot.

However, the recent privacy scandals made me think a bit about how I use all these services.

First of all, G+ and Facebook provide features to share privately some data to a specific set of people. We've seen that our privacy is not guaranteed. They'll give your data away if they're asked.

And well, they are commercial companies that need to sell ads, so your private content is used anyways. Just look at the ads that are displayed besides your e-mail when you use GMail.

So while there's an incentive to let you share data thinking it's not public, shit happens. So I don't see the point of pushing anything non-public in those silos. And it turns out that I am mostly a consumer so I am fine using apps like G+ with no account -- and if possible via Tor.

If I have cool stuff to talk about, I can blog and probably do a better job in one blog post than in numerous G+ or FB posts.

Twitter on the other hand, is mostly shouting out in public your opinions, promoting your projects. I barely use the DM feature.

Twitter is not different of course from Google & Facebook - they need to sell ads and your data is used for this, but at least it's easier to control that you're only pushing public stuff.

Given all of this, I have deleted my Google and Facebook accounts yesterday

(well, for FB unfortunately I reactivated it today because I lost access to my Spotify Premium account - so until this is solved, my FB is still active but it's a matter of days.)

All of this if of course is the tip of the iceberg since we eventually found out that governments can just extract content from the flow that goes through undersea cables.

But what I am doing is still important. It's a political act that will shape the future if we're a bunch of people acting like this. We need to show through our online habits and actions that we care about our privacy.

On the phone side, I guess I am in a pretty good shape since I use Firefox OS. The only part that worries me now is the hardware.

Now my next task is to teach my kids how important privacy is, so that they clearly understand what's going on when they are using the internets.

[carlchenet] Vrac de mini-messages n°6 :

$
0
0
Suivez-moi aussi sur Identi.ca ou sur Twitter. Comme chaque semaine, voici les dents/tweets intéressants de la semaine dernière que j’ai publiés sur Identi.ca ou sur Twitter, revus et augmentés d’éventuels observations et commentaires mûris au cours de la semaine passée. Au menu : Idiomes et astuces Python, Redis, python-memcache, HaProxy, Debian Wheezy. Mise à jour du Writing Idiomatic #Python Book http://www.jeffknupp.com/writing-idiomatic-python-ebook/ => un livre que j’aime beaucoup, qui présente […]

[Biologeek] OpenData France

$
0
0

Il faut donc appartenir. N'appartenir à personne, c'est ne devenir personne. Mais appartenir à une culture, c'est ne devenir qu'une seule personne. On ne peut pas devenir plusieurs personnes à la fois sauf à connaître des troubles d'identité qui compromettent son insertion dans le groupe. […] Cette altération des représentations de soi et des interactions quotidiennes provoque régulièrement des troubles de l'identité : quand on ne sait pas d'où l'on vient, on ne peut pas savoir où l'on va.

Les nourritures affectives, Boris Cyrulnik.

J'étais aujourd'hui à la réunion de création d'une association intitulée OpenData France et regroupant diverses instances de la puissance publique du territoire national, l'occasion de voir si la situation avait évoluée depuis mes précédentes incursions dans l'OpenData.

Malheureusement, les thématiques de fédération et d'inter-opérabilité soulevées — à juste titre — sont loin d'être les réels freins au développement de l'OpenData. L'OpenData était la promesse d'un engagement citoyen et d'une ré-appropriation de sa citoyenneté via les données publiques. Si l'OpenData est un échec (et pas grand monde n'a envie de l'accepter semble-t-il), ce n'est pas un problème de portail mais de rencontres.

Ces rencontres n'ont pas eues lieues car les citoyens ne sont jamais invités à ces réunions. J'ai assisté toute la journée à des discussions techniques car c'est un domaine factuel dans lequel on peut se réfugier facilement lorsque l'on est désemparé (je suis bien placé pour le savoir). Or, c'est un problème sociétal auquel nous sommes confrontés qui se résout par de l'éducation et des groupes de travail regroupant les différents acteurs (citoyens, élus, développeurs ET puissance publique) dans la même salle.

Heureusement, Charles Nepote a terminé la journée en présentant le projet InfoLab de la FING qui tente de mettre en place une culture de la donnée à travers des lieux similaires aux FabLab permettant de prototyper rapidement mais à partir de la donnée. Un outil de médiation pour accompagner la réutilisation de la donnée de manière accessible, ouverte et continue. Ça faisait du bien après des discours prônant encore les hackathons et autres concours sans avenir.

D'autres idées venues pendant la journée (merci Pascal Romain !) :

  • bonne pratique supplémentaire : proposer une application modèle en Open-Source qui utilise les données libérées, cela permettrait de se mettre à la place du réutilisateur d'une part et de fournir un exemple de transformation/appel de la donnée (puisque de plus en plus d'API sont considérées en guise de portail) ;
  • organiser des ateliers de co-construction qui partent d'une problématique pour arriver à un besoin de données (pas exactement le cas des InfoLab qui font l'inverse) afin que la puissance publique puisse publier des données utiles ;
  • rémunérer les citoyens qui actualisent et augmentent la qualité des données, on pourrait même envisager que cela devienne une monnaie alternative pour acquérir des services/applications.

En guise de conclusion je ne peux que réitérer ma demande auprès des acteurs publics :

Aidez les citoyens à s'emparer de l'OpenData…

Sauf que cette fois je peux ajouter :

…et faites-vous aider si vous n'avez pas les compétences pour ça.

[Biologeek] Pytong

$
0
0

Trois bons souvenirs que je retiens de Pytong (si vous voulez un résumé plus complet/technique, je vous invite à aller voir chez Mathieu) :

  • le fait d'avoir été courir avec 7 participants le dimanche matin, certaines n'ayant pas l'habitude de gambader dans la colline et de donner un aperçu du plaisir que l'on peut avoir à le faire ;
  • la joie des participants lorsqu'ils découvraient le lieu du dimanche (et Laurent avait vraiment assuré !) et la diversité des activités qu'il y a pu y avoir sur une journée totalement libre ;
  • Jean-Michel nous rappelant qu'« il faut s'ennuyer pour être créatif et donc bien coder » au cours d'une conférence non technique mais dans laquelle il y avait beaucoup de vécu.

Et 3 actions retenues lors de la rétrospective qui a eue lieue en fin d'événement — en comité restreint — dans le cadre d'une hypothétique prochaine édition :

  • avoir plus d'informations logistiques et de moyens d'interactions sur le site internet ;
  • trouver un moyen de limiter les tensions lors du règlement du repas du samedi soir ;
  • initier rapidement une discussion sur l'intérêt d'une discrimination positive afin d'avoir une plus grande diversité dans les participants.

Merci à tous pour votre participation et votre convivialité. Et merci à Laurent pour toute la logistique et le boulot en amont afin que tout se passe parfaitement le jour J, c'est ingrat mais le résultat était super !

[afpyro] AFPyro à Lyon - le 26 juin 2013

$
0
0

Un Afpyro aura lieu le mercredi 26 juin à partir de 20h au Tooley’s - 7 quai Fulchiron - Lyon 5éme (probablement sur la terrase côté rue Monseigneur Lavarenne).

Aucune présentation n’est prévue, mais nous pourrons débriefer la conférence Pytong qui se tient ce week end à Toulon.

Pour se rendre au Tooley’s :
  • en métro : arrêt Vieux Lyon
  • en vélo’v : stations Place Crépu, Saint Jean, Place Gourjus
  • en bus : bus 31 ou C20, arrêt Saint Georges
Viewing all 3409 articles
Browse latest View live