Linux (fr)

  • Emmabuntüs à l'école au Togo (Dépêches LinuxFR)

    Emmabuntüs est une distribution GNU/Linux pour tous les utilisateurs. C'est aussi un groupe de bénévoles qui réemploient des ordinateurs déclassés pour prolonger leur cycle d'utilisation. Ils sont ensuite redistribués à des particuliers et des associations et repartent de temps à autre vers des destinations étonnantes.

    Dans la suite de cet article, nous vous faisons découvrir YovoTogo

    Les objectifs de YovoTogo

    Francine et le collectif Emmabuntüs vous invitent à lire un nouvel article à la rencontre des habitants de la savane togolaise aux alentours de Bombouaka dans la préfecture de Tandjouaré et sur les pas de YovoTogo, une association locale qui agit pour réduire les inégalités sociales et s'attaque à la fracture numérique. La priorité est donnée à l'éducation. Mais les intervenants doivent également prendre en compte les impératifs environnementaux. Les enfants se déplacent sur des distances beaucoup plus longues que notre ramassage scolaire. Il faut prévoir l'hébergement, un moyen de transport qui résiste à la saison des pluies, l'accueil et les soins pour les enfants souffrant de handicaps.

    Des solutions efficaces grâce à l'entraide des associations

    Si rien n'est simple à cause du manque de structures, elles se mettent progressivement en place par le jeu de la solidarité internationale. En effet, les actions suscitent une adhésion forte des habitants, impliqués sur l'ensemble des projets et ils se coordonnent avec les associations Emmabuntüs, l'OCDI Caritas Togo, le Rotary-Club de Fleurus en Belgique, FuturiMedia pour résoudre le casse-tête, pièce par pièce. La moto taxi relie les foyers des enfants à leur l'école. Un centre dédié héberge les enfants souffrant de handicaps moteur et dispense des soins adéquats sur place. Aux alentours, les écoles et lycées se développent et améliorent leur accessibilité. De nouvelles salles informatique sont en cours d'équipement. En France, des bénévoles reconditionnent les ordinateurs déclassés par une entreprise qu'ils acheminent en Afrique pour que chaque enfant aie à sa disposition un poste de travail fonctionnel. Réinstallées sous Emmabuntüs, les tours sont équipées de logiciels libres adaptés à l'éducation, entre autres Kiwix - l'encyclopédie wikipédia hors ligne -, la suite bureautique OpenOffice for kids, des jeux éducatifs pour réviser les matières scolaires en s'amusant, divers outils d'accessibilité, la liste est encore longue. Et pour l'avenir, une nouvelle étape se profile déjà, ouvrir des accès internet sur les sites récemment équipés.

    Prise en main du système d'exploitation Emmabuntüs

    Pour participer

    Vous pouvez échanger avec les membres YovoTogo via le moyen de votre choix :

    Siège : Claude Féré & Marie Paule Oré, 38 la garmitière 85140 SAINT MARTIN DES NOYERS

    Tél : +33 251 484 248 – +33 649 852 036

    Courriel : yovotogo.asso CHEZ gmail.com

    Lire les commentaires

  • Son et lumière à l’hôtel (Dépêches LinuxFR)

    Deux histoires d'informatique à l'hôtel traduites en français :

    1. c'est celle d'un étudiant, Gökberk Yaltıraklı, qui « aime coder, écouter de la musique et voyager » et qui nous raconte sur son blog une enquête menée lors d'un séjour à l'hôtel. Son site est http://gkbrk.com/ et nous le remercions de nous autoriser à reproduire son article traduit.
    2. c'est celle d'un autre voyageur, Matthew Garrett, qui nous raconte ses découvertes dans un hôtel qui n'a, a priori, pas fini sa mutation technologique… Et nous le remercions de nous autoriser à reproduire son article traduit.

    Chambre d'hotel avec TV, licence CC by

    Sommaire

    Du son pour tout le monde

    Faire de la rétro-ingénierie sur un mystérieux flux UDP à l'hôtel

    Salut tout le monde. Je me suis retrouvé à l'hôtel pendant quelques temps. Un de ces hôtels modernes avec smart TV et autres objets connectés. Je suis curieux, je lance Wireshark, comme tout bidouilleur ferait.
    J'ai été très surpris de voir un énorme trafic UDP sur le port 2046. J'ai regardé, mais les résultats étaient inhabituels. Ce port n'est pas dans les ports standards, donc je dois trouver tout seul.

    Je suspecte d'abord un flux pour la télévision, mais la taille de paquet est trop faible, même pour une seule trame vidéo.

    Récupération des données

    Les paquets UDP ne sont pas envoyés à mon IP et je ne fais pas d'ARP spoofing, donc ces paquets sont envoyés à tout le monde. En y regardant de plus près, je vois que ces paquets sont du type Multicast. Ça signifie que ces paquets sont envoyés une fois et reçus simultanément par tous les équipements connectés. Je note aussi que ces paquets sont de longueur identique (634 octets).

    Je décide d'écrire un script en Python pour collecter et analyser ces données. Tout d'abord, voici le code que j'ai utilisé pour collecter les paquets de type Multicast. Dans le code qui suit, 234.0.0.2 est l'adresse IP obtenue dans Wireshark.

    import socket
    import struct
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    s.bind(('', 2046))
    
    mreq = struct.pack("4sl", socket.inet_aton("234.0.0.2"), socket.INADDR_ANY)
    s.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
    
    while True:
    data = s.recv(2048)
    print(data)

    En plus de tout cela, j'ai aussi utilisé binascii pour tout convertir en hexadécimal afin de rendre la lecture des octets plus facile. Après avoir vu des milliers de ces paquets défiler en console, je remarque que les (plus ou moins) 15 premiers caractères sont identiques. Ces octets indiquent sans doute le protocole et le packet/command ID mais je reçois toujours le même donc je suis bloqué.

    Les paquets pour l'audio sont tellement mal foutus

    Cela m'a aussi pris un temps fou pour remarquer la chaîne LAME3.91UUUUUUU à la fin des paquets. Je soupçonne des données audio, du type MPEG compressé, mais un paquet sauvegardé en tant que test.mp3 ne peut être joué dans mplayer, et l'utilitaire file identifie ce fichier test.mp3 comme étant de type data.
    Il y a évidemment des données dans ce paquet, et l'utilitaire file devrait reconnaître des données MPEG audio, donc je décide d'écrire un autre script Python pour sauvegarder les paquets de données avec des décalages.
    De cette manière, il va sauvegarder le fichier test1 en sautant 1 octet du paquet, test2 en sautant 2 octets et ainsi de suite.
    Voici le code utilisé et le résultat.

    data = s.recv(2048)
    for i in range(25):
        open("test{}".format(i), "wb+").write(data[i:])

    Après cela, je lance file test* et voilà ! Nous savons maintenant qu'il faut sauter 8 octets pour aller aux données de type MPEG Audio.

    $ file test*
    test0:    data
    test1:    UNIF v-16624417 format NES ROM image
    test10:   UNIF v-763093498 format NES ROM image
    test11:   UNIF v-1093499874 format NES ROM image
    test12:   data
    test13:   TTComp archive, binary, 4K dictionary
    test14:   data
    test15:   data
    test16:   UNIF v-1939734368 format NES ROM image
    test17:   UNIF v-1198759424 format NES ROM image
    test18:   UNIF v-256340894 format NES ROM image
    test19:   UNIF v-839862132 format NES ROM image
    test2:    UNIF v-67173804 format NES ROM image
    test20:   data
    test21:   data
    test22:   data
    test23:   DOS executable (COM, 0x8C-variant)
    test24:   COM executable for DOS
    test3:    UNIF v-1325662462 format NES ROM image
    test4:    data
    test5:    data
    test6:    data
    test7:    data
    test8:    MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo
    test9:    UNIF v-2078407168 format NES ROM image
    
    
    `̀``
    
    Maintenant, tout ce qu'il nous faut, c'est lire les paquets en continu, sauter les 8 premiers octets, écrire le reste dans un fichier et il devrait pouvoir être lu.
    
    ```python
    while True:
        data = s.recv(2048)
        sys.stdout.buffer.write(data[8:])

    Mais quel est ce son ? Est-ce un bug sournoisement placé qui m'écoute ? Est-ce quelque chose en lien avec les téléviseurs évolués dans ma chambre ? Quelque chose en rapport avec les systèmes hôteliers ? Un seul moyen de le savoir.

    $ python3 listen_2046.py > test.mp3
    * wait a little to get a recording *
    ^C
    $ mplayer test.mp3
    MPlayer (C) 2000-2016 MPlayer Team
    224 audio & 451 video codecs
    Playing test.mp3.
    libavformat version 57.25.100 (external)
    Audio only file format detected.
    =====
    Starting playback...
    A:   3.9 (03.8) of 13.0 (13.0)  0.7%

    Révélation et grosse déception

    Quoi ? Je ne peux pas croire que j'ai passé tout ce temps pour ça ? Juste de la musique d'ascenseur jouée dans les couloirs et autour des ascenseurs de l'hôtel. Bon, au moins je peux l'écouter depuis ma chambre maintenant :-)


    De la lumière pour les autres

    Je suis à Londres pour la conférence Kubernetes et mon hôtel a décidé que les interrupteurs (pour allumer et éteindre la lumière) sont démodés, et les a remplacé par des tablettes sous Android.

    tablette

    Une tablette est encastrée dans le mur, mais les deux à côté du lit avaient des chouettes câbles Ethernet dans le mur.

    Je réussis à emprunter 2 adaptateurs USB Ethernet, crée un bridge transparent
    brctl addbr br0; brctl addif br0 enp0s20f0u1; brctl addif br0 enp0s20f0u2; ifconfig br0 up
    et je branche mon portable entre la tablette et le mur.
    tcpdump -i br0 montre du trafic, et wireshark a montré que c'est du Modbus over TCP. Modbus est un protocole assez trivial, entre autres choses, il n'a pas de mécanisme d'authentification. tcpdump montre que le trafic est envoyé à 172.16.207.14, et pymodbus me permet d'allumer ou éteindre les lumières, la TV, et même mes rideaux. Quel pied !

    Et alors je remarque un truc. Mon numéro de chambre est 714, mon adresse IP est 172.16.20 7.14 . Ils n'auraient pas osé ?

    Oui, évidemment, ils ont osé.

    C'est aussi mauvais que possible, une fois la passerelle trouvée, je peux accéder au système de contrôle de chaque étage, et interroger chaque chambre pour voir si les lumières sont allumées ou pas, ce qui sous-entend fortement que je peux aussi les contrôler.
    Jesus Molina a parlé de ce genre de choses il y a deux ans, ce n'est pas un cas isolé, les hôtels sont en train de déployer ce genre de système sans la moindre sécurité, et la probabilité que quelqu'un envoie un flux constant de « allumez la lumière » et « ouvrez les rideaux » à 3 heures du matin est élevée.

    Tout cela est voué à l'échec

    (Note : J'avais prétendu que je ne pouvais accéder qu'aux équipements de mon étage, mais en fait chaque étage est sur une zone de diffusion séparée, et je dois juste définir une autre passerelle pour accéder aux autres étages.)

    (Autre note : je fais exprès de ne pas nommer l'hôtel. Ils ont été réceptifs à mon retour et ont promis de régler le problème.)
    Dans les commentaires, une personne demande s'il est possible d'allumer le pay-per-view sur la TV des autres chambres. Nous n'avons pas de réponse.

    Lire les commentaires

  • Pourquoi une petite société a intérêt à contribuer et produire du libre... mais pas que (Journaux LinuxFR)

    Sommaire

    Avant-propos

    Ce journal est un partage d'expérience dont l'objectif est d'illustrer l'intérêt, même pour une petite société (ma société algoo, actuellement c'est 3 personnes en CDI, 1 CDD, 1 stagiaire) de produire du code libre et de contribuer au logiciel libre. Mais aussi pourquoi il est important de produire également du code propriétaire.

    Introduction

    Les lecteurs assidus de LinuxFR savent peut-être que j'ai créé une entreprise il y a désormais un peu plus d'un an.

    Pour comprendre la suite de l'article, il faut juste savoir que le métier d'algoo (ma société) est :

    • de commercialiser le logiciel libre de partage/diffusion de connaissances Tracim
    • de développer sur mesure des applications web, des API REST et d'intégrer des services distants
    • d'intervenir sur des missions d'architecture ou des développements spécifiques backend/python

    Algoo contribue au logiciel libre et produit autant de code libre que possible.

    Pour résumer et reprendre les mots d'un personnage controversé de LinuxFR : "le logiciel libre est un moyen, pas une finalité".

    Rappel : produire du libre a un coût

    Donc Algoo produit du code libre. Et contribue aussi. Il faut bien comprendre que produire du code, remonter des bugs, etc, c'est bien gentil, mais cela a un coût.

    Prenons un exemple simple : un ingénieur payé 36 456€ pour un contrat annuel 217 jours (c'est pas légal, car pour avoir un forfait jours il y a un niveau de rémunération minimum imposé par la convention Syntec. J'invite ceux d'entre vous qui gagnent moins de 40K€ et qui ont un contrat 217 ou 218 jours à lire leur convention collective).

    Cet ingénieur travaille 1519h par an, il sera donc payé 24€ brut par heure de travail. A la louche, le coût du salaire est pour l'entreprise 36€/H. A cela on ajoutera les frais fixes : location de bureau, matériel, frais administratifs, etc.

    Bref, produire du libre a un coût : le même que de produire du code propriétaire.

    Rappel : aucune entreprise n'est philanthrope. Le but est d'une manière ou d'une autre de gagner de l'argent. Pas forcément "gagner le maximum d'argent possible", mais en gagner tout de même.

    Donc si on produit du libre, il faut que ça en vaille le coup/coût. C'est le cas, et voici pourquoi.

    Intérêts de produire du code libre ou de contribuer…

    Marketing et visibilité

    Si vous avez déjà passé des entretiens pour des postes de développeur, on a sûrement dû vous demander de montrer du code que vous auriez écrit. L'idée, c'est d'avoir une idée de ce qu'écrit le candidat, mais aussi de s'appuyer sur ce genre de contenu pour échanger sur les problématiques techniques. Ca n'est pas un problème d'écrire du code moche, du moment que ça peut se justifier (délais, prototype, etc).

    Dans le cas d'une boîte, c'est un peu différent. Peu de clients vont venir discuter de code avec moi. Ceci étant dit, les clients techniques intéressés pourront aller chercher l'info et voir ce qu'on produit.

    Cela apporte de la visibilité également, tant d'un point de vue prospection / image de marque en ligne, que d'un point de vue recrutement.

    Ce sera également un argument commercial, genre "on partage certains développements, en contrepartie on bénéficie des développements d'autres sociétés". Bref, le discours classique qui prouve l'intérêt du logiciel libre et de la mutualisation des coûts de développement / maintenance entre confrères.

    Produire du logiciel libre a un coût, c'est donc également un argument de qualité. Si on participe à des projets libres, c'est qu'on investit sur ces projets, et en général, l'investissement sur le code est lié à la qualité et au sérieux des prestations qu'on va fournir.

    Si on vend des prestations de qualité médiocre, on va simplement exploiter le logiciel libre, par exemple en utilisant un maximum de logiciels libres parce qu'on les considère gratuits. Ce genre de comportement est très courant, notamment dans les agences web qui font du e-commerce (dév. de boutiques basées sur Magento, par exemple). Toutes les agences web qui proposent ce genre de prestation ne font pas du mauvais travail, mais alors comment distinguer "bonne agence" et "mauvaise agence" ?

    Nous, nous utilisons des briques libres, et nous investissons dessus. On a une stratégie long terme, donc si une brique doit évoluer, autant qu'elle évolue dans un sens qui nous intéresse. Et pour ça, rien de mieux que de contribuer. Et comme une société a en général une philosophie "unique" (on n'a pas 2 manières de penser antinomiques en même temps), si on vise le long-terme d'un côté (fournisseurs), on vise long-terme de l'autre (client). C'est un gage de confiance et de pérennité de la relation.

    Qualité de code

    On n'y pense pas forcément, mais produire du logiciel libre permet d'améliorer la qualité du code. D'une part, si on publie du code qui intéresse d'autres personnes, on pourra s'attendre à avoir des feedback, des remontées de bugs, des propositions de patch. Le code va devenir meilleur.

    Mais c'est également un moyen de mieux coder en interne. Sachant qu'on développe également du code propriétaire, on ne publie pas tout notre code en libre. Donc on doit faire une séparation. Qui dit séparation, dit modularité et interface. Rendre du code modulaire est une bonne pratique ; qu'on ne met pas naturellement en pratique quand on produit du code sur un unique projet.

    Un exemple concret : nous travaillons actuellement sur un projet sur lequel nous devons être capable d'associer codes postaux et villes. C'est le genre de fonctionnalité récurrente. Le fait de décider de publier cette partie du code en libre :

    • nous force à bien modulariser nos développements
    • nous permet de réutiliser le cas échéant ce module de manière simple.

    C'est une factorisation "de fait" ; donc un bug corrigé pour l'un des projets qui l'utilisera sera immédiatement disponible pour un autre projet. On n'invente rien dans cette démarche ; simplement le fait de publier nous force à modulariser le code et c'est une bonne chose.

    Note : cet argument fonctionne car on produit du code libre et du code propriétaire.

    Ressources Humaines

    C'est un fait : les développeurs aiment participer à des logiciels libres, même les développeurs non passionnés/engagés dans la démarche du logiciel libre.

    Produire du logiciel libre est donc un argument attrayant pour recruter, d'autant plus que cela sera également une carte de visite pour le développeur pour le jour où il souhaitera quitter l'entreprise. Il faut être lucide : tant que les intérêts recruteur/salarié sont compatibles il n'y a pas de raison de quitter une entreprise ou de licencier un salarié. Mais une entreprise et un salarié n'ont jamais "le même projet de vie" ou simplement les possibilités / envies d'aller dans la même direction. La fin de la collaboration fait partie de la vie d'une entreprise comme de la vie d'un salarié ; si on gagne à avoir collaboré et qu'on peut se séparer en bons termes, pourquoi ne pas le faire ?

    Le fait de contribuer est également dans un certain nombre de cas une nouvelle expérience pour les développeurs car beaucoup d'entre eux "n'osent pas" (ou n'ont jamais été invités à le faire). En les incitant à contribuer, on leur apporte une nouvelle corde à leur arc, un nouveau type d'expérience. C'est en général bien perçu, et c'est donc une raison de plus d'avoir un collaborateur satisfait.

    Dans une petite structure un turnover important est compliqué à gérer, car recruter prend du temps et gérer des recrutements/départs est générateur de stress négatif (ce stress n'ayant pas de valeur ajoutée sur la production de l'entreprise). Donc avoir des collaborateurs satisfaits est une bonne idée.

    Philosophie d'entreprise

    Produire du code libre et contribuer est également fortement lié à la philosophie de l'entreprise. La plupart du temps, on pourrait avoir quasiment le même résultat sans "perdre" la moindre minute à contribuer. Lorsqu'on contribue, comme évoqué précédemment, c'est qu'on investit. On est dans une démarche long-terme ; si on agit ainsi avec les briques qu'on utilise, c'est parce qu'on a une philosophie long-terme, ce qui est également le cas avec nos clients.

    On a une démarche type "d'inbound marketing" : on donne pour recevoir.

    Fait intelligemment, c'est bénéfique. On ne contribue pas à tous les projets/briques qu'on utilise, mais quand on fait face à un problème, on contribue (remontée de bug, proposition de patch), parce qu'un correctif upstream sera plus facile à maintenir qu'un fork dans notre coin. Et si d'autres personnes en profitent, alors tant mieux.

    Intérêt de produire du code propriétaire

    Mais il ne faut pas se voiler la face. Ce qui nous fait gagner de l'argent, ce qui fait que nous sommes en mesure de se payer des salaires, ce n'est pas la production de code libre.

    Produire du libre, contribuer est un moyen de gagner de l'argent, mais c'est un moyen indirect. Ce qu'on vend, ce sont des services et des développements propriétaires. Rarement des développements libres. Ca arrive, mais ça ne suffit pas pour vivre.

    Sur Tracim, par exemple, on va gagner de l'argent en proposant des développements sur mesure, des co-développements, des prestations d'hébergement et de service.

    Sur les développements spécifiques ou sur mesure, on va gagner de l'argent en vendant des jours/homme de développement. Le code produit sera en règle général propriétaire et deviendra la propriété de nos clients.

    Mais honnêtement, quelle société gagne majoritairement sa vie en produisant du code libre ? Aucune. Les gros contributeurs tels que Facebook, Google, Twitter, etc gardent jalousement secret leur coeur de métier et leurs algorithmes. Ils contribuent énormément, mais ils ne partagent pas leur avantage concurrenciel.

    Alors vous allez me parler de Red Hat. Red Hat est LA référence des entreprises qui gagnent de l'argent en faisant du libre. Et ils ont des développeurs, et non des moindres. Mais leur R&D est une petite partie de la R&D sur laquelle ils capitalisent : tous les logiciels libres qu'ils intègrent dans leur distribution ne sont pas faits chez Red Hat.

    Et par ailleurs, ils gagnent de l'argent avec des contrats de service. A ma connaissance ce qu'ils facturent, ce n'est pas du "temps de développement de logiciel libre" mais des contrats de maintenance (qui intègrent dans leurs coûts, de la R&D sur du libre) sur une distribution Linux fournie, complète et robuste.

    Une petite entreprise a les même problématiques de rentabilité et d'avantage concurrentiel. Il faut se dévoiler pour être "sexy", mais on ne peut pas tout dévoiler parce que sinon on perd notre différence, notre avantage.

    Donc voilà : on fait aussi du code propriétaire, mais finalement comme tout le monde. C'est ce qui nous permet de gagner notre vie ; et il n'y a pas de honte à gagner sa vie:)

    Conclusion

    Produire du code libre présente des avantages et des inconvénients. D'une manière générale quand on discute avec des gens il faut argumenter pour justifier la production de code libre. Chez Algoo, j'essaie d'insuffler une philosophie inverse : pourquoi produire du code propriétaire par défaut ? Lorsqu'on peut produire du libre et contribuer, et que ça n'a pas d'impact sur la survie de l'entreprise, on produit en libre.

    Comme vu ci-dessus, il y a des cas où cela se justifie, et des cas où l'on ne peut pas se le permettre.

    Le risque de publier n'est pas que notre code soit réutilisé par des individus indépendants, des associations qui n'ont pas d'argent, ou des entreprises qui seraient "réglo". Non, le risque c'est plutôt de financer de la R&D qui sera directement réutilisable/réutilisée par des concurrents directs et peu scrupuleux. Le monde de l'entreprise n'est pas un monde de bisounours.

    On peut en discuter, je suis preneur de vos retours, remarques, questions.

    Lire les commentaires

  • MoodleBox : un petit projet pour du BYOD en classe (Journaux LinuxFR)

    Bonjour,

    petite autopromotion pour mon premier projet libre un peu sérieux : la MoodleBox

    L'ensemble du projet est hébergé chez tuxfamily : http://moodlebox.tuxfamily.org

    Précision préalable : je ne suis absolument pas informaticien, tout au plus bricoleur. Mon vrai métier c'est prof et mes connaissances informatiques sont autodidactes. La suite est peut-être pleine de conneries, mais je compte bien sur les commentaires pour en discuter.

    C'est quoi ce truc ?

    À l'image de la piratebox, la MoodleBox est serveur web portable, embarquant une installation de moodle et un point d'accès wifi.

    L'idée derrière ce projet est de pallier le manque de matériel (tablettes notamment) dans les établissement scolaires en utilisant les téléphones portables des élèves. C'est le BYOD (ou AVEC en français).

    Ce projet à plusieurs origines :

    • j'utilise moodle avec mes élèves de collège depuis quelques années, mais surtout en travail à la maison
    • mon collège ne dispose pas de tablettes, donc l'utilisation de moodle en classe, c'est une heure complète en salle info ou rien… Pas moyen de prévoir une utilisation ponctuelle au milieu d'autres activités
    • de fréquentes discussions avec des collègues sur les tablettes et autres équipements mobiles
    • un fil de discussion sur moodle.org que j'ai squatté, un peu par hasard.

    Daniel Méthot, formateur moodle et grand contributeur des forums, y voit plutôt une solution pour ce qu'il appelle les « naufragés du web » : écoles des pays en voie de développement entre autres.

    Technique

    Pour le hardware, la MoodleBox est basée sur un RaspberryPi 3 ce qui en fait un dispositif très bon marché.

    moodlebox

    Une powerbank de 2200 mAh rend le tout totalement autonome.

    powerbank

    Pour la partie logicielle :

    • raspbian jessie pour le système d'exploitation
    • hostapd et dnsmasq pour la partie wifi
    • nginx, postgresql et php5 pour le serveur web
    • moodle 3 enfin

    Je me suis principalement inspiré de quelques essais trouvés sur le web notamment https://moopi.uk/ Malheureusement, je n'y ai pas trouvé de retour d'expérience sur une utilisation réelle, avec un vrai cours et de vrais élèves.

    Nicolas Martignoni, contributeur actif aux forums moodle, propose quant à lui une image construite un peu différemment. Par manque de temps je n'ai hélas pas eu le temps de comparer le fonctionnement des deux installations.

    Et ça marche ce truc ?

    C'est là où j'en suis le premier surpris… non seulement cela fonctionne, mais en plus ça fonctionne plutôt bien. Après avoir fait une installation (un peu dans l'urgence en plus) j'ai profité d'une formation regroupant une poignée de profs geeks pour faire un essai. Essai qui s'est révélé concluant. À la surprise de tous, ce petit machin bricolé était plutôt réactif et tout à fait utilisable.

    J'ai dernièrement fait un essai grandeur nature, avec de vrais élèves et un vrai cours : avec 29 élèves et leurs ordiphones ça fonctionne convenablement.

    BYOD

    Il faut néanmoins concevoir les cours moodle en prenant en compte les spécificités des terminaux : écran minuscule, glissé-déposé quasiment inutilisable mais cet essai m'a convaincu de poursuivre à la fois le développement et l'utilisation en classe de cet objet pédagogique encore mal identifié.

    Pour la suite

    Dans les travaux en cours, je suis en train de réaliser une IHM web pour permettre la configuration de la MoodleBox (arrêt-redémarrage, paramètres réseau et wifi notamment), l'idée étant de rester le plus possible dans une utilisation ultra-simple.

    Enfin, au-delà de la partie technique, j'espère que ce premier exemplaire de MoodleBox fera des petits et que ce sont ensuite des cours adaptés qui seront échangés, distribués, sous licence libre évidement !

    Voilà quelques lignes pour partager ma dernière petite folie. Merci à ceux qui se sont déjà intéressés à ce projet et à mes élèves qui ont accepté de travailler ;-) pour me permettre de tester leur prochain instrument de torture.

    Lire les commentaires

  • Le problème avec les cons (Journaux LinuxFR)

    C’est que se moquer d’eux avec finesse leur fait croire qu’on leur veut du bien…

    D’où l’esprit Charlie, la provoc’ rien de tel pour les voir se tortionner ces p’tits vermisseaux.

    Lire les commentaires

  • Aux chiottes Linuxfr (Journaux LinuxFR)
  • M’a suis trompé (Journaux LinuxFR)

    Les médiocres vénèrent toujours les plus médiocres d’entre eux.
    C’est qu’un autre choix les exposerait au rappel constant de leur condition.

    Lire les commentaires

  • Un autre mot (Journaux LinuxFR)

    Les médiocres choisissent vénèrent les plus médiocres.
    C’est qu’un autre choix les exposerait au rappel constant de leur condition.

    Lire les commentaires

  • Le mot de la nuit (Journaux LinuxFR)

    Ils ont tué Charlie !
    Tous ces charlots,
    Ils gesticulent, ils gesticulent…
    Que ne sont-ils pas muets !

    Lire les commentaires

  • La nouvelle API graphique Vulkan (Dépêches LinuxFR)

    Logo Vulkan

    La nouvelle API 3D Vulkan annoncée en mars 2015, prévue pour sortir fin 2015 est finalement sortie en version stable le 16 février 2016. Cette API est issue du consortium Khronos Group. L'API Vulkan ne se veut pas une remplaçante à OpenGL une autre API du Khronos Group, mais une alternative plus orientée vers la programmation bas-niveau.

    Origine

    Vulkan se base sur les travaux effectués sur l'API Mantle, lancés en 2013 par AMD et soumis en 2014 au consortium Khronos, ainsi que sur le logiciel Gallium 3D. Avant de s'appeler Vulkan, l'API était connue sous le nom d'Open GL Next.

    Caractéristiques

    Langage SPIR-V

    Vulkan utilise le langage intermédiaire SPIR-V, développé par le consortium Kronos Goup, basé sur SPIR développé à l'origine pour être utilisé dans OpenCL. SPIR-V prend en charge nativement les shaders et les fonctionnalités propres aux noyaux présents dans les divers systèmes d’exploitation. Cependant, le langage SPIR-V est plus complexe à maîtriser, mais il permettra aux développeurs de réaliser des moteurs 3D plus optimisés.

    Gestion du processeur

    Vulkan a une meilleure gestion des processeurs multi-cœur et du multi-processeur. Le processeur est moins sollicité et est utilisé de manière beaucoup plus optimale, au profit de la carte graphique. Il permet une amélioration des performances et une baisse de la consommation.

    Pilote simplifié

    Vulkan possède un pilote simplifié, permettant d'utiliser d'avantage les commandes et la gestion de la mémoire du GPU.

    Multiplate-forme

    L'API est multiplateforme contrairement à DirectX 12, qui est uniquement présent sur Microsoft Windows 10. Elle tourne aussi bien sur les ordinateurs avec des distributions GNU/Linux ou Microsoft Windows (XP à 10), les smartphones et tablettes sous Android, les consoles de jeux comme la PS4 ou la future NX. Elle possède les mêmes fonctionnalités sur smartphone ainsi que sur ordinateur, car il n'y a qu'une seule version, là où Open GL est la version pour les ordinateurs de bureau et Open GL ES pour les smartphones.

    Plus bas niveau

    L'API est plus bas niveau et donc plus difficile à manier qu'OpenGL, car elle impose une plus grande gestion des ressources par les développeurs. L'avantage à contrario est que cela permet une optimisation plus importante du code, là où OpenGL le permettait moins ce qui demande beaucoup plus de travail de maintenance du code.

    Quelques jeux et logiciels qui vont prendre en charge l'API

    Jeux

    • Doom
    • Dota 2
    • The Talos Principle

    Logiciel

    • TouchWiz
    • Mir

    Entreprises partenaires

    De nombreuses entreprises participent à l’élaboration de cette norme, parmi lesquelles nous pouvons trouver : AMD, Apple, ARM, Blizzard, Broadcom, Codeplay, Continental, DMP, Electronic Arts, Epic Games, Imagination Technologies, Intel, Lucasfilm, Mediatek, Oculus VR, Oxide, Pixar, RTT, Samsung, Sony, TransGaming, Unity, Valve, Vivante.

    Pilotes graphiques

    Des pilotes graphiques sont déjà disponibles chez AMD (GPU et APU) et Nvidia, ainsi que chez Intel pour les puces Haswell, Brodwell. Sandy Bridge et Skylake.

    Lire les commentaires

  • Place gratuite pour une formation "Développement système Android" à Toulouse du 20 au 23 juin 2016 (Dépêches LinuxFR)

    La société Free Electrons offre une place gratuite pour sa formation Développement Système Android organisée à Toulouse du 20 au 23 juin 2016. Cette place gratuite est proposée sur candidature aux étudiants ou aux contributeurs à des projets libres / open-source (même avec de modestes contributions).

    Cette formation de 4 jours couvre l'architecture interne d'Android, comment le système fonctionne et comment y ajouter des composants supplémentaires. Les travaux pratiques permettent de recompiler et reflasher Android, puis d'y ajouter de nouveaux composants pour le support de matériel supplémentaire, et d'utiliser ce matériel dans une application Android. Il s'agit donc bien d'une formation sur le système Android et non sur le développement d'applications Android, comme le montre l'agenda de la formation.

    À noter que comme pour toutes les formations Free Electrons, l'intégralité des supports de formation est disponible sous licence libre CC-BY-SA.

    La place gratuite inclut non seulement la formation, mais également la carte BeagleBoneBlack et son extension LCD qui sont utilisés pendant la formation pour les travaux pratiques.

    Les candidatures sont attendues d'ici au 30 mai à award@free-electrons.com, et le gagnant sera notifié au plus tard le 2 juin.

    Lire les commentaires

  • Place gratuite pour une formation "Développement système Android" à Toulouse (Dépêches LinuxFR)

    La société Free Electrons offre une place gratuite pour sa formation Développement Sytème Android organisée à Toulouse du 20 au 23 juin. Cette place gratuite est proposée sur candidature aux étudiants ou aux contributeurs à des projets libres / open-source (même avec de modestes contributions).

    Cette formation de 4 jours couvre l'architecture interne d'Android, comment le système fonctionne et comment y ajouter des composants supplémentaires. Les travaux pratiques permettent de recompiler et reflasher Android, puis d'y ajouter de nouveaux composants pour le support de matériel supplémentaire, et d'utiliser ce matériel dans une application Android. Il s'agit donc bien d'une formation sur le système Android et non sur le développement d'applications Android, comme le montre l'agenda de la formation.

    À noter que comme pour toutes les formations Free Electrons, l'intégralité des supports de formation est disponible sous licence libre CC-BY-SA.

    La place gratuite inclut non seulement la formation, mais également la carte BeagleBoneBlack et son extension LCD qui sont utilisés pendant la formation pour les travaux pratiques.

    Les candidatures sont attendues d'ici au 30 mai à award@free-electrons.com, et le gagnant sera notifié au plus tard le 2 juin.

    Lire les commentaires

  • Les réunions pépé-malin - monter en compétence de manière ludique (Journaux LinuxFR)

    Introduction

    Il y a de cela quelques années, je travaillais dans une startup d'une quinzaine de personnes dans laquelle l'ambiance était plutôt bon enfant. Pas trop de pression sur les résultats, on allait prendre un verre régulièrement, on s'entendait globalement bien.

    J'étais développeur sur un projet transverse où je collaborais avec les ingés de l'équipe recherche, les admins sys, l'équipe commerciale et le support. Et comme je gérais le dév. sur ce projet et que j'étais quasiment le seul, j'étais au four et au moulin. Un boulot un peu chargé, mais super intéressant.

    Mon travail nécessitait pas mal de travail en binôme, pour résoudre des pb métier, spécifier des comportements, etc. Au fur et à mesure j'ai constaté avec quelle dextérité chacun de mes interlocuteur manipulait ses outils informatiques, souvent des outils que je ne connaissais ni d'utilisation, ni de nom.

    Ça m'intéressait bien de découvrir leurs outils…

    Et puis un jour, je me suis dit que si ça m'intéressait moi, il y avait sûrement d'autres personnes qui pouvaient être intéressées… Alors j'ai évoqué le sujet autour d'une bière, puis deux… et j'ai testé le concept.

    Le concept

    Le concept est simple : chaque volontaire a 5 minutes pour présenter un outil ou une méthode de travail. Puis 10 minutes de questions au maximum. Puis on passe au volontaire suivant, sur un sujet différent.

    Une fois par mois, en fin de matinée, idéalement en milieu ou fin de semaine on se retrouve pour 30 à 40 minutes max d'échanges. En fin de matinée, car le repas est en général sacré et on ne va pas (trop) empiéter sur le repas (alors que si c'est en début de journée, voire pire en début d'après-midi, la réunion aura tendance à durer/traîner, ça va devenir ennuyeux, et les gens n'auront plus envie).

    Après la réunion, les sujets qui auront intéressé les gens seront naturellement abordés durant le repas. C'est bien, et c'est même très bien : on discute indirectement de boulot, mais on discute de sujets nouveaux.

    Les facteurs-clé de réussite

    • Pas de hiérarchie. Chacun doit être en mesure de présenter "au même titre" que les autres.
    • Pas de zèle/valorisation. On n'est pas là pour briller, on est là pour partager ses connaissances.
    • Des profils de présentateurs variés. Qui dit variété des profils, dit problématiques différentes, donc habitudes et différents, donc biodiversité.

    Au bilan ?

    A l'époque, j'avais lancé ça de manière informelle. Au final, tout le monde a participé. C'est d'ailleurs assez original de voir un commercial poser des questions à un admin-sys sur des problématiques SSH, tout comme c'est marrant de voir des "irréductibles" découvrir comme il est simple de filtrer des données ou de les croiser en utilisant Excel…

    Les sujets que j'avais eu l'occasion de découvrir allait des sujets cités ci-dessus à l'utilisation de Pew, l'application de scripts perso sur des sélections de fichiers dans le navigateur de fichiers de Gnome, des astuces d'utilisation de KDevelop, la découverte d'extensions "qui tuent le chien" dans Firefox, des outils en ligne de commande qu'on connait pas mais qui pourtant le valent bien…

    Y'a pas de limites, faites vous plaisir.

    Il y a toujours quelque chose de bon dans ce genre d'échange ; et si l'on n'apprend rien durant la présentation d'outils ou autres déjà connus, les présentations vont provoquer des échanges et des discussions qui seront enrichissantes quant aux habitudes de vos collègues, leurs choix, leurs opinions.

    Pourquoi pépé malin ?

    Google pourra aider ceux d'entre vous qui ne connaissent pas le vieux briscard qu'est Pépé Malin. On aime ou on aime pas, c'est juste un clin d’œil et un nom que j'ai trouvé sympa.

    Le mot de la fin

    Il faut prendre la connaissance là où elle est. J'ai essayé "d'industrialiser", ou en tout cas d'appliquer dans un contexte professionnel, un concept qui est naturel lorsqu'on échange entre amis.

    Ce genre d'échange fonctionnera bien s'il se déroule dans un cadre détendu - la majorité des gens aiment partager leurs connaissances quand l'environnement est bienveillant.

    Lire les commentaires

  • Plonk (Journaux LinuxFR)

    en rapport avec https://linuxfr.org/suivi/liste-de-plonkage-via-regexp et les récents évènements de notre petit monde, au menu: comptes fermés, et utilisateurs spécifiques à ajouter dans le tableau plonk.

    je pose ça là:

    // ==UserScript==
    // @name        DLFPlonk
    // @namespace   DLFPlonk
    // @include     https://linuxfr.org/*
    // @version     1
    // @grant       GM_xmlhttpRequest
    // ==/UserScript==
    
    //            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
    //   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    //
    //  0. You just DO WHAT THE FUCK YOU WANT TO.
    //
    
    (function() {
        var plonk = [];
        var articles = document.getElementsByTagName('article');
        for (var i = 0; i < articles.length; i++) {
          var userLink=articles[i].getElementsByClassName('meta').item(0).getElementsByTagName('a').item(0);
          GM_xmlhttpRequest({
              method: "GET",
              url: userLink.href,
              context: articles[i],
              onload:  function(response) {
                if(response.responseText.match(/Compte fermé/)){
                  response.context.style.display="none";
                }
              }
          });
          for(var j = 0; j < plonk.length; j++){
            if (userLink.textContent == plonk[j] || userLink.href == "https://linuxfr.org/users/"+plonk[j]){
              articles[i].style.display="none";
              break;
            }
          }
        }
    })();

    Lire les commentaires

  • Linux passe devant MacOS sur le desktop (Journaux LinuxFR)

    Cela ne concerne que le marché des USA, mais il s'est vendu au premier trimestre 1,7 million de machines sous MacOS, contre 2 millions de … Chromebooks.
    OK ce n'est pas une distribution Linux comme on l'entend ici, mais cela permet de mettre un titre très racoleur.

    Source : The verge

    Lire les commentaires

  • Focus sur les performances avec Fim 1.2.0 (Dépêches LinuxFR)

    Fim (File Integrity Manager) sort dans sa version 1.2.0 avec divers gains de performance.

    Fim est un gestionnaire de fichiers libre (licence GPLv3) qui permet de gérer beaucoup de fichiers de n'importe quelle taille. Il peut par exemple, gérer des photos ou des vidéos. Il est capable de gérer des centaines de milliers de fichiers occupant une taille totale de plusieurs téraoctets. Il peut détecter les fichiers dupliqués et aider à les effacer.

    Fim Logo

    Les nouveautés de la version 1.2.0

    Amélioration globale de la performance

    • Diminution de la taille du state en mémoire et sur le disque en utilisant Ascii85 au lieu de Hexa pour stocker les hash
    • Ajout du Super-fast commit
    • Augmentation de la capacité à gérer une très grande quantité de fichiers (1 098 138 fichiers fonctionne pour moi)
    • Optimisation de la comparaison des state pour pouvoir comparer rapidement deux State contenant 1 000 000 de fichiers

    Général

    • Fim est maintenant distribué sous forme d'image Docker sur Docker Hub
    • Chaque commit sur Fim est maintenant testé sur Mac OS X grâce au builder Travis Mac

    À noter : le format utilisé pour le state est nouveau et non-compatible avec le format précédent. Cela nécessite donc une ré-indexation / une nouvelle table de hashs : fim ci -y -c "Migration vers Fim 1.2.0".

    Corrections de bogues

    • Vérification des droits sur le répertoire .fim avant toute exécution de commandes
    • Ignore maintenant les millisecondes des dates de modification (certains JDK ne les écrivent pas ou les écrivent à 0)
    • Ajout de l'option --output-max-lines permettant d'allonger la liste présentée maintenant par défaut : 200 lignes du même type tronquées.
    • Les fichiers vides ne sont plus répertoriés comme dupliqués.

    Lire les commentaires

  • Debout les blaireaux ! (Journaux LinuxFR)

    Pensées à tous les moutons de la terre.

    Lire les commentaires

  • Non respect du droit d’auteur (Journaux LinuxFR)
  • Ah ben je savais… (Journaux LinuxFR)

    Que vous pouvez supprimer un journal.

    Bon allez hop hop hop, on va pouvoir passer aux choses sérieuses.

    Lire les commentaires

  • Petit malentendu sur mon précédent journal (Journaux LinuxFR)

    Si je parle de violence, c’est à toi. Oui ! toi, gros blaireau, c’est à toi que je m’adresse, parce que t’es tellement, viscéralement, indéniablement con, trop con pour te rendre compte que t’es un enfoiré de première.

    Lire les commentaires

Connaître une langue étrangère, c'est accéder à une autre civilisation,
une autre manière de penser, contribuer à la paix par la compréhension
et le dialogue; c'est aussi s'offrir des possibilités économiques et de
loisirs nouveaux.
-+- Joachim Charles Hitzke -+-