Parce qu’un journaliste est un citoyen comme les autres

Hier, après avoir lu les grandes lignes de la keynote, j’ai posté ça sur twitter.

Et ce matin, j’ai fait ma première (modeste) action de citoyen numérique : je soutiens financièrement la quadrature du net.

Le déclencheur ? La keynote. Cela fait un moment que c’est le cas, mais la montre d’Apple (comme celles des autres constructeurs), c’est définitivement trop. Les mobiles, les smartphones, les ordinateurs, collectent (beaucoup) trop d’informations sur nous.

Ces objets connectés deviennent de plus en plus présents, or nous ne savons même pas où partent nos données, à quoi elles servent, pourquoi elles sont utiles.

La quadrature me parait aujourd’hui être l’association en France qui combat le mieux ces dérives de la « big data », et se positionne pour la neutralité du net, l’éveil des députés sur les lois anti-terrorisme qui permettent un peu tout (et n’importe quoi), la liberté d’expression, etc.

Mon smartphone fonctionne depuis 4 ans, a l’écran cassé depuis plusieurs mois. C’est un formidable outil de reportage dans la poche.
Mais en tâche de fond monte de plus en plus la sensation d’un côté obscur qui m’empêche d’en jouir pleinement.

J’ai attendu la keynote pour savoir si j’allais acheter le nouvel iphone. Mais non, à la réflexion, vraiment, je préfère donner à la quadrature qu’à Apple.

Evidemment, une association de défense des libertés parait toujours un peu extrême dans ses positions.
Mais posez-vous la question aussi des pratiques de ceux qu’ils attaquent.
Et vous avez un drôle de choix entre deux extrêmes.

L’une me paraissant moins pire que l’autre, c’est désormais chose faite

Et vous ?

Soutenez la quadrature du net.

soutien a la quadrature du net

Après le reverse publishing, il serait temps de passer au « reverse subscription model »



Plutôt que de s’abonner au papier et d’avoir accès au numérique, l’idée est de souscrire une offre numérique et d’accéder au papier.

  • English version @ Paul Bradshaw blog : After reverse publishing, it’s time to consider the ‘reverse subscription model’
  • Spanish version @ media tics : De digital al papel: hacia un modelo de suscripción inversa
  • Le reverse publishing ?

    Le « reverse subscription model » prend modèle sur le reverse publishing.
    Les journalistes publient leurs infos sur le support le plus adapté de façon totalement agnostique. Mobile, ordinateurs, papier, sons, vidéos : peu importe, l’important est que l’information touche le bon public au bon moment dans le bon format.

    Si le principe est simple, il reste peu appliqué en raison de la complexité de sa mise en place dans des organisations old school.

    Philosophiquement, la difficulté réside dans la résistance du middle management – cf l’actualité autour du Monde et du New York Times -, mais le reverse publishing n’est pas le sujet de ce billet.

    Le reverse subscription model ?

    Jusqu’ici la démarche commerciale pour vendre des abonnements est « Abonnez-vous au papier, vous aurez accès à l’intégralité des articles et aux archives ».
    Ou « Abonnez-vous au numérique pour seulement N euros par mois ».
    Ou « Tu viens souvent ? Paie ta dime au bout du Nième article. »

    En gros, le web est vu comme une commodité complémentaire au papier qui reste le coeur de l’offre d’abonnement.

    Inversons la logique : le papier devient une commodité.
    De fait, il n’a pas à le devenir : le format papier est déjà une commodité.
    Il est plus commode que le numérique dans les transports, sur une plage, au bord d’une piscine.
    Au point qu’un journal mouillé, ce sont au pire quelques euros de perdus. Un smartphone mouillé, c’est souvent 500 euros de foutu.
    Le papier est une commodité d’usage pour une lecture sereine, mais n’apporte pas de valeur ajoutée sur le contenu. Sauf à dégrader « exprès » le numérique. Ce qui, chut ne le dites pas trop fort, est encore largement le cas.

    Ca ressemble à quoi, une offre de RSM ?

    « Abonnez-vous à XX, vous aurez accès à l’ensemble des services numériques.
    Pour N euros par mois, vous pourrez aussi retirer jusqu’à 5 exemplaires en kiosque.
    Pour N+n’ euros par mois, vous pourrez retirer jusqu’à 10 exemplaires en kiosque.
    Et si vous souhaitez recevoir nos éditions papier tous les jours, le pack complet est à N+n’+n » par mois. »

    Au même titre qu’une rédaction devrait penser numérique d’abord, l’acquisition / fidélisation devrait aussi penser numérique, le fameux digital first des anglo-saxons.

    A bien y regarder, l’équilibre entre audience – publicité – abonnement – paywall est fondamentalement ingérable : ces objectifs sont contraires ! Comment une stratégie peut-elle être clairement comprise quand on est capable de vous dire en réunion

    « Nous devons faire plus d’audience […] pour que nous puissions rentrer dans les plans médias des annonceurs […] Nous devons aussi fidéliser le lecteur pour remplacer les abonnements papier […]. Nous bloquons l’accès au site au bout de quelques pages vues afin de lui montrer que notre contenu a de la valeur. »

    Sans rire ?

    Les avantages du reverse subscription model ?

    Outre le fait de répondre à une commodité – je prends le train, tiens et si je prenais un journal ce serait cool y a de belles photos, un peu de texte et des mots croisés – le RSM profite de plusieurs bénéfices collatéraux en terme de coûts de production et de distribution.

    En ligne, comme pour le papier, le coût de réalisation est le même pour un lecteur ou pour 10 000. Quand un journaliste fait son boulot, une fois qu’il a entré son article dans le back office, quel que soit le support, le coût est le même.

    La différence se crée sur la production.
    .. en ligne, il sera le même ou marginalement différent que l’on passe d’un lecteur (une page vue) à 10 000 (10 000 pages vues). Il devient plus important en fonction de l’audience, mais les marches de l’échelle sont considérables. Loin de moi l’idée de dire que le web n’est pas cher – les coûts sont réels -, mais ils ne sont pas totalement dépendants du nombre de lecteurs – ils sont plus dépendants des choix technologiques.

    .. sur le papier, les coûts de production sont directement liés au nombre de lecteurs : chaque impression de journal coûte. Pas très cher, certes, mais il coûte.

    L’écart se creuse sur la distribution.

    .. en ligne, les coûts de production et de distribution sont, d’une certaine manière, mélangés. Une fois que l’article est publié, s’il est bon, il sera relayé sur les réseaux sociaux, mis en lien depuis d’autres sites, bien référencés, et sur le long terme devient une source récurrente d’audience – merci la longue traine.

    .. pour le papier, le coût de distribution est autrement plus élevé. La logistique nécessaire pour distribuer chaque matin une dizaine d’exemplaires dans un kiosque de l’Aveyron ou en plein centre de Paris est important. Au point que cette distribution représente la principale aide apportée par l’Etat à la presse.
    Il n’y a pas de modèle économique au papier sans cette aide.

    Le RSM pose un vrai problème en l’état actuel de la technologie disponible dans les kiosques.
    Si on applique le RSM d’un coup, il y a un souci d’approvisionnement et de fausse promesse en cas d’afflux de demande sur un point de vente. Exemple : abonné par RSM, vous partez le 1er aout via la gare de Lyon. Il est possible que les quelques dizaines d’exemplaires de votre canard soient partis assez vite. Or, vous êtes abonnés : vous avez acheté un service qui n’est pas honoré. Bonjour le service client.

    Avec un chouilla de technologie, on pourrait par contre gérer les fluctuations de la demande et adapter l’offre. Imaginez une imprimante, dans le kiosque, qui imprime en quelques secondes votre édition, comme une mini rotative.
    Placée à l’arrière du kiosque, connecté en temps réel au logiciel de vente, elle pourrait déclencher toute seule l’impression de 5 exemplaires (ou 10, ou 100 en fonction du souhait du kiosquier) dès qu’il ne reste plus que deux exemplaires en vente.
    Ou être lancée à la demande par le kiosquier.

    Alors, on le met en place ce reverse subscription model ?

    A propos de reverse, vous noterez le subtil reverse gif pour magnifiquement illustrer ce billet, gif inversé trouvé ici.

    Journalisme et code : 10 grands principes de programmation expliqués

    / Ce billet est une traduction autorisée par Paul Bradshaw de son billet « Coding for journalists: 10 programming concepts it helps to understand« .
    Ce travail fait suite à un commentaire de Béatrice sur ce post de Pierre Tran dans la communauté des journalistes.
    Vous pouvez remercier François Jacques pour la traduction des 2 premiers tiers, et Ingrid Pigueron pour le reste de l’article, la seconde passe de corrections et la relecture. À noter que le boulot d’Ingrid étant la traduction et le secrétariat de rédaction, c’est une chance de l’avoir dans la communauté pour ce type de post (et d’autres trucs aussi hein ^^).

    Voilou, c’est fini pour l’introduction, bonne lecture, et n’hésitez pas à utiliser clearly pour l’imprimer ou le conserver propre, c’est le genre de billets sur lequel on revient 🙂


    Si vous envisagez de vous mettre à la programmation, il y a de fortes chances que vous butiez sur une série de termes techniques, un jargon qui peut être particulièrement rébarbatif, notamment dans les tutoriels, dont les auteurs ont tendance à oublier que vous êtes inexpérimentés en programmation.
    Les sections qui suivent décrivent et indiquent dix concepts que vous êtes susceptible de – non, que vous allez – rencontrer.

    1. Variables

    Les variables s’apparentent à des boîtes, qui peuvent contenir plusieurs éléments à différents moments. Photo : Wolfgang Lonien
    Les variables s’apparentent à des boîtes qui contiennent un élément que l’on peut sortir (= afficher) à différents moments. Photo : Wolfgang Lonien

    La variable est l’un des éléments fondamentaux de la programmation. En quelques mots, une variable permet de faire référence à un élément afin de pouvoir l’utiliser dans une ligne de code. Voici quelques exemples :

    • Vous pouvez créer une variable pour stocker l’âge d’une personne et l’appeler « âge ».
    • Vous pouvez créer une variable pour stocker le nom d’un utilisateur et l’appeler « utilisateur ».
    • Vous pouvez créer une variable pour compter des événements et l’appeler « compteur ».
    • Vous pouvez créer une variable pour stocker la position d’un élément et l’appeler « index ».

    Les variables peuvent être modifiées, c’est là que réside leur vraie puissance.
    Un nom d’utilisateur peut être différent chaque fois qu’un fragment de code est exécuté.
    L’âge peut être ajouté à un moment spécifique de l’année.
    La valeur d’un compteur peut être incrémentée d’une unité à chaque nouvel événement. Il est possible d’ajouter ou de supprimer des éléments à une liste d’éléments.

    Les variables peuvent également être combinées : un âge (une variable) peut être calculé en fonction d’une date de naissance (une autre variable).

    2. Chaînes, entiers et autre jargon pour décrire les types de données

    Dans l’univers du code, une chaîne est une série de caractères. Image by Kate Ter Haar.
    Dans l’univers du code, une chaîne est une série de caractères. Image by Kate Ter Haar.

    Il existe différents types de variable qui impactent ce que vous pouvez en faire. Les types de variable les plus fréquents sont les suivants :

    • Nombres : entiers ou flottants (avec des décimales)
    • Texte : généralement appelé chaînes (« string » dans le code) et indiqué entre des guillemets droits, par exemple : « 17 août ».
    • Listes ou séries (voir l’explication ci-après) : normalement indiquées entre des crochets avec les valeurs séparées par des virgules, par exemple : [« Paris », « Bruxelles », « Montréal »]
    • Dictionnaires (ou « dict ») (voir l’explication ci-dessous) : normalement indiqués par des parenthèses, deux-points et des virgules, par exemple : {« Age »: 23, « Nom »: « Jeanne »}

    C’est important, car des problèmes peuvent survenir lorsque le code détecte des informations dans un format incorrect. Par exemple, vous ne pouvez pas effectuer de calcul avec des chaînes (logique, une chaine est du texte) ou, parfois, combiner du texte avec des chiffres.
    En pareils cas, la programmation implique souvent d’indiquer au code de considérer « 7 » comme un nombre et non comme une chaîne, voire de convertir « sept » dans son équivalent numérique. Les ordinateurs excellent pour effectuer des tâches de façon répétitive, mais ils ont besoin d’instructions explicites.

    3. Classes, identificateurs et sélecteurs

    Les sélecteurs comme .nav permettent de « capturer » ou de contrôler les éléments d’une page web. Photo : Peter Fletcher
    Les sélecteurs comme .nav permettent de « capturer » ou de contrôler les éléments d’une page web. Photo : Peter Fletcher

    Le code HTML utilise class= et id= pour identifier des types de contenus spécifiques et permettre de les manipuler avec un autre code. Par exemple, le code d’une page web peut se présenter comme suit :

    <div class="article">
    <ul class="nav">
    <h2 class="subhead">
    <div id="footer">

    Il existe au moins trois façons de rendre ces classes et ces identificateurs utiles :

    • Leur style peut être défini grâce à un fichier CSS.
    • Ils peuvent être modifiés avec Javascript ou d’autres langages.
    • Ils peuvent être identifiés et récupérés (on parle alors de « scraping ») avec un langage comme Python, Ruby ou PHP.

    Le plus souvent, ces possibilités reposent sur des sélecteurs. Ces sélecteurs indiquent une classe par un point et un identificateur par un hashtag, par exemple :

  • .article (pour class= »article »)
  • #footer (pour id= »footer »)
  • Si ces symboles s’affichent ou si vous lisez des documents sur les classes et les identificateurs (« id »), vous savez désormais de quoi il s’agit.

    4. Fonctions et méthodes

    Les fonctions et les méthodes sont comme des titres de recettes. Il suffit simplement d’ajouter les ingrédients. Photo : Melissa Wiese.
    Les fonctions et les méthodes sont comme des titres de recettes. Il suffit simplement d’ajouter les ingrédients. Photo : Melissa Wiese.

    En général, les fonctions et les méthodes sont des recettes comportant un seul mot et permettant d’exécuter des actions dont l’explication nécessiterait autrement de nombreuses lignes de code.

    Voici deux exemples :

    • len, dans certains langages, signifie « indiquer la longueur de l’élément spécifié » ;
    • split, dans certains langages, signifie « fractionner cet élément en un ou plusieurs éléments en fonction d’un critère spécifié ».

    À cet effet, la fonction a besoin d’un ingrédient appelé argument ou paramètre (voir l’explication ci-dessous), et la méthode est associée à un ingrédient appelé objet (voir, là aussi, l’explication ci-dessous).

    La distinction entre les méthodes et les fonctions est subtile et ne mérite pas qu’on s’y attarde ici car leur utilisation diffère d’un langage à l’autre.
    Cependant, elles se distinguent par un critère essentiel, la possibilité de définir vos propres fonctions dans votre code, ce qui s’avère utile pour les actions que vous souhaitez exécuter plusieurs fois.

    D’autres fonctions sont déjà utilisées initialement dans le langage de programmation. Voici, par exemple, une liste des fonctions intégrées de Python. JavaScript dispose également de ces fonctions et de celles-ci.

    Un troisième type de fonction ou de méthode n’est disponible que si vous utilisez la bibliothèque appropriée (voir ci-dessous).

    5. Arguments ou paramètres

    Les arguments sont les ingrédients de vos recettes. Photo : Anne.
    Les arguments sont les ingrédients de vos recettes. Photo : Anne.

    Les fonctions et les méthodes (voir l’explication ci-dessus) ont besoin d’ingrédients, appelés argument ou paramètre, pour fonctionner.
    Les arguments ou les paramètres s’affichent entre parenthèses, après le nom de la fonction, par exemple :
    len(« Paul »)
    len(myname)

    La fonction len, par exemple, indique la longueur d’un argument indiqué entre parenthèses.
    Dans le premier exemple, il s’agit d’une chaîne (indiquée par des guillemets) : « Paul ». Dans ce cas, le résultat serait 4 (4 caractères).

    En revanche, si la variable est une liste, le résultat correspondra au nombre d’éléments dans cette liste et non au nombre de caractères. Pour d’autres types de données, cela ne fonctionnera peut-être pas du tout, et un message d’erreur sera généré.

    La documentation d’une fonction ou d’une méthode devrait vous renseigner davantage sur leur action et sur les arguments nécessaires. En règle générale, ces arguments sont appelés paramètres, mais ces deux mots désignent la même réalité :

      l’un dans un sens général (« Cette fonction comporte un paramètre : un objet à mesurer »),
      l’autre dans un sens spécifique (« En utilisant l’argument « Paul » »).

    Certaines fonctions et méthodes utilisent plusieurs paramètres, séparés par une virgule. Certains paramètres sont facultatifs. Parfois, les parenthèses restent vides, par exemple : ready(). Là encore, ce point sera décrit en détail dans la documentation.

    Lorsque vous apprenez à programmer, il peut être utile de chercher les mots « documentation » et « fonction » ou « méthode » avec l’action que vous souhaitez effectuer ou le nom de la fonction/méthode qui vous pose problème.

    Voici un exemple de fonction utilisé dans le calendrier des événements autour du journalisme et des médias

    function generateCalendar (eventData) {
      monthNames = ["Jan", "Fev", "Mars", "Avril", "Mai", "Juin", "Juil", "Aout", "Sept", "Oct", "Nov", "Dec"]
      weekdays   = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]
      today      = new Date()
      months = []
      generateAllTheMonths(eventData)
    
      $.each(eventData, function(i, event){
        appendEvent(event)
      })
    

    Comment on le traduit en langage courant ?
    . La fonction est destinée à créer le calendrier en allant chercher l’argument eventData
    . Les noms des mois seront affichés et écrits comme indiqués entre guillemets droits
    . Les noms des semaines seront affichés et écrits comme indiqués entre guillemets droits
    . Pour le jour qui correspond à aujourd’hui, on ira chercher l’argument contenu dans le paramètre Date (en l’occurrence ici, il s’agira d’afficher une feuille de style particulière – un petit rond bleu en fond)
    . on génère (=affiche ici) tous les mois qui ont des données correspondant à l’argument eventData. Cela explique le non affichage des mois pour lesquels nous n’avons pas renseigné d’événements.
    . pour chaque événement, on crée une boucle qui…
    . … va chercher les infos de l’argument event, argument qui est décrit plus bas dans le code.
    . et on termine toujours les fonctions par une accolade

    6. Bibliothèques

    Les bibliothèques s’apparentent à des livres de recettes. Différentes bibliothèques résolvent différents problèmes, tout comme vous possédez des livres avec des recettes de cocktails, de gâteaux, etc. Photo : Vintage Sailor
    Les bibliothèques s’apparentent à des livres de recettes. Différentes bibliothèques résolvent différents problèmes, tout comme vous possédez des livres avec des recettes de cocktails, de gâteaux, etc. Photo : Vintage Sailor

    Les bibliothèques sont des collections d’autres fonctions et méthodes, qui permettent d’aller plus loin qu’avec les bases du langage de programmation. En d’autres termes, elles permettent d’utiliser le code développé par d’autres personnes : c’est l’un des aspects les plus puissants de la programmation.

    Pensez à un problème que vous pourriez rencontrer. Il est probable que quelqu’un a créé une bibliothèque apportant une solution : dessin d’une carte, extraction d’informations à partir d’une série de pages web (« scraping »), conversion d’un document, représentation de données sous forme de graphique ou dans des tables interactives, création d’animations ou d’effets.

    Ainsi, il est également utile d’effectuer une recherche en indiquant votre problème, le langage que vous utilisez ou apprenez, ainsi que le mot « bibliothèque ». Par exemple : « cartographie javascript bibliothèque ».

    Ajout Cédric.
    github est le lieu magique pour trouver des bibliothèques. Sur github, la terminologie est un peu différente, mais vous pouvez considérez que ce qu’on appelle dans ce billet une bibliothèque sera un « repository » sur github. Pour récupérer ce repo, sans compte github vous pouvez télécharger le zip qui contient tous les fichiers. Avec un compte, vous pouvez « forker » le repo : les fichiers sont alors collés dans votre compte github. Ensuite, vous pouvez les « cloner » sur votre ordinateur afin de travailler dessus en local.
    Github mérite largement un autre post – un jour on s’y mettra 🙂

    7. Listes/séries et dictionnaires/dicts

    Les listes sont comme des files de personnes : vous pouvez accéder aux éléments en fonction de leur position. Photo : Sean Drellinger.
    Les listes sont comme des files de personnes : vous pouvez accéder aux éléments en fonction de leur position. Photo : Sean Drellinger.

    Les listes et les dictionnaires sont des types d’informations spécifiques, qui peuvent s’avérer extrêmement utiles en programmation, mais qui peuvent également être source de confusion pour ceux qui n’ont pas l’habitude de les utiliser.

    La terminologie varie : dans certains langages de programmation, les listes sont appelées séries et les dictionnaires, dicts. Cependant, je préfère « listes » et « dictionnaires », car ces termes sont plus compréhensibles.

    Très simplement, une liste ou une série, c’est une liste d’éléments, par exemple :
    [« Asie », « Afrique », « Europe »]
    Le contenu d’une liste peut correspondre à un ou plusieurs des types de données abordés précédemment.
    Les listes sont extrêmement utiles dans deux cas :
    1. stockage d’informations (par exemple, dans le « scraping » ou pour les réponses d’un utilisateur à un questionnaire) ;
    2. répétition d’actions (par exemple, pour représenter chaque nombre ou lieu d’une liste sur une courbe ou une carte). Reportez-vous à la section sur les boucles ci-dessous.

    Un dictionnaire contient des étiquettes (les entrées) et des valeurs (les définitions). Photo : Tanakawho
    Un dictionnaire contient des étiquettes (les entrées) et des valeurs (les définitions). Photo : Tanakawho

    Les dictionnaires sont similaires en ce sens qu’ils sont également structurés sous forme de liste, avec une différence essentielle : il existe une liste de paires.
    Chaque paire possède une étiquette (appelée clé) et une valeur, connectées par deux-points, par exemple :
    « Age »: 24
    Le mot « dictionnaire » a son importance. Envisagez-le comme une collection de mots auxquels sont associées des définitions. Vous pouvez également l’imaginer comme des titres de colonnes (âge, nom, lieu) et des valeurs (18, Sarah, Genève).

    Chaque paire est ensuite séparée par des virgules et le tout est placé dans une liste, délimitée par des accolades, par exemple :
    {« Age »: 23, « Nom »: « Jeanne »}
    Cela est particulièrement utile pour stocker des données possédant plusieurs étiquettes. Par exemple, vous pouvez stocker une liste d’âges sous forme de liste simple. Mais si vous souhaitez connecter chaque âge à un nom ou à un lieu, vous aurez besoin d’un dictionnaire.
    C’est précisément la logique sous-jacente du format de données JSON, utilisé par différentes API (voir ci-dessous).
    Lecture : Data for journalists: JSON for beginners

    Comme les listes, les dictionnaires peuvent contenir tous les types de données sous chaque clé, y compris des listes et des dictionnaires (c’est-à-dire un dictionnaire peut contenir un dictionnaire).

    8. Boucles : for, each, while

    giphy

    Comme indiqué précédemment, l’un des aspects appréciables concernant les listes est qu’elles permettent de répéter des actions de nombreuses fois, ce qui constitue l’une des principales utilisations de la programmation.
    À cet effet, vous utilisez normalement une boucle (« loop »). La boucle commence au premier élément d’une liste, lui applique une action, puis recommence de même pour le deuxième élément, et ainsi de suite, jusqu’au dernier élément.

    Voici quelques exemples :

    • Utilisation de chaque (boucle « each ») lieu d’une liste et positionnement sur une carte
    • Utilisation de chaque nombre d’une liste et adaptation de la taille des barres d’un graphique à barres afin qu’elles correspondent à ces nombres
    • Utilisation de chaque élément d’une liste (par exemple, des codes d’identification) et ajout à une URL partielle pour créer l’URL complète
    • Utilisation de chaque URL d’une liste et exécution de code pour en extraire des informations
    • Exécution d’une animation lorsque (boucle « while ») le score d’une personne est inférieur ou supérieur à une valeur donnée

    La façon dont une boucle crée simultanément une variable et le nombre de fois que la valeur de cette variable change lors de l’exécution de la boucle peuvent être source de confusion. Par exemple :
    numberlist = [1,2,3,4]
    for num in numberlist:
    print num

    Dans ce code, « num » est créé sous forme de nouvelle variable devant contenir une valeur lors de l’exécution de la liste. L’élément num prend successivement les valeurs 1, 2, 3 et 4 avant que la boucle se termine (toutes les valeurs de la liste sont utilisées).

    9. Objets

    Les briques Lego ne peuvent être combinées qu’avec d’autres briques Lego. Elles ne fonctionnent pas avec les briques Duplo. Vous saisissez ? Photo : Cross-stitch Ninja
    Les briques Lego ne peuvent être combinées qu’avec d’autres briques Lego. Elles ne fonctionnent pas avec les briques Duplo. Vous saisissez ? Photo : Cross-stitch Ninja

    Le mot « objet » (« object » dans le code) est employé régulièrement dans les tutoriels sans référence à ce qu’il signifie. Sans trop rentrer dans le détail, quand on parle d’« objet » en programmation, il s’agit généralement d’un élément qui peut être manipulé ou utilisé d’une certaine façon dans le code, comme une variable contenant un âge, un nom, une liste, etc.

    Lorsque le mot « objet » est suivi d’un autre mot, la frustration est à son comble. Par exemple, vous pouvez entendre parler d’un « objet jQuery » ou d’un « objet lxml ».
    Quand les objets sont décrits ainsi, il peuvent généralement être manipulés ou utilisés avec du code provenant de cette bibliothèque :
    Les méthodes jQuery peuvent alors être utilisées sur un « objet jQuery » et les méthodes lxml sur un « objet lxml ». Comment deviennent-ils des objets de ce type ? Dans le code, il y a normalement une variable qui les transforme, à un moment donné, en « objet jQuery », « objet lxml », etc. (pour vous faire une idée plus claire, effectuez des recherches sur ce sujet ou reportez-vous à des tutoriels ou aux commentaires associés à du code).

    10. API

    L’utilisation d’une API permet de poser de nombreuses questions et d’obtenir des données en retour. Photo : Maria Perongini
    L’utilisation d’une API permet de poser de nombreuses questions et d’obtenir des données en retour. Photo : Maria Perongini

    Une API est une interface de programmation d’application (d’après l’acronyme anglais Application Programming Interface). Il s’agit en fait d’une manière de poser des questions et d’obtenir des réponses.
    Les API sont particulièrement utiles en programmation, car elles permettent de poser un grand nombre de questions et d’obtenir tout autant de réponses (généralement sous forme de données structurées), souvent liées à des données directes, sans intermédiaire.

    La programmation se focalise souvent sur la présentation des informations qui en résultent : par exemple, sur une carte, un graphique ou une chronologie.
    Les API sont à la base d’un grand nombre d’applications. Les applications Twitter, par exemple, permettent d’obtenir des réponses à la question « Que tweetent les personnes que je suis ? » à partir de l’API Twitter. Les données qui en résultent sont présentées de différentes façons, selon les applications et leur code spécifique, mais les données sous-jacentes (les tweets) sont les mêmes.

    Les API généralement utiles d’un point de vue journalistique sont les suivantes :
    API « Médias sociaux » (sujets de conversation/contenus partagés par des personnes à un endroit précis/avec un terme particulier)
    API « Actualités » (contenu publié par un journaliste/dans une catégorie spécifique)
    API « Politique » (vote d’un homme politique en particulier, circonscription de cette personne)
    API « Lieux » (latitude et longitude d’un code postal, autorité locale)
    API « Crimes » (crimes commis à proximité d’un endroit à une date précise, issue de ces crimes)

    Si vous disposez d’une grande quantité de données, vous pouvez utiliser une API pour poser la même question à chaque donnée (avec des boucles, voir ci-dessus), par exemple, chaque code postal, homme politique ou mot recherché.
    Les API peuvent également être combinées : par exemple, vous pouvez utiliser les réponses d’une API comme base pour les questions d’une autre.

    Une question à une API prend normalement la forme d’une URL. Par exemple, l’URL pour interroger l’API « Police locale » sur les crimes survenus pendant un mois donné à une latitude et une longitude spécifiques est la suivante : http://data.police.uk/api/crimes-at-location?date=2012-02&lat=52.629729&lng=-1.131592
    Notez que la date, la latitude et la longitude figurent toutes dans l’URL, qui est créée en respectant les indications de cette documentation.

    Ai-je oublié un concept ? Faites-le-moi savoir et j’essaierai de compléter le document.

    Contributeurs à la traduction française
    François Jacques – twitter
    Ingrid Pigueron G+ & twitter

    Les hashtags, un moyen de transformer un site d’info en plateforme sociale ?

    Twitter, instagram, facebook, google+, vine… Et vous, quand allez-vous vous y mettre ?
    Pour un média, intégrer la logique des hashtags, c’est (peut être) commencer à transformer un « simple » site d’information en une plateforme de discussion intégrée dans la partie « contenu » de l’écosystème plus large des réseaux sociaux.

    Vous taguez vos articles depuis longtemps…

    Dans hashtag, il y a tag, ce petit mot anglais qui signifie « étiquette » et qui permet à tout type de contenu de se retrouver associé à un thème. Depuis longtemps la plupart des CMS permettent de taguer les articles pour des usages simples :

    – Quelques apparitions en bas d’articles,
    – des nuages de tags visibles ici ou là,
    – la possibilité de créer des pages « topic » autour d’un thème…

    Bref, les tags servent surtout à ranger les articles.

    … passez donc au hashtag pour regrouper toutes les conversations qui vous intéressent…

    Mais, dans une logique de plateforme, les (hash)tags permettent de tracker l’activité des contributeurs. Sans parler de « big data », un algorithme trie les plus pertinents, les plus populaires, doit permettre un affichage chronologique, etc.
    Le meilleur exemple de cette logique est les tendances de twitter.

    Pour ceux qui s’en souviennent, technorati proposait une solution pour suivre les conversations quelque soit le blog.
    Si technorati semble oublié aujourd’hui – voir l’activité du mot clé journalism par exemple -, il a été l’un des premiers à agréger des sujets autour d’une conversation quelque soit le site émetteur, en s’appuyant sur les tags, les rétroliens et leurs données associées.

    Suivons cette logique : l’enjeu est de pouvoir manipuler les données associées aux tags, et non l’inverse. Le tag devient le coeur de votre contenu, auquel vous attachez des éléments de contenus et des statistiques. Cela permet de dégager des tendances, voir d’avoir une vision plus « humaine » de votre site.

    Regardez l’usage des hashtags, sur twitter comme ailleurs : ils ne sont pas que des mots clés froids et sérieux. Ils permettent aussi d’exprimer des sentiments, de l’émotion, de contextualiser un article, un billet, un commentaire…
    Autant de données totalement absentes des sites d’information actuellement.

    … avec des journalistes « animateur » de hashtags / conversations…

    En poussant la logique jusqu’au bout, les journalistes, aidés par les robots dans leurs tâches les moins gratifiantes (cf la conclusion de Cyrille), pourraient ainsi devenir « propriétaire » de hashtags – de conversations, donc – qu’ils animent comme une communauté.

    Quelle différence entre un journaliste en charge d’un hashtag par rapport au journaliste en charge d’une rubrique ?
    Et bien cela n’a rien à voir 😉
    Un journaliste chef de service s’occupe d’un service qui va gérer une multitude de sujets.
    Un journaliste chef de « hashtags » s’occupera(it) des sujets – peu importe la thématique / le service.

    D’une manière assez amusante, d’ailleurs, quand vous vous occupez de la refonte du site d’un média traditionnel, la navigation par rubrique reprend l’organisation par service de la rédaction. Hérésie, sur le numérique !

    La notion de rubrique ne sert là que à ranger et à coller facilement les responsabilités – un chef de service est aussi chef d’une rubrique, mais cela ne correspond pas à la réalité…
    1. du rythme de production,
    2. des envies de lecture en fonction des moments de la journée,
    3. du fait que ce sont les angles qui déterminent les rubriques, pas les thématiques.

    Cette logique de « casser » une organisation d’un site calquée sur l’organisation d’une rédaction commence à poindre, notamment dans des applis mobiles comme NYTimes Now.

    … et une condition pour passer dans une logique de plateforme : tout le monde peut mettre des hashtag, partout.

    Chez vous, tout doit pouvoir être étiqueté : les commentaires, les posts dans les forums, les billets dans les blogs créés par vos lecteurs, les vidéos, les images, etc.
    En intégrant ainsi les hashtags au coeur de votre contenu, vous devenez un lieu de conversation.

    Ailleurs, sur d’autres plateformes… sociales – comme ce qu’est devenue la vôtre, donc – le public doit savoir qu’en utilisant tel hashtag, son post pourra être repris chez vous. Tout internaute peut ainsi utiliser vos # dans leurs statuts, posts, billets.
    Ainsi, l’ensemble de ces conversations, présentes sur de multiples plateformes, sera regroupé chez vous. Et ailleurs.

    Le calendrier des bons événements autour du journalisme et des médias

    Parce que les petits jeunes – et moins jeunes – qui s’agitent autour des médias ne font pas QUE s’envoyer de courts messages de 140 caractères, mais qu’au contraire ils tentent VRAIMENT de proposer des idées (voir des solutions) pour amener les journalistes et les médias à progresser,

    Parce que les personnes qui organisent ces événements sont poussés par l’envie de partager, que les prix ne sont pas chers, qu’on y retrouve les « vrais » gens qui fabriquent et pas que ceux qui ne font que réfléchir,

    Parce que j’avais aussi besoin de jouer un peu avec du code et avec github dans ma petite session d’auto-bidouille technique du mois de mai ^^,

    et bien nous proposons une carte et un calendrier collaboratifs des événements intéressants autour du journalisme et des médias. Vous y trouverez par exemples les excellents medialab session, storycode, diapéros, journocamp, mais aussi dataharvest ou csvconf.

    Si c’est collaboratif, cela n’en reste pas moins sélectif : tout événement qui s’éloignera un peu du quotidien de ceux qui font – les « makers » – sera potentiellement supprimé.

    Pour ajouter un événement, merci de prendre trois minutes (pas plus, vraiment) pour voir comment ça marche.

    Vous aurez besoin :
    . d’aller sur le tableur partagé ici.
    . de l’url de l’événement
    . du contact principal – cela peut etre un compte twitter, une adresse mail, etc.
    . si vous souhaitez localiser l’événement sur la carte, indiquez l’adresse sur latlong.net et copiez coller latitude et longitude.

    Project naphta, l’extension chrome pour récupérer du texte coincé dans une image

    Récupérer du texte dans une image, c’est joie, merci Project Naphta !

    L’idée est simple : sur google chrome (exclusivement :/), une petite extension qui réalise, en tâche de fond, de la reconnaissance de caractère dans les images.

    Le premier intérêt – limité – est de pouvoir récupérer des textes dans des images tels gif animés et autres loleries.

    Le second intérêt, bien plus riche pour de simples journalistes ou indépendants sans logiciel de reconnaissance de caractère, c’est que project naphta fonctionne aussi sur des documents que vous avez en local sur votre ordinateur.
    Du coup, imaginez un pdf qui est le scan d’une décision de justice : enfer et damnation, sans OCR, difficile d’extraire du texte : vous devez tout réécrire.

    Avec Project Naphta, vous pouvez ! Pour ce faire, quelques prérequis testés, prouvés et approuvés.

    – Une fois l’extension installée, allez dans chrome://extensions/, trouvez Project Naphta, et cochez bien la petite case « Autoriser l’accès aux URL de fichier ». Cf screenshot ci-dessous.

    Capture d’écran 2014-04-24 à 14.36.43

    – pour le pdf : sauvegardez-le dans votre ordinateur, sur le bureau, dans vos documents, ou ailleurs.

    – sous Mac – je ne connais pas la manip sous PC – il suffit de faire un screenshot de votre pdf (cmd shift 4) puis d’ouvrir ce screenshot avec chrome.

    Pour de longs pdf, il y a apparemment une ruse avec Automator mais je ne l’ai pas essayée.

    [Via engadget.]

    #journocamp, première édition, premières impressions

    Jeudi 3 avril a donc eu lieu le #journocamp, premier événement organisé par et pour la communauté des journalistes qui tâtent un peu des outils modernes.

    Sur la forme, tout s’est bien déroulé. C’était un chouilla speed en raison du temps dont nous disposions, mais pour une première édition, il n’y a eu aucun souci ni flottement hasardeux.
    Ziad a parfaitement géré le timing après un rapide brief de 10 minutes sur le déroulé de la journée.

    IMG_20140403_161756

    La réussite d’un barcamp dépend toujours des participants. Ce fut un régal de vous avoir, car tout le monde a joué le(s) jeu(x).
    En arrivant à l’heure, d’abord : les équipes de Google – qui organisent un paquet d’événements – étaient impressionnées par votre ponctualité !
    En enfilant – tous ou presque – les t-shirts. Très très épatés, et un grand merci parce qu’on a un peu lutté pour les faire.
    En étant cool, détendus, souriants, prêts à partager… une super ambiance ! Enfin, c’est ce que j’ai ressenti. Mais peut être que je planais un peu, rêvant les yeux éveillés de votre présence ;o)

    Il y a forcément des points à améliorer, notamment
    . un planning moins tendu : avec une heure et demi de plus, on aurait pu faire 3 sessions, donc moins d’ateliers en râteau, et donc moins de frustrations type « Han mais je sais pas trop quoi choisir ».
    Et une frustration perso : nous n’avions pas le temps de faire le tour de présentation typique des barcamps, où chacun se présente Prénom – Pseudo – Mots clés.
    . des tee-shirts ou des étiquettes plus lisibles. Et peut être placer les infos ailleurs que sur le coeur pour les demoiselles. « On a passé l’après-midi à me mater les seins ». Marrant – ou pas.

    [collapse id= »collapse_44″]
    [citem title= »A lire à propos du #journocamp » id= »citem_11″ parent= »collapse_44″ open= »yes »]

  • Pour le moment Philippe est le premier à avoir dégainé un billet
  • Les compte-rendus seront dispo via ce google doc. Nous devons reprendre les notes des uns et des autres.
  • mais vous êtes nombreux à en avoir parlé en ligne ;o).
  • [/citem]
    [/collapse]

     

    Sur le fond, il est un peu tôt pour avoir une visibilité sur ce qui s’y est dit, mais les premiers retours sont positifs ! Des comptes-rendus seront rédigés et postés, accessibles à tous en licence CC/by.

    Deux points que j’ai retenus / entendus, les votres sont les bienvenus en commentaire ou sur vos blogs, Facebook, g+, tumblr…

    . Lancement de la JEFA, l’association des Journalistes Enquêteurs Francophones Associés.

    Après avoir contacté Mark Lee Hunter (site web perso) en janvier dernier pour la fiche de lecture sur son livre autour de « L’enquête par hypothèse », je l’ai prévenu il y a quelques mois du #journocamp. Nous avons échangé sur le manque de visibilité en France – et plus largement dans les pays francophones – des bonnes pratiques autour de l’investigation.

    L’idée a mûri, et Mark est arrivé au #journocamp avec une excellente nouvelle : il a créé la branche francophone du gijn.org – le Global Investigative Journalism Network.
    Nous y reviendrons plus tard, mais pour faire vite : le but de l’association est de fédérer un réseau de journalistes d’investigation francophones pour fluidifier le travail en commun. Comme il l’a expliqué jeudi, aujourd’hui les entreprises sont mondiales, les journalistes doivent s’organiser pour travailler ensemble plus efficacement.

    Pour ceux que cela intéresse, les 9, 10 et 11 mai à Bruxelles a lieu DataHarvest, l’événement qui rassemble journalistes d’investigation, spécialistes de la donnée et codeurs.

    . Les décodeurs + enquête ouverte + détective.io + datajournalisme + formats longs type racontr + vous = journalism reloaded

    En mettant l’accent sur l’aspect « moderne » de la lecture en ligne, qui peut mêler audio, vidéo, texte, liens, animations, etc., nous avons tenté de marquer la différence du web par rapport aux médias traditionnels via le multimédia.
    Nous avons cherché à comparer le produit final du web à ce que nous pouvions voir des articles de presse, émissions de radios ou reportages télé.

    Pour autant, puisque tout le monde peut publier, le journalisme se définit bien par le processus en amont de la publication, qui ne devient alors qu’une étape de diffusion.
    Une logique illustrée lors du #journocamp par Tatiana avec Enquête Ouverte, la plateforme des lanceurs d’info, : le sujet existe dès qu’il est proposé, il ne vit ensuite que par les mises à jour régulières apportées par les journalistes.

    Ainsi, la valeur du journaliste se situe en amont de la publication, dans toutes les phases de recherche, de validation et de mise en contextualisation de l’info.
    En quelque sorte, c’est la conjoncture entre le flux de rédaction et les 5C – Contexte, Conversation, Curation, Communauté, Collaboration (sorry, deux liens vers chez moi)

    Si vous avez fait de belles rencontres…

    … dites-le-nous.
    Tout simplement parce que, outre le plaisir de se retrouver un après-midi et de manger de (bonnes !) pizzas dans la foulée, si des collaborations, des projets se forment suite à ce type d’événements, c’est le bonheur !

    N’hésitez pas à « forker » la communauté comme l’expliquerait Tom Wersinger : créez-en de nouvelles branches, ouvrez la discussion, etc.

    Remerciements

    À la communauté, d’abord, qui reste active ET de qualité malgré un nombre de membres importants : 1664 au 7 avril.

    À Anne, Clément et Jean-Philippe, qui ont permis et facilité l’organisation du #journocamp en l’accueillant dans les locaux de Google France.
    Et, mieux, en nous laissant totalement maître de ce que nous souhaitions faire, dans la forme comme dans le contenu.

    À l’équipe qui m’a aidé pendant les semaines qui ont précédé le #journocamp, avec une mention spéciale à Julien qui a été présent et actif aux grandes étapes – sans lui, pas de bonnes pizzas au Pi-Hour et pas de t-shirts rouges 🙂
    À Gérald, qui a lui aussi bossé sur les t-shirts pour réussir à placer les logos des sponsors ^^
    À Nadia, Maelle, Cyrille et Philippe qui ont apporté rangement de t-shirts, puis distribution, puis photos à la tablette, puis animation d’ateliers… Bref, plein de bonnes choses pour fluidifier le tout !

    Enfin, à l’ensemble des sponsors qui ont apporté très simplement et très facilement leur soutien.

    sponsors_journocamp

    Bref, plein de bonnes choses, à très vite pour les compte-rendus !

    Photo – Gérald Holubowicz