Dirigé par le blog

Blog post driven development is also an alternative way of approaching “definitions of done,” whilst avoiding dull checklists that don’t force you to think for yourself. “It’s not done until it ships” is a well enough axiom to (hopefully) need no further discussion – but for us, it’s not done until it’s shipped, publicly announced, documented, has examples, can be used by a new developer with ease, delights our users, and we’re getting feedback on it.

User stories on steroids – how Estimote uses “blog post driven development” (cache)

Intéressante pratique de la part d’Estimote. Comment impliquer les utilisateurs dans la rédaction du billet de blog ? Quel feedback demander avant même de commencer à coder ?

Reprenez le contrôle

Le futur règlement européen protégeant notre vie privée est menacé par le lobby des géants de l’Internet, qui analysent tout ce que nous regardons et disons en ligne.

Découvrez pourquoi ce règlement est important et comment ces lobbys sont en train de le changer.

Apprenez à échapper à ces entreprises en reprenant le contrôle de vos données.

Agissons maintenant — Contrôle tes données

Joli effort de sensibilisation et d’éducation de la part de La Quadrature du Net avec des didacticiels suffisamment détaillés (cache). Bravo !

Web Components et développement

By moving to a component model, we should strive to have our components be completely self-contained and, ideally, made up of a single file. But thinking in terms of components might actually make our project end up with a larger number of files than a project which did not. The goal is to make it such that those files are not implicitly coupled with one another, and implementing a change in one will not usually necessitate updating a chain of other files.

By moving in data retrieval and styling into the component itself, we actually start to shed a lot of the weight off of the other parts of the app that were a little bit heavier before. The need for the "M" and the "C" in "MVC" might go away entirely...

One Concern, One File (cache)

J’aime beaucoup les approches actuelles (cache) qui tendent à regrouper les fragments de code relatifs à un même composant visuel. L’ajout d’un périmètre permet d’imbriquer les composants (cache) de manière plus saine (cache). En attendant de pouvoir utiliser le scope des CSS de manière native, je vais me contenter d’utiliser RiotJS qui les supporte.

J’espère qu’à terme les navigateurs permettront d’afficher la source des composants web de manière lisible et exploratoire pour un nouveau-venu dans le développement web. C’est un point stratégique critique pour la compréhension du web par le plus grand nombre.

Échec et informatique

CHAOS Manifesto is based on the collection of project case information on real life IT environments and software projects.

CHAOS Manifesto (cache)

C’est l’étude dont je parle lorsque j’affirme que les projets informatiques réussissent rarement. Le tableau récapitulatif est assez explicite :

Project resolution results from CHAOS research for years 2004 to 2012.
2004 2006 2008 2010 2012
Successful 29% 35% 32% 37% 39%
Failed 18% 19% 24% 21% 18%
Challenged 53% 46% 44% 42% 43%

Je vous laisse apprécier le résultat comparatif du pourcentage de réussite entre les gros et les petits projets dans le rapport :-).

★ Le Web est mort

Il n’aura pas fallu plus de 10 ans pour tuer le Web. App-ifié, surveillé, centralisé, marchandisé, déneutralisé et plein d’autres mots en -é qui font flipper. Le sommet de la pyramide actuelle fait tout pour que sa base ne se transforme pas en graphe autonome à l’image du Web et tous les moyens sont bons pour y parvenir : capitalisme, terrorisme, pédo-nazisme, développeurs cyniques et vénaux (j’ai cherché longtemps un mot en -isme mais j’ai pas trouvé). Bref, c’est pas la joie.

Propositions pour reconstruire le Web ces 10 prochaines années. Ensemble.

C’est le sujet de 15 minutes que j’ai proposé pour les 10 ans de ParisWeb et qui n’a (mal)heureusement pas été retenu. Comme j’avais commencé à y réfléchir, je vous le livre un peu brut (il manque 4 mois de recul).

PJLRenseignement, DRM, neutralité, profilage, Snowden, GAFA, terrorisme, guerre économique, écosystèmes fermés, stores, centralisation, bulles filtrantes, la liste pourrait être très longue des atteintes portées au Web ces 10 dernières années. Un Web que l’on rêvait universel, ouvert, a-centré. Ne nous apitoyons pas sur ce que nous avons déjà perdu, créons de nouvelles règles au quotidien.

Affichez la source

Re-use the source, Luke.

Vous avez tous appris en affichant la source des ressources que vous aimiez. Ce n’est plus vraiment possible, sur l’autel de la performance nous avons sacrifié la lisibilité et la compréhension du code source de nos pages. C’est extrêmement dommageable pour les nouveaux arrivants qui (au mieux !) doivent trouver le dépôt, installer les 15 dépendances système, installer la moitié du net avec NodeJS et finalement builder votre site pour comprendre un détail de CSS…

Au pire ajoutez l’URL vers une source lisible de vos fichiers CSS/JS, au mieux arrêtez de minifier des fichiers qui sont de toute façon gzipés (oui, je sais, j’ai du boulot ici aussi). Les navigateurs ont aussi à faire pour afficher la sources des composants web de manière lisible et exploratoire.

Mettez votre veto

Vous êtes de luthiers au service de David Guetta.

Mais vous avez le pouvoir de changer ça. Au quotidien. Vous pouvez prendre part aux décisions stratégiques de votre entreprise, vous pouvez refuser de coder des choses. Vous pouvez proposer des alternatives en phase avec votre vision du Web de demain. Ne vous réveillez pas dans 10 ans en réalisant que vous avez contribué à la mort du Web.

Transmettez vos valeurs

Monsieur, c’est quoi le hashtag dans la CSS déjà ?

Les plus jeunes ont besoin d’être guidés. Vraiment. Donner des cours à l’IUT m’a ouvert les yeux sur le niveau des pratiques et des valeurs transmises dès la découverte du Web. C’est pas joli. Chaque personne venant à ParisWeb peut donner de son temps pour améliorer cette situation. Et l’année prochaine certains de vos étudiants seront peut-être dans la salle. À moins que vous ne préfériez rester dans votre tour d’ivoire élitiste ?

Expliquez votre métier

Tu peux m’aider à connecter mon imprimante en wifi ?

Non, mais par contre je peux t’expliquer ce qu’est le Web et ce que je crée au quotidien. Commencez par votre famille, vos proches, on ne (re)construira pas un Web tout seuls. Il y a un énorme travail d’éducation à avoir pour que la société se rende compte qu’Internet n’est pas Facebook et qu’il y a d’autres enjeux que le terrorisme.

Ayez une longueur d’avance

Pourquoi ta signature est une suite incompréhensible de caractères ?

C’est la stratégie classique à avoir qui est la source d’une dépense inutile d’énergie et qui s’apparente à de la surenchère futile. Sauf qu’elle donne un semblant d’intimité et de militantisme qui sont une arme dans le contexte actuel.

Vous êtes ceux et celles qui ont les compétences techniques pour tester et évangéliser de nouvelles pratiques. Faites-le !

Utilisez à bon escient

Twitter me fait penser à un hurlement de loups.

Ça décharge les pulsions de la meute sans rien apporter de très mélodieux. Or les réseaux sociaux pourraient être un outil formidable de communication et d’optimisme. Interrogez-vous sur votre propre usage.

Est-ce que les outils et techniques dont vous faites la promotion encouragent la convivialité ?

Soyez nomade

Youpi, encore un framework JS !

La course à la technologie va s’accélérer, vos données devront être plus que jamais nomades. Assurez vous qu’elles le soient et qu’elles le restent à travers les licences, les URL, la pérennité du stockage, etc.

Il en va de même avec les connaissances que vous acquérez, est-ce qu’elles sont propres au framework, à la technologie ? Est-ce qu’elles sont transposables ? Toujours au service du Web ?

Ouvrez votre entreprise

C’est partout pareil de toute façon.

Non. Sortez de votre petit confort et allez voir ce qui se pratique ailleurs. Certaines entreprises n’ont pas les même rapports au quotidien. Certaines entreprises n’ont pas les même choix de projets. Certaines entreprises n’ont pas les même objectifs. Certaines entreprises œuvrent pour le Web.

Partagez vos pratiques et vos choix en interne, pas uniquement la mise en application de la dernière techno à la mode. Notre domaine a besoin de davantage de retours d’expériences.

Innovez localement

Tout est surveillé, on est foutus…

Et si le Web que nous connaissons n’était qu’un prototype, un brouillon. Demain on va vers du vrai pair-à-pair avec les réseau de type mesh, peut-être l’occasion de poser de nouvelles bases en terme de confidentialité des échanges et de décentralisation. Un nouveau terrain de jeu qui ne demande qu’à être exploré :-).

Le Web que nous fantasmions est mort. Longue vie au(x) Web que nous allons co-créer !

Écosystèmes fermés

However, that’s not the point. Or, at least, that’s not the end. In the last few months, we’ve shifted more of our attention on the product side from creating tool value to creating network value. What does this mean? Obviously, one form of that value is distribution. And there’s no doubt that something published on Medium has a higher likelihood to find an audience than the same thing published on an untrafficked island on the web.

Medium is not a publishing tool (cache)

Peut-être que la mise en avant de contenus externes sur Medium permettrait justement d’améliorer cette situation ? À moins que cela ne soit pas dans leur intérêt… de qui se moque-t-on ?

Systématique et pragmatique

aim 42 supports software evolution, maintenance, migration and improvement - in a systematic and pragmatic way.

Method Guide

Je suis souvent sceptique lors j’entends « systématique » et « pragmatique » dans la même phrase. Surtout lorsque l’aspect pragmatique est peu décrit. L’adaptation me semble aller à l’encontre de la systématique.

Stratégie de publication

When Quartz launched, we were careful not to call it a website. The ambition extended well beyond that; our domain on the web was merely its first iteration. This raised a few eyebrows from people who rightly pointed to our, uhh, website, and it required some contortions of language. Quartz is…a business news outlet…organization…venture…brand…

Well, that’s all true, but if I had to pick one description, it would be this: Quartz is an API.

[…]

So when we say Quartz is an API, we don’t mean publish once and send it everywhere. We mean Quartz can go anywhere our readers are, in whatever form is appropriate.

“Quartz is an API”: The path ahead for the business site that’s reshaping digital news (cache)

Faut-il aller dans les silos des utilisateurs pour leur montrer qu’une autre voie est possible ? Et contribuer ainsi au système… l’éternel tiraillement.

Performances et proxy

And that’s happening in spite of all the improvements we’ve seen in the last few years. Better tooling. Better browsers. Better standards. Better awareness (at least from a cursory glance based on conference lineups and blog posts). Sure, all of those areas have plenty of room for improvement, but it’s entirely possible to build a site that performs well today.

So why is this a problem? Is the web just inherently slow and destined to never be able to compete with the performance offered by a native platform?

Choosing performance (cache)

Si vous n’avez pas suivi le nouveau service de Facebook, vous pouvez consulter l’excellente revue de blogs (cache) commentée de Baldur Bjarnason. C’est intéressant à plus d’un titre, surtout après ce que j’ai entrepris ici-même. Cela reflète bien les questionnements que j’ai sur la pérennité et l’accessibilité des contenus. Il y a une couche de monétisation bien sûr mais le problème est plus profond. Trop de rédacteurs acceptent que leurs contenus soient dégradés intentionnellement, trop de développeurs acceptent de dégrader des contenus intentionnellement.

Je me demande si des personnes préfèrent cliquer sur les liens en cache sur cet espace ? Pour la lisibilité ? Pour la performance ? Pour ne pas être profilé ? Pour d’autres raisons ?

Python et cache

J’ai eu plusieurs demandes techniques concernant la mise en cache des articles liés cette année. J’utilise la bibliothèque readability-lxml de manière assez standard :

import requests
from readability.readability import Document

def extract_page(url):
    """From an URL, extract title and content.

    The title is shortened through the `short_title` method.
    The content doesn't contain `<body>` tags to be directly
    embeddable in the template and rendered as is.
    """
    # Retrieves the resource and turns it into a doc.
    response = requests.get(url)
    document = Document(response.text, debug=True)

    # The short title is more concise and readable.
    title = document.short_title()
    content = document.summary(html_partial=True)

    # Removing the added <div> and spaces.
    content = content[5:-6].strip()
    return title, content

La seule chose à prendre en compte, ce sont les erreurs particulières qui peuvent être remontées que je gère ainsi :

try:
    title, content = extract_page(url)
except (requests.adapters.SSLError, 
        lxml.etree.XMLSyntaxError,
        requests.exceptions.ConnectionError), e:
    print('WARNING: {error}'.format(error=e))

Dans ces cas je récupère la page à la main. J’avais pas mal de bugs lors du téléchargement des pages mais je viens de me rendre compte des nombreuses versions qui ont été publiées depuis ma dernière mise à jour. J’espère avoir moins à retravailler le markup maintenant… ce qui me permettrait d’automatiser la récupération des vieux articles.