Les tweets «promoted» de Twitter sont des tweets publicitaires (ou presque) que Twitter affiche dans votre Timeline en fonction de vos goûts, passions ou autres détails de votre vie que vous voulez bien lui donner. Accessoirement, cela rend votre Timeline Twitter un brin illisible, et dans certains cas cela peut devenir irritant. N'étant pas un fan de ce type de pratique, j'ai trouvé une solution toute simple pour résoudre ce problème.
GreaseMonkey FTW
J'avais déjà lors de quelques pentests eu recours à GreaseMonkey pour manipuler des codes Javascript un brin hardcore, et j'en avais été pleinement satisfait. Pour faire court, GreaseMonkey est une extension disponible sur pas mal de navigateurs permettant de manipuler en «live» le code de la page, en toute transparence. Autrement dit, vous pouvez appliquer des transformations autant sur le contenu HTML que le code Javascript voire même les styles employés par une page. Cette extension nécessite sur Firefox une installation, mais à ma grande surprise elle est intégrée par défaut dans Chromium, l'alternative libre du navigateur Chrome de Google ! Et ça, eh bien ça n'a pas de prix.
GreaseMonkey (GM) se base sur des scripts Javascripts contenant des métadonnées (description du script, auteur, etc ...) mais aussi du code actif. Le script est chargé selon un modèle d'URL (contenu dans les métadonnées), et peut agir avant ou après le lancement du Javascript sur la page. Autrement dit, on peut faire tout et n'importe quoi avec GM. Enfin, surtout n'importe quoi. Il existe des scripts pour relooker Twitter, pour ajouter des fonctionnalités, pour modifier des comportements de site, etc ... Vous pourrez d'ailleurs en trouver plein sur le site userscripts.org.
And now, ladies and gentlemen, "le" script !
Vous vous attendiez à un script de fou ? A un code intégrant des gros hacks et tout et tout ? Vous allez être déçus. Tout simplement parce que les éléments "promoted" de Twitter possèdent un style qui leur est propre, comme promoted-tweet, promoted-account ou promoted-trend.
La solution: forcer leur disparition à grand coup de CSS et de display: none. Pas moins que cela. Pour réaliser cette modification de manière automatique, j'ai codé en quelques minutes le script suivant:
// ==UserScript== // @author Damien "virtualabs" Cauquil // @name Promote Me Not // @namespace http://virtualabs.fr/pmn/ // @icon http://virtualabs.fr/pmn/pmn.png // @icon64 http://virtualabs.fr/pmn/pmn.png // @updateURL http://virtualabs.fr/pmn/pmn.user.js // @version 1.1 // @description Remove Twitter's promoted tweets from your TL // @match http://*.twitter.com/* // @match https://*.twitter.com/* // @grant GM_addStyle // @licence (CC) Attribution Share Alike (CC-BY-SA) // @resource icon /pmn/pmn.png // ==/UserScript== /* Install some neat CSS rules */ GM_addStyle(".promoted-tweet * display: none * .promoted-trend * display: none * .promoted-account * display: none *");
Le script est téléchargeable à cette addresse et peut être installé automatiquement via un glisser-déposer dans Chromium (faites un glisser/déposer du fichier dans la liste des extensions, menu "Paramètres" onglet "Extensions"), ou via l'extension GreaseMonkey sous Firefox et autres navigateurs compatibles. En espérant que cela vous rende la vie plus belle et plus joviale.
Xavier Niel vient tout juste de présenter son école de programmation, 42. L'initiative est quelque peu inédite mais résonne tout particulièrement dans mon esprit car cela fait des années que je prêche le constat fait par M. Niel: le système scolaire actuel n'est plus efficace dans le contexte des nouvelles technologies. Cela fait aussi écho aux diverses initiatives récentes prônant le développement, telles celle mise en avant par MM. Zuckerberg et Gates ou encore le plébiscite de John Naughton sur le site du Guardian pour l'enseignement de la programmation à l'école. Décryptage.
Back to the future
La programmation c'est le bien. J'ai commencé par cela il y a de nombreuses années, et je crois que ce qui m'a fasciné dans ce domaine c'est tout simplement le potentiel de créativité qu'il offre. La programmation est un outil permettant de créer d'autres outils. Pas moins que cela. J'ai commencé avec du BASIC. Sur un PC 486DX400. Une vieille bête qui tournait sous Windows 3.1. Oui, ce vieil OS bien vieux où l'on devait taper "win" à l'invite MS-DOS pour lancer l'environnement de bureau (quand je pense aux windowsiens qui se moquent du startx ...), mais qui m'a permis de faire mes armes en programmation. Je n'en suis pas resté là, j'ai appris ensuite le C, le C++, l'assembleur, et les langages du web bien plus tard. J'étais au collège. Pendant que les autres passaient leurs soirées devant la télévision ou participaient à des boums, je codais. Je créais. Car coder ça n'est pas simplement "que" pisser du code. Comme le hacking, c'est un état d'esprit, un apprentissage qui entraîne à la logique et à la réflexion. Comme aime le dire Ange Albertini: il s'agit "juste" de résoudre des casse-têtes. Rien que cela. Et les résoudre de la meilleure manière qu'il soit.
Retour à la réalité. La réalité de l'école 42, une "école de programmation" ouverte à tous et gratuite avec une sélection à l'entrée: seuls les meilleurs codeurs seront retenus et se verront dispenser un enseignement digne d'un code guru. A l'époque où j'ai appris par moi-même la "programmation", je rêvais de trouver une école de ce type. Une école où l'on puisse s'épanouir dans la création de code, une école qui valorise les profils comme le mien. Mais je n'en ai pas trouvé. J'ai essayé l'université, une grosse déception. A quoi ça sert d'apprendre le Pascal ? D'apprendre seulement à aligner deux lignes de code sans que l'on sache pourquoi ? We're doing it wrong !. Et maintenant, cette école spécialisée, qui vise à former l'élite des codeurs. Qui vont apprendre à maîtriser le C, le C++, la vie quoi. Où l'algorithmique sera une composante essentielle et pas un truc qui se résume à apprendre par coeur des algos de tri. Il l'a fait. Sincèrement, sur le principe j'approuve totalement. Si, si. J'aurais aimé m'inscrire, il y a quelques années déjà.
We are not code monkeys anymore !
Le programme de l'école semble un brin prétentieux, mais avec des élèves motivés à bloc et ayant une capacité d'adaptation, cette école peut envoyer du poney, comme on dit par chez nous. Néanmoins, j'ai quelques angoisses pour la suite, qui peuvent se résumer à deux grosses angoisses:
Ma première angoisse est issue d'une observation depuis quelques années des profils d'élèves que je croise: lors d'entretiens, lors de stages, durant les meets HZV. Une tendance générale se dessine: ils sont attentistes. Ils sont en école d'ingénieur, apprennent à développer (du moins on le croit) mais ne perçoivent pas forcément l'ouverture que leur donne cette discipline. Certains ont ouvert les yeux et sont conscient de ce que cela leur permet de faire (n'est-ce pas Jonathan ;): je me rappelle la tête d'une connaissance quand je lui ai mis en tête de coder une machine virtuelle, et qui le lendemain me montrait un prototype presque viable. Tout bonnement motivant. Pour la faire courte: il faudrait que les élèves arrêtent de choisir leur école en fonction du salaire qu'ils souhaitent avoir, mais plutôt en fonction de ce qu'ils veulent vraiment faire. De leur passion. Et choisir une école qui met en avant le code, comme Epitech ou 42. Où ils devront s'immerger et repousser leurs limites. Et être créatifs.
La seconde est tout simplement une généralité en France: un développeur, c'est un pisseur de code. Point barre. Le prolo de l'informatique, incapable de réfléchir et qui pond juste le code qui fait quelque chose. "Bah tu cliques sur le bouton là, et ça te fait des chocapics. Okay, tu peux me faire ça ?". J'ai travaillé comme ingénieur R&D auparavant. J'ai pondu aussi du code. Et je me rappelle toujours d'une bonne blague dans le milieu:
«Quel est le futur d'un développeur en France ? Chef de projet !»
Cherchez l'erreur. Tant que l'on considérera la programmation comme une discipline qui consiste simplement à traduire une solution à un problème en langage informatique, les développeurs resteront maltraités et mal payés. Mais la programmation est et restera un art. Créer du code (ou "coder") n'est pas simplement pisser du code, mais apporter une réponse intelligente et parfois brillante à un problème posé, et cela de manière optimale. Coder, c'est tout simplement résoudre un ensemble de casse-têtes de la manière la plus intelligente possible, et faire en sorte que cela fonctionne dans tous les cas. Certains codes méritent le respect, même de la part d'un chef de projet ou d'un ingénieur sécurité. Pour illustrer mon propos, je vous propose de jeter un oeil à ce solveur de sudoku qui fait 67 octets, ou encore ces générateurs de labyrinthes, qui sont des bijoux de code. Allez, une petite vidéo en prime.
Alea jacta est
Comme certains d'entre vous le savent peut-être, chez HZV tous les premiers samedis du mois, c'est l'occasion de se rassembler autour de bières et d'ordinateurs afin d'échanger sur la sécurité informatique, de rencontrer d'autres hackers et de refaire le monde. Mais c'est aussi bien souvent un moment de partage, durant lequel n'importe qui peut présenter un sujet, faire connaître un projet, ou réaliser un atelier pratique. D'habitude, cela se déroule dans les locaux de Sysdream, mais en avril il y a du changement.
On déménage !
Car oui, les locaux de Sysdream c'est bien, mais c'est petit, trop petit, et on se retrouve vite entassé dans pas beaucoup de mètres carrés. Alors quand deux élèves de l'ESIEA proches d'HZV nous proposent de faire un meeting HZV dans leur école, avec un amphi (avec plein de place !) et du matos et de la bière, on ne peut pas dire non. Le meet HZV du mois d'avril, ça se passe donc le samedi 6 avril 2013 de 10h00 à 18h00, dans les locaux de l'ESIEA.
Au programme: des talks, des speakers, du streaming live, des ateliers, des bières et du hack !
Et moi, je peux venir ?
Pour ceux qui ne connaitraît pas le principe des "meets" HZV, la règle est simple: c'est ouvert à tout le monde, sans aucun jugement sur la personne ou les compétences. Que vous soyez novice en sécurité informatique ou confirmé, que vous ayez 12 ans ou 77ans, vous êtes le(la) bienvenu(e). Si vous êtes curieux/curieuse, passionné/e, intrigué/e, ou tout simplement amateur/trice de geekeries et de bière, l'endroit vous est grand ouvert.
Si vous le souhaitez, amenez un laptop ou deux histoire de pouvoir profiter au mieux de l'event; pour ceux qui seraient plus branché hacking hardware, des arduinos ou launchpad voire même des raspberry Pi feront aussi très bien l'affaire !
C'est bien, mais c'est loin ?
L'ESIEA, c'est dans Paris 5ème, accessible via le métro 7 station "Les Gobelins" (ça ne s'invente pas). Si vous venez de province, c'est à un saut de métro de la gare Montparnasse (Métro 6 Nation puis métro 7 à place d'Italie), bref plutôt accessible. Et ne faites pas la moue, certains viennent de Toulon ou de Marseille pour y participer !
Si vous ne pouvez toutefois pas venir, les talks seront enregistrées et probablement streamées sur Internet. Les informations pour accéder au stream et/ou visualiser les vidéos des talks seront diffusées en temps voulu (suivez de près @hackerzvoice =).
Pour plus d'info, je vous renvoie à la page décrivant le programme et la localisation. Sinon, vous pouvez poser vos questions à @hackerzvoice, ou à meeting@hackerzvoice.net.