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

[Biologeek] Merci pour votre attention

$
0
0

If you’re in the audience at a scientific conference, what do you really want? For me, that’s quite simple: understanding the papers that seem relevant to me. So as a speaker, focus not on what you want, but what the audience wants. Your personal goal is to get your message across to those researchers for whom it is relevant. Note in particular that attention is not a part of your goal. Sure, in order to understand a message, people will likely need to pay attention, but solely capturing (or stealing) that attention does not reach your goal. Furthermore, if people get your message without paying attention, that seems like a win–win situation. Therefore, instead of focusing on getting attention, focus on maximizing the use of the attention you get.

Thank you for your attention (cache)

Remarques intéressantes sur l’attention et la clôture d’une intervention.


[Biologeek] ★ Prospective Python

$
0
0

J’ai retrouvé un vieux brouillon de mon intervention aux rencontres Django (novembre 2012) donné sous le titre « Pourquoi je ne veux plus utiliser Django ? ». Je le publie en l’état et je reviens dessus à la fin.

Titre clairement provocateur pour cette intervention aux rencontres Django de Toulouse qui est né d’un ressenti que j’ai depuis quelques mois/années. Je vais essayer de détailler les doutes que j’ai sur le futur de Django et Python. Je vois plusieurs défis majeurs pour les mois à venir :

Python 3

Python 3.0 est sorti il y a 4 ans quasiment jour pour jour (3 décembre). Qui l’utilise aujourd’hui ? Qui a un projet web en production qui repose sur cette version ? Très peu. Principalement car la rétro-compatibilité n’a pas été conservée pour cette version ce qui pose clairement des problèmes de mise à jour des bibliothèques sans lesquelles un projet ne peux pas se faire aussi rapidement qu’en 2.X. C’était un risque énorme qui a été pris et la communauté en paye le prix fort. Combien faudra-t-il encore d’années pour que cela change ? Quels sont les gains réels ? Qu’en est-il de Pypy ?

Et quitte à réapprendre une partie du langage, est-ce qu’il ne faudrait pas aller voir ce qui se fait ailleurs ?

Node.js

Node.js is a tumor on the programming community, in that not only is it completely braindead, but the people who use it go on to infect other people who can’t think for themselves, until eventually, every asshole I run into wants to tell me the gospel of event loops. — Ted Dziuba, Fibonacci’s lover

Phénomène de mode ou futur proche ? Il y a énormément de côtés plaisants à Node.js : notion de callbacks, promesse d’une validation des données partagée entre le client et le serveur, performances, etc. Par contre le manque de maturité est vite bloquant aussi : traceback incompréhensibles, outils insuffisants, manque de bonnes pratiques et de retours d’expériences, etc. Certains ont clairement fait le choix de s’engager dans cette voie mais ça me rappelle bien trop l’engouement autour de Ruby on Rails il y a quelques années auquel j’ai résisté et dont je me félicite aujourd’hui (ce n’est pas une critique de RoR sans lequel Django ne serait très certainement pas ce qu’il est aujourd’hui).

Flask

OH: "Microframework (n): A small amount of crap. See also Framework (n): A large amount of crap." — @nikita_ppv

Django se complexifie. Release après release. L’héritage des class-based views est assez symptomatique du problème (disclaimer : j’ai participé à ce sac de nœuds…) de la généralisation à outrance qui nuit au framework. Les alternatives comme Flask sont alléchantes mais il y a des frameworks basés sur Node.js qui arrivent aussi et qui apportent des réponses aux problématiques de temps-réel, ou plutôt…

Temps-humain

J’ai abandonné le terme temps-réel qui ne veut pas dire grand chose au profit de celui-ci qui repose sur la perception humaine de rapidité que l’on peut avoir avec une interface et qui me semble beaucoup plus proche de la réalité. Il est toujours relativement compliqué d’utiliser les websockets avec Django et même Python. Comment développer les applications interactives de demain ?

Et après ?

It’s so much easier to talk about how something sucks than to talk about how it could be awesome. Negativity is for the lazy. — @defunkt

Parlons d’avenir et de web. Il y a eu 2/3 évolutions ces dernières années dans les implémentations et leurs usages (car les standards existent depuis un moment) permettant d’introduire de nouveaux paradigmes dans le développement d’applications. Voici quelques exemples de pistes à explorer :

  • API-first : le modèle MVC a pris du plomb dans l’aile avec la multiplication des périphériques et des moyens de consommation des données, il faut repenser la gestion de la donnée ;
  • asynchronicité : certaines requêtes mettent plus de temps que d’autres mais ce qui importe c’est la perception qu’à le visiteur de la réactivité de votre application, il manque des outils permettant de gérer ces cas aux limites qui font pourtant parfois la valeur réelle de l’application ;
  • single page apps : de plus en plus de sites se développent en n’utilisant qu’une seule page, il y a même un livre dédié à ce concept, or les frameworks ont bien souvent un contrat unique de requête/réponse par page qui répond mal aux exigences d’une mise à jour partielle de page ;
  • mobilité : le web est dans de plus en plus de poches, à portée de doigts, avec une inégalité des accès au réseau en fonction de la localisation. Il faudrait que les frameworks soient adaptés à ces nouveaux usages avec du stockage local et de la synchronisation, avec des rendus adaptés aux vitesses de connexion, avec des concepts moins gourmands en énergie et en bande passante.

J’espère que ces pistes seront partie prenante des discussions relatives à Django 2.0 ou de nouveaux frameworks que j’espère en Python. Ces nouveaux paradigmes me redonneraient à coup sûr l’envie de développer en utilisant Django ;-).

Retour en 2015

Malheureusement, 2 ans plus tard, j’ai toujours les mêmes doutes sur le futur de Python/Django. J’expérimente avec ReactJS depuis maintenant un an. Relire ce tweet me fait sourire de naïveté :

ReactJS is to Web Components what microformats were to Semantic Web. And I can’t conclude anything from that.

Il y a une effervescence dans la communauté JavaScript qui serait grisante si elle ne cessait de réinventer la roue. Plusieurs fois. Mais force est de constater qu’il y a des pistes intéressantes dans ReactJS : ils ont justement « repensé la gestion de la donnée » avec Flux, ils permettent l’asynchronicité, on peut faire des SPA sans se prendre la tête, ils expérimentent avec la mobilité (React Native et GraphQL/Relay ont été annoncés ce jour). Autant d’approches que je n’ai pas vues dans la communauté Python. Je ne compte pas dire au revoir à Python (cache) car je prends toujours beaucoup de plaisir à coder avec mais je commence à me poser de sérieuses questions sur sa pertinence pour des projets Web réactifs (huhuhu).

[Biologeek] Concepteurs utilisateurs

$
0
0

Il faudrait que les concepteurs soient contraints d’utiliser leurs réalisations pendant quelques mois. Spéciales dédicaces aux architectes de la gare SNCF de Montpellier et de la Villa Méditerranée marseillaise.

[Biologeek] Langages d’apprentissage

$
0
0

It’s with all of this in mind that my recommended language for teaching beginners is now Javascript. I know, I know, it’s quirky and sometimes outright weird, but overall it’s decent and modern enough. More importantly it’s sitting on top of an unprecedentedly ubiquitous cross-platform toolkit for layout, typography, and rendering. Want to display UI elements, images, or text? Use HTML directly. Want to do graphics or animation? Use canvas.

Retiring Python as a Teaching Language (cache)

Je ne pense pas qu’il ne faille apprendre qu’un seul langage, bien au contraire. Apprendre Python pour découvrir la programmation et les algorithmes de bases est intéressant, apprendre C pour découvrir les notions de ressources bas niveau est intéressant, apprendre HTML/CSS/JS pour faire des interfaces est intéressant aussi. Évitons de partager nos propres œillères.

[Biologeek] FinishUp Weekend

$
0
0

Join writers, designers, developers, photographers, engineers and other awesome people to finish what you’ve already started.

FinishUp Weekend

Je suis presque jaloux de ne pas avoir inventé ce concept. Les anti-hackathons ?

[Biologeek] Popularité, stress et décentralisation

$
0
0

Why does it all happen? I think the major problem lies in the fact that we became the consumers of high volume of information and we can’t process all of it. There is too much noise and we don’t have time to properly analyze the content we are served and check where it comes from. And our brains work faster, if we feed them with clear numbers. On the other hand, having a big number of followers is just tempting for authors.

Popularity-driven development (cache)

L’un des avantages de ne plus utiliser un service centralisé comme Twitter au profit de RSS/Atom est de ne plus pouvoir avoir de statistiques sur les lecteurs. Publier pour le plaisir de partager uniquement.

[Biologeek] Code, objectif et intelligence

$
0
0

Billet comportant les liens de veille technologique présentés aux étudiants dans le cadre d’une routine de mes cours.

Programming as it exists now forces us to model, but it does so in an unnatural way. And while teaching ourselves how to program will help us learn how to break systems down, it does so at the risk of focusing on the wrong things. We don’t want a generation of people forced to care about Unicode and UI toolkits. We want a generation of writers, biologists, and accountants that can leverage computers.

Coding is not the new literacy (cache)

J’aimerais bien avoir leur avis sur la pertinence de l’introduction du code à l’école.

And so, its purpose has become even more vague. People don’t know what a personal site is for anymore, so they go through the motions. They put the same things everyone else puts on there. A giant photo of a city. Something that says “Hi, I’m Dave.” Fancy scrolling effects. A bunch of social media icons. An unintelligible skills chart. A quickly neglected blog.

Asking why (cache)

Pour engager la discussion sur les portfolios classiques que je trouve relativement creux. Où est l’expérience ? Où sont les difficultés rencontrées ?

Les ingrédients les plus importants (l’équité de parole, l’empathie, la sur-représentation féminine) sont demeurés les facteurs décisifs (sur tous les autres) indépendamment du mode d’interaction employé. Les meilleures équipes étaient celles qui communiquaient beaucoup, d’une manière équitable et qui possédaient de bonnes compétences en compréhension des émotions des autres.

Pourquoi certaines équipes sont-elles plus intelligentes que les autres ? (cache)

Leur donner quelques pistes pour travailler ensemble sachant qu’ils préfèrent a priori se débrouiller seuls en cours.

[Biologeek] ★ Cours IUT : Composants Web

$
0
0

Transmettre, apprendre : ces deux mots condensent le problème intellectuel de l’école aujourd’hui.
Ils indiquent d’abord un ordre de succession : apprendre a supplanté transmettre. La transformation fondamentale que l’école a connue au cours du dernier demi-siècle a constitué dans la substitution d’un système culturel centré sur la transmission à un système culturel centré sur l’acte d’apprendre, où tout est supposé se jouer entre l’individu et le savoir qu’il a le désir ou le besoin d’acquérir.
C’est cette révolution culturelle silencieuse qu’il s’agissait d’abord de comprendre.
Ses attendus pédagogiques sont archiconnus : l’école traditionnelle s’est trompée, elle a voulu transmettre des connaissances détenues par un maître en les inculquant à des élèves passifs. Cette pédagogie de l’imposition ne marche pas. Il faut lui substituer une pédagogie active faisant de l’enfant l’acteur de la construction de ses savoirs.

Transmettre, apprendre de Marie-Claude Blais, Marcel Gauchet et Dominique Ottavi

Je pensais qu’il suffirait de dépiler le backlog pour ce cours mais cela s’est avéré plus compliqué que prévu. Je suis en proie au doute depuis une semaine sur la position à adopter. Dérouler sur AngularJS comme demandé serait la solution de facilité mais j’ai l’impression qu’ils sont partis là-dessus par méconnaissance des alternatives (le marketing Google fonctionne assez bien). Du coup, je compte m’accorder une petite heure pour commencer sur les Web Components et sur les deux approches possibles (cache) avec d’autres détails plus techniques :

J’ai déjà écrit sur les web components et même expérimenté différentes approches pour une conférences. Cette extensibilité souffre de certaines critiques (cache) que je trouve parfaitement légitimes mais standardisée ou non la machine est en marche. Une bonne façon d’aborder également la discussion sous un angle politico-stratégique avec Google et Facebook pour rappeler l’importance du W3C. On débroussaillera aussi les différentes solutions sous l’angle de la performance, des mauvaises habitudes qu’ils pourraient apprendre avec AngularJS (cache) et des faux espoirs qu’ils pourraient avoir avec ReactJS (cache).

Une fois les bases posées, je compte leur laisser le choix de partir sur l’une des quatre solutions pour continuer et explorer les composants web. S’ils souhaitent ne faire finalement que du AngularJS sans approfondir spécifiquement les directives je suis d’accord aussi, à ce moment on explorera ensemble et je leur conseillerai pour la suite un livre sur le sujet écrit par des personnes de confiance qui n’hésitent pas à nous donner quelques astuces sur les directives et leurs tests (cache) justement.

Au niveau des petits items qui viennent compléter le backlog principal, ce sera l’occasion d’introduire Bootstrap avec notamment UI Bootstrap et React Bootstrap. L’un des participants à la formation m’a déjà fait part de son scepticisme vis-à-vis de Bootstrap en m’envoyant cet article (cache). Encore une discussion intéressante en perspective :-).


[logilab] Generate stats from your SaltStack infrastructure

$
0
0

As presented at the November french meetup of saltstack users, we've published code to generate some statistics about a salstack infrastructure. We're using it, for the moment, to identify which parts of our infrastructure need attention. One of the tools we're using to monitor this distance is munin.

You can grab the code at bitbucket salt-highstate-stats, fork it, post issues, discuss it on the mailing lists.

If you're french speaking, you can also read the slides of the above presentation (mirrored on slideshare).

Hope you find it useful.

[Biologeek] Markdown et Python

$
0
0

Suite des utilitaires utilisés pour générer ce site.

J’ai une arborescence de fichiers markdown que je transforme en fichiers HTML. Je commence donc par les récupérer :

def each_markdown_from(source_dir, file_name='index.md'):
    """Walk across the `source_dir` and return the md file path."""
    for root, dirnames, filenames in os.walk(source_dir):
        for filename in fnmatch.filter(filenames, file_name):
            yield os.path.join(root, filename)

Ce petit utilitaire parcoure un dossier et retourne le chemin d’accès s’il contient index.md. J’ai une seconde fonction qui me permet de parser un fichier markdown et de compiler le contenu avec ses méta-données :

def parse_markdown(file_path, extensions=None):
    """Parse an md file and returns its converted content and metadata."""
    if extensions is None:
        extensions = ['meta', 'codehilite']
    parser = markdown.Markdown(extensions=extensions)
    with codecs.open(file_path, 'r', 'utf-8') as source:
        content = parser.convert(source.read())
        return content, hasattr(parser, 'Meta') and parser.Meta or None

En combinant les deux, on obtient la boucle suivante :

for file_path in each_markdown_from(POSTS_PATH):
    content, metadata = parse_markdown(file_path)

Dans un prochain épisode, on verra comment utiliser les namedtuples à bon escient.

[Biologeek] Des carottes et des poneys

$
0
0

Django Carrots est un atelier de programmation. Le temps d’un week-end, notre objectif est d’apprendre à des développeurs et développeuses, de niveau débutant à intermédiaire, les bases de la programmation en Python et de la création de sites Internet à l’aide de Django.

Atelier Django Carrots

Dommage que je ne sois pas sur Paris à ce moment là. J’aime ces initiatives non discriminantes.

[afpyro] Afpy à Pau le mecredi 11 Février

$
0
0

Un afpyro aura lieu à Pau le 11 Février à 20h30.

Cela se tiendra au fablab MIPS 4 rue Despourrins au premier étage. (Il faut sonner à l’interphone)

jpcw nous fera une petite présentation sur les décorateurs en Python et on causera librement de différent sujets autour de python.

Voir la map

[logilab] Generate stats from your SaltStack infrastructure

$
0
0

As presented at the November french meetup of saltstack users, we've published code to generate some statistics about a salstack infrastructure. We're using it, for the moment, to identify which parts of our infrastructure need attention. One of the tools we're using to monitor this distance is munin.

You can grab the code at bitbucket salt-highstate-stats, fork it, post issues, discuss it on the mailing lists.

If you're french speaking, you can also read the slides of the above presentation (mirrored on slideshare).

Hope you find it useful.

[Biologeek] SNCF, retards et wifi

$
0
0

N’a-t-on pas besoin plutôt d’installer des prises qui fonctionnent dans tous les trains ? D’améliorer la maintenance de la signalisation pour éviter les retards ? De financer des formations du personnel à la communication de crise ?

Le wifi dans le TGV, une promesse depuis 2003, jamais tenue (cache)

Je me disais la dernière fois dans le train qu’en offrant le wifi lorsque le train est en retard ou arrêté il y aurait probablement moins de mécontentement.

[afpy.org] PyconFR'15 : Où nous emmèneras-tu cette année ?


[Biologeek] Accompagnement, non-devis et produits essentiels

$
0
0

Eh bien, on a mis en œuvre un mode de fonctionnement, dans lequel le joueur n’est plus dans l’attente de consignes. Avant, on tirait l’écran, on passait la vidéo, et on disait : "Dans telle situation, toi, tu dois jouer comme ça". Et puis un jour, entre 2007 et 2008, avant de se lancer dans la préparation des JO de Pékin, j’en ai eu ma claque de faire le maître d’école.

Je leur ai dit : "Voyez cette situation, d’habitude, je vous disais comment vous deviez la jouer ; eh bien là, vous allez me dire comment vous souhaitez la jouer". L’idée pour moi était de passer du jeu de l’entraîneur au jeu de l’équipe. De ne plus avoir des joueurs assis, qui se défaussent en cas d’échec sur le staff, mais des joueurs debout, prenant leur responsabilité dans l’aventure collective.

Claude Onesta : "Le handball est un sport un peu à part" (cache)

J’ai mis en ligne une page sur l’accompagnement qui a demandé l’écriture d’une autre sur les non-demandes de devis et enfin sur les produits essentiels. Tous les retours sont les bienvenus avant que je rende ces pages plus visibles.

[raspberry-python] from python import tourism

[afpyro] AFPyro à Lyon - mardi 16 décembre

$
0
0

Un Afpyro aura lieu le mardi 16 décembre à partir de 20h à l’Antre Autre - 11 rue Terme - 69001 Lyon.

Une présentation sur Sentry sera donnée. Sentry est un logiciel permettant de suivre les erreurs pouvant se produire dans vos applications.

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

[Biologeek] Historique de travail

$
0
0

We assume everything we publish online will be preserved. But websites that pay for writing are businesses. They get sold, forgotten and broken. Eventually, someone flips the switch and pulls it all down. Hosting charges are eliminated, and domain names slip quietly back into the pool. What’s left behind once the cache clears? As I found with that pitch at the end of 2014, my writing resume is now oddly incomplete and unverifiable.

All My Blogs Are Dead (cache)

C’est également le cas pour les développeurs web. La plupart des sites sur lesquels j’ai travaillé n’ont pas été archivés et ont tout simplement disparus.

[Biologeek] Google et Open-Source

$
0
0

In general, Google has a massive set of awesome tools for everything from deployment to monitoring; and a broad codebase with libraries that can do everything under the sun. However, that means that when you go outside of the Google environment, you’re suddenly stuck a bit out in the cold — the tools that you use inside Google can’t be used outside, so you have to have a completely separate infrastructure (both literal infrastructure, and code infrastructure).

Learning new things (cache)

À comparer avec Facebook qui a libéré React et Flux. Et qui s’apprête à publier React Native (cache), GraphQL et Relay. Chacune de ces technologies lui donnant un avantage compétitif non négligeable.

Viewing all 3409 articles
Browse latest View live