La nouvelle année s'annonce plutôt pas mal, après une année 2013 plutôt mouvementée: les révélations de Snowden, des hacks en tout genre, le lancement du projet Open It, la nuit du hack, etc ... Toujours des hacks en cours, des projets dans les cartons, et des idées plein la tête !
Open It
Hourra ! Les fêtes sont passées, les délais de livraison aussi et avec 2014 arrive le moment de dresser un calendrier des jalons à venir =). Ainsi, la 12ème édition de la Nuit du Hack aura lieu les 28 et 29 juin 2014, pour laquelle je proposerai un workshop de bidouille hardware/électronique/informatique co-animé avec Tixlegeek. De même, plusieurs soutiens ont des récompenses en attente, à savoir les Minitels et pour certains des journées de hack en ma compagnie, ce sera l'occasion de booker rapidement les dates: je vais communiquer très bientôt sur celles-ci.
L'imprimante 3D suit son cours, je vais relancer une série de commandes cette semaine, en espérant être livré rapidement et pouvoir entamer le montage de la base. L'électronique viendra sur la fin, idéalement il me faudrait le cadre, la visserie/boulonnerie/quincaillerie et 5 moteurs NEMA17. La commande va être passée.
Côté acquisition de matériel, j'ai reçu en cadeau de noël une superbe clef USB permettant de faire de l'acquisition radio sur des plages de fréquences allant de 54Mhz à 1.76Ghz, je me suis installé tout le logiciel et j'ai quelques idées en tête pour les applications: une occasion de fourrer le nez dans GnuRadio et dans le SDR.
La saga du clavier USB continue, j'ai reçu les derniers composants permettant de tester l'interface USB cette semaine. Ne reste plus qu'à câbler, coder et tester, je compte m'y mettre sérieusement un soir cette semaine ou la prochaine. Rien de bien compliqué techniquement parlant, mais si ça fonctionne je pourrais designer un PCB de derrière les fagots et tenter un truc au propre (compter 4 semaines entre le design et la réception du PCB).
Côté Minitel, la carte d'adaptation v2 a bien avancé, encore une fois reste juste à boucler le draft de driver python et finaliser le montage sur breadboard en ce qui concerne le support de clavier. Idem pour la connectique GPIO du raspberry Pi et l'alimentation. Les composants ont été commandés, j'attends que ça arrive.
Comme vous pouvez le voir, pas mal de trucs en cours qui viendront nourrir le blog durant les prochaines semaines, et la documentation OpenSource sur le wiki OpenIt.
Meilleurs voeux
Avec tout ça, je pense que j'ai de quoi être occupé jusqu'à l'année prochaine. Les mômes en plus, et les interactions sociales auxquelles s'ajoute le boulot finiront de me convaincre que l'année de mes 30 balais ne sera pas chômée. Je vous souhaite une très bonne année à tous, tout plein de hacks, de leaks, de nouvelles révélations sur la NSA et ses grandes oreilles, plein de vidéos de l'ami JCFrog et toutes ces sortes de choses !
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
J'ai rendu visite il y a quelques jours à de la famille en Corrèze, terre de prédiléction de notre cher Président, et j'ai pu voir le superbe ordinateur portable que le Conseil Général de Corrèze a prêté à mon petit cousin dans le cadre de l'opération «Ordicollège 19». J'avais entendu parler de cette opération dans les médias, et j'étais donc content de pouvoir toucher à un des ordinateurs portables prêté à un élève. Les nouveaux collégiens corrèziens se voient ainsi tous dotés d'un ordinateur portable, enfin maintenant d'une tablette numérique iPad (depuis 2010).
Tâtons la bête
J'ai ainsi pu manipuler l'engin: un portable de marque Asus (c'est du solide), qui tourne sur Ubuntu. Je n'ai pas forcément pris le temps de regarder la version, mais de mémoire il me semble que c'était à jour. J'ai dans un premier temps tapé quelques commandes, histoire de voir ce qu'il y avait dessus, mais rien de bizarre:
Puis je me suis intéressé à une fonctionnalité typique d'Ubuntu: le sudo su. Mon cousin m'ayant dit que la configuration de l'ordinateur portable ne devait pas être modifiée, règle stipulée dans l'accord de prêt par ailleurs, je m'attendais à ce que cette commande échoue. Eh bien non, je me suis retrouvé administrateur de la machine, avec un bon vieux shell root. Bien sûr, il m'a fallu saisir le mot de passe du compte utilisateur, qui n'est autre que ordico. Mon cousin m'a par ailleurs fait remarquer que les élèves étaient autorisés à changer leurs mots de passe, mais que le système réclamait un mot de passe complexe, et donc que personne ne le changeait.
Par curiosité, j'ai récupéré le contenu du fichier /etc/shadow, histoire de trouver le mot de passe du compte d'administration root. Il m'a fallu peu de temps et une wordlist sur mesure pour arriver à le casser, ceci dit je n'ai pas été déçu. Le mot de passe du compte d'administration n'est autre que ... «ordicollege». Tadaaaa ! Donc bon, au lieu de faire un sudo su on pourrait tout aussi bien faire un su. Ce qui est révélateur dans le cas présent, c'est la contradiction entre la volonté d'empêcher les élèves de modifier le système et l'idée naïve qui consiste à mettre un mot de passe bateau. Difficile dans ce cas de limiter les modifications des systèmes.
Au vu de la progression de popularité des distributions orientées grand public comme Ubuntu, il semble probable qu'une faible proportion des élèves soient un brin connaisseurs ou asseaz curieux pour aller bidouiller le contenu de cet ordinateur mis à disposition, pour y installer des jeux, wine ou autres. J'ai d'ailleurs pu voir DeSmuME (logiciel d'émulation de jeux Nintendo DS) installé sur cet ordinateur portable ... Car oui, les dépôts utilisés sont ceux officiels, là encore je m'attendais au moins à des dépôts maison et centralisés au niveau du Conseil Régional, mais non. Décidémment, la tâche des bidouilleurs en herbe est très facilitée.
Quelques remarques techniques liés à l'opération «Ordicollège»
Une fois rentré, j'en ai profité pour me renseigner sur cette opération, après avoir récupéré l'avis d'un élève. L'opération a été lancée en 2008, et chaque élève de 6ème a reçu entre 2008 et 2010 un ordinateur portable. Elle a été continuée en 2011 et 2012, mais cette fois-ci ce sont des iPads qui ont été mis à disposition (version 1 pour les élèves arrivés en 2011, version 2 pour ceux arrivés en 2012). Un site officiel a été déployé, ainsi qu'une plateforme web de suivi et de maintenance. Pour le coup les informations présentes sur le site officiel de l'opération contiennent du poney en barre. Quelques extraits choisis:
Les premiers et second points peuvent se comprendre, mais peuvent dans la plupart des cas exposer des élèves à des vulnérabilités critiques, et donc exposer de même leurs données personnelles. Toutefois, si les iPads sont administrés comme le sont les ordinateurs portables, je ne pense pas que cela pose de gros problèmes: beaucoup de parents qui possèdent un iPad et qui l'ont jailbreaké peuvent le faire, et ceux qui s'y connaissent en Linux peuvent aussi altérer le contenu de l'ordinateur. Pour le retour à la plateforme, les opérations sont réversibles donc difficile pour un technicien de déterminer ce qui a été fait sur le matériel mis à disposition. Normal, ce ne sont pas des experts en inforensique.
Le dernier point m'a beaucoup étonné, car il est révélateur d'une pratique de la plateforme de maintenance: l'interdiction de création ou de modification du mot de passe de la tablette pour cause de coût de maintenance. Le site mentionne d'ailleurs les raisons de cette interdiction:
<quote>Pourquoi cette interdiction ? Depuis l'arrivée de la tablette dans le dispositif Ordicollège, la première cause d'intervention et d'immobilisation de ces matériels reste la création d'un code de verrouillage et son "oubli" par l'utilisateur. A chaque intervention de ce type, le matériel est immobilisé, les contenus stockés détruits, et cela pénalise à la fois l'utilisateur et la mise en oeuvre de ces outils par les enseignants. Cela engendre les opérations suivantes : prise en charge du matériel, effacement de la configuration, rechargement du système des applications, paramétrage, chargement des applications (valeur 30 €).</quote>
Ce dernier point est cependant très discutable car cela signifie que tout élève qui se fait emprunter sa tablette (ou même qui la prête en cours à un autre élève) ou qui se la fait voler par un autre élève peut voir ses informations personnelles compromises. Et cela peut aller jusqu'à la publication sur Facebook de messages ou photos malvenus, tels que les jeunes le font déjà. Alors oui, alléger les coûts c'est bien (surtout pour une opération ayant un budget de 1,5 M€) mais penser à la sécurité et la protection des informations personnelles de nos chères têtes blondes accros à Facebook et à Internet, c'est quand même vital (rappelez vous Luc Chatel et sa volonté de faire fermer les comptes Facebook des élèves harceleurs).