Yoann Sculo - Ingénieur Linux Embarqué http://www.yoannsculo.fr Yoann Sculo - Blog d'un Ingénieur Linux Embarqué accro à vim. Bidouille, bricolage, hacking, systèmes embarqués, livres et calembours. 2014-02-09T00:00:00Z fr hourly 1 Fosdem 2014 http://www.yoannsculo.fr/fosdem2014 2014-02-09 http://www.yoannsculo.fr/fosdem2014 Fosdem 2014

J'étais au Fosdem 2014 le week-end dernier. Bien épuisant, mais toujours aussi intéressant ! Comme l'année dernière, niveau conférences c'était parfois très inégal. Il y a du très bon comme du pas franchement passionnant, ni préparé. Rageant lorsque l'on doit faire un choix entre plusieurs présentations se déroulant en même temps. Mais parlons plutôt de ce qui m'a plu !

Firefox OS

Firefox OS attire du monde ! J'ai commencé les talks samedi par une conférence Firefox OS. La salle était bien remplie.

State of Firefox OS

J'étais curieux de savoir où en était Firefox OS, car j'ai hâte de quitter Android. Fabien Cazenave nous a expliqué que les efforts de Mozilla n'étaient pas centrés sur le portage de Firefox OS sur les téléphones actuels. Mais plutôt sur le développement de leurs propres produits pour les marchés émergents. De la même façon, Mozilla ne s'intéresse pas aux tablettes pour le moment, mais compte sur la communauté pour l'aider. Ils vont proposer dans les semaines qui viennent un programme incitant les développeurs volontaires à participer à l'effort de guerre sur tablette, en fournissant du matériel aux motivés.

J'ai pu à nouveau m'amuser avec un téléphone ZTE, si je ne m'abuse. Bon, le hardware ne vend vraiment pas du rêve, mais le système a tout ce dont j'aurais besoin sur un téléphone. Mon prochain smartphone tournera sous Firefox OS je l'espère ! Il va juste falloir encore attendre un peu.

Jenkins

J'ai mis en place Jenkins au travail, mais ne l'utilise qu'à 10 % de ses capacités. Je me posais un certain nombre de questions pour utiliser toute la puissance de l'outil. Ça tombe bien, j'ai pu demander directement aux développeurs ! :)

LAVA

LAVA

Dans le même esprit que Jenkins, j'ai découvert le projet LAVA de Linaro. C'est un framework en Python qui permet de faire du test et de l'intégration continue sur du hardware.

Exactement ce dont j'aurais besoin ! J'ai bon espoir de pluger cet outil sur mon Jenkins et mon projet en cours de développement afin de me faire un système de build et de qualif du tonnerre ! Je vais regarder ça en détails dès que j'ai un peu de temps.

Energy consumption

Mon dimanche a débuté sur des conférences axées sur la consommation d'énergie, et les techniques pour la mesurer de façon précise et peu intrusive.

Energy consumption

Leurs propos portaient sur le fait que les développeurs software, contrairement aux gens du hardware, ne sont pas habitués à penser « consommation d'énergie ». On nous a alors présenté le projet open source MAGEEC, ayant pour premier axe de travail l'optimisation de la compilation à des fins d'économie d'énergie. Le second aspect du projet est le développement d'une board open source de mesure de consommation, que voici :

MAGEEC

J'aurais beaucoup aimé me rendre au workshop l'après midi, et repartir avec une board. Mais j'ai choisi d'aller voir du côté d'Allwinner.

Allwinner

Je me suis senti tout de suite moins seul après la présentation d'Olliver Schinagl ! Allwinner fait de l'open source, mais en pratique la qualité des livrables est tellement mauvaise que le travail des développeurs devient un enfer. Sans compter toutes les problématiques de blobs et de non respect des licences GPL. J'ai découvert, avec soulagement, que je n'étais pas le seul à pester et que la communauté sunxi, autour des processeurs Allwinner, avait les mêmes problèmes que moi. Leur wiki m'avait beaucoup aidé cet été, mais je pense aller bientôt discuter directement avec eux. Leur code semble être en avance de phase sur le code fourni par Allwinner. Que cela soit sur le bootloader et le kernel. Ô joie !

Vidéos

Vous pouvez retrouver les vidéos des présentations en ligne. Toutefois, je n'ai pas de son sur les vidéos. Je ne sais pas si ça vient de chez moi où s'il y a un soucis d'encodage.

]]>
ParisEmbedded n°3 - Petit compte-rendu http://www.yoannsculo.fr/retour-paris-embedded-3 2014-01-26 http://www.yoannsculo.fr/retour-paris-embedded-3 Paris Embedded

Mieux vaut tard que jamais. Je me suis rendu à la troisième édition de ParisEmbedded le 7 janvier dernier. Cette fois-ci, j’avais prévu une présentation / retour d’expérience sur les interactions avec la Chine dans mon métier d’ingénieur linux embarqué. Et notamment toutes les problématiques que l’on rencontre à cause des différences culturelles et techniques, de la distance, etc.

Joshfire a filmé les présentations. Soyez indulgents, c’était ma première présentation en anglais depuis un paquet d’années ^^

Manufacturing in China, what the hell ! - Yoann Sculo

Slides de la présentation - Vidéo de la présentation

Martin Bonnin a ensuite présenté des techniques de bricolage de PCB à la maison. Je n’ai pas non plus de super souvenirs avec le perchlo :P Mais j’avoue que j’opterais aujourd’hui pour le PCB fait sur mesure en Chine.

Building your circuit boards at home - Martin Bonnin

Slides de la présentation - Vidéo de la présentation

Suivi d’une présentation très intéressante de Benjamin Joffe, qui retrouve les mêmes problématiques que moi en Chine. Il nous a parlé de HAXLR8R, son incubateur de startups hardware. Et comment il aide ces startups à faire les bons choix et éviter les pièges là bas.

Lean Hardware 101 - Benjamin Joffe

Slides de la présentation - Vidéo de la présentation

Et pour finir, Maurice Svay nous a parlé de sa dernière acquisition, le Spark Core. Petite carte de dev wifi, programmable à distance sur un IDE web.

(désolé, je n'ai pas de photo)

Slides de la présentation - Vidéo de la présentation

Comme d’habitude, c’était super intéressant. C’est toujours l’occasion de revoir plein de monde et rencontrer de nouvelles personnes. Bref toujours un plaisir de venir !

Merci encore à Joshfire et merci à Robert Salita pour ses photos.

]]>
Carte de fidélité et vie privée http://www.yoannsculo.fr/carte-fidelite-vie-privee 2014-01-02 http://www.yoannsculo.fr/carte-fidelite-vie-privee J'ai reçu récemment ce courrier. Oh la jolie publicité Leffe qui a failli finir direct à la poubelle !

Publicité ciblée

Sauf ... qu'en la lisant (j'avoue que je j'ai mordu à l'hameçon), j'ai réalisé que la publicité était ciblée. Et surtout qu'elle était basée sur le fait que j'ai déjà acheté des bières Leffe avec ma carte de fidélité Cora. Alors bon, savoir que j'aime les bières belges n'est pas franchement de la donnée sensible.

Mais savoir que le magasin connaît exactement le détail de tous mes achats et peut anticiper mon comportement de consommateur est tout de même dérangeant. J'avoue ne pas avoir fait particulièrement attention aux conditions en prenant la carte. A vrai dire c'est la base du business modèle de la carte de fidélité ...

Et en lisant les petits caractères :

Certaines données pourront être transmises à des prestataires qui réaliseront certaines opérations techniques pour le compte de cora. Nous vous garantissons que tous les moyens sont mis en oeuvre pour garantir la plus grande confidentialité et intégrité des données que vous nous confiez.

ça ne me rassure pas des masses.

En fait, c'est bien sympa d'avoir quelques euros de réduction de temps en temps, mais être complètement espionné sur ses habitudes de consommation me dérange.

Je ne m'étais jamais réellement posé la question. Mais dans une certaine mesure, c'est exactement comme pour Google, Facebook et compagnie. On nous fournit un service cool et gratuit sans trop se soucier de la contre partie. Et là clairement, le produit c'est nous !

Et tant que l'on ne peut pas matérialiser les données privées sauvegardées c'est assez difficile de se rendre compte du système caché derrière.

Merci Cora de m'avoir envoyé cette pub pile au moment où je commençait très sérieusement à me soucier de ma vie privée. Je vais donc songer à me désinscrire.

]]>
Quelques précisions sur ma liste de SSII http://www.yoannsculo.fr/quelques-precisions-sur-ma-liste-de-ssii 2013-12-30 http://www.yoannsculo.fr/quelques-precisions-sur-ma-liste-de-ssii Je répertorie depuis un moment toutes les sociétés assimilées SSII / ESN. J'en ai fait un repository public sur github, que je mets à jour régulièrement. On peut retrouver également cette liste (plus rarement actualisée) sur mon blog. Cette liste de SSII, ainsi que celle des sociétés liées à l'embarqué, me génère une bonne partie du trafic de mon blog.

Et dans ces visites, il y a des recruteurs et commerciaux de SSII. J'ai été contacté à plusieurs reprises afin que je retire leurs sociétés de la liste. Ces sociétés m'indiquant ne pas être vraiment des SSII. Alors que faire ? Quels sont les critères de la liste ?

Plus j'avance dans le monde professionnel, plus je réalise que le marché du travail est complexe. Que le monde n'est pas manichéen (qui l'eut cru ?). Ma position initiale de la SSII = « mal absolu » a bien changé depuis que je suis sorti de l'école. J'ai même dû recruter cette année et j'ai démarché des SSII pour cela. A vrai dire, on trouve de tout dans les SSII. Du très mauvais comme du très bon. J'ai même envisagé d'en rejoindre une il y a un an après mon dernier licenciement économique. Bref, tout ça pour dire que mon discours a changé.

A titre personnel, je peux et préfère éviter travailler en SSII. En tant que «client » qui a eu besoin de recruter quelqu'un pour agrandir mon équipe temporairement, je réalise que c'est tout de même un mal nécessaire.

L'intérêt

J'ai constitué cette liste car j'ai toujours souhaité travailler directement chez des industriels pour faire de l'embarqué. Pas au sein de sociétés de service, au sens étymologique du terme.

Chercher du travail avec une telle contrainte est une plaie lorsqu'il s'agit de consulter des job boards. Les offres de SSII cachent l'essentiel des offres d'emploi d'industriels. Cette liste avait donc pour but, à terme, d'en faire un mécanisme de filtrage pour les sites d'offres d'emploi. Pour me faciliter mes propres recherches. Tout simplement.

Mon projet Jobcatcher est d'ailleurs l'aboutissement de cette liste. Je peux filtrer les offres d'emploi à la recherche d'industriels et d'éditeurs de logiciels.

Les critères

Dans l'échange que j'avais eu suite à cet article, j'avais tenté de lister les critères permettant d'y faire figurer une société. Mais je me suis un peu fourvoyé dans ma tentative d'explication.

Comme je l'expliquais précédemment, on peut trouver du très bon comme du très mauvais. Et il est en effet assez réducteur de mettre tout le monde dans le même panier sans pouvoir en saisir les subtilités. Toutefois, mon but n'est pas de trier les sociétés de service, ni de juger leur qualité ou bien leur culture d'entreprise.

Je préfère donc garder cette liste la plus objective possible et y faire figurer simplement et uniquement toutes les sociétés de service, au sens étymologique du terme, qui fournissent un service via des consultants. Quand bien même elles fonctionneraient en partie ou intégralement au forfait. Cette liste se veut la plus objective possible et a pour seul but de lister de façon neutre toutes les sociétés de services de France.

Les gens seront libres de faire la part des choses au sein de cette liste. Je n'ai malheureusement ni le temps, ni l'envie de faire la distinction entre les bonnes et mauvaises SSII. D'autant plus que ce n'est pas la qualité qui m'intéresse ici mais le mode de fonctionnement de la société (service en opposition à l'industrie).

Pour information, j'ai placé toutes mes listes sous licence Creative Commons autorisant le partage et la modification sous conditions (CC BY-SA 3.0) ou au choix, la version française (CC BY-SA 3.0 FR)

]]>
ParisEmbedded n°3 http://www.yoannsculo.fr/parisembedded3 2013-12-27 http://www.yoannsculo.fr/parisembedded3 Paris Embedded

Long time no see ! Le meetup ParisEmbedded revient le 7 janvier prochain. C'est toujours à Joshfire. Et cette fois-ci j'ai proposé de faire une présentation :

« Manufacturing in China, what the hell ! »

L'idée est de faire un petit retour d'expérience sur la production de produits d'électronique grand public en Chine. Et surtout les spécificités et problématiques bien particulières que l'on y rencontre. Tout ça du point de vue de l'ingénieur Linux embarqué que je suis.

Pour les inscriptions, il y a encore pas mal le place.

]]>
What about an open source manufacturing software for the consumer electronics industry? http://www.yoannsculo.fr/what-about-open-source-manufacturing-software-consumer-electronics-industry 2013-11-07 http://www.yoannsculo.fr/what-about-open-source-manufacturing-software-consumer-electronics-industry What I do

I have worked for 3 different companies that produce and sell consumer electronics devices with Linux as their operating system. Part of my job for the last 4 years has been to develop and maintain custom Linux systems that test and validate hardware in production. First, I need to check IC soldering, connectivity and global quality of the PCB assembly. Then I have to make sure the embedded software is properly running. This way, we can ensure the product is fully functional.

There are plenty of elements to test, for instance that touchscreens, GPS, buttons, connectors, etc. are responding. If those tests detect a problem, the device can be reworked before the end of production line. Believe me, you don’t want to manually rework tens of thousand devices later in your warehouse. Or worst, discover a hardware issue once the product is sold to the customer. This is part of the quality process. Mass recall is your worst company’s nightmare.

Another aspect of my job is to inject data into the device during production. Serial numbers, mac addresses, PCB and components revisions/versions and even marketing content.

Observation

Every time I changed job, I found a new home-made system. Either I had to maintain an existing project or I had to build a new one from scratch.

Recently I changed job and inherited a new home-made system to maintain. At this point I just realized we (embedded linux developers) were developing the same thing again and again. When I started to ask other engineers around me I understood many people were doing the same thing. With many levels of complexity, from the quick and dirty shell script to an elaborate GUI with full interactive interface.

Therefore I started to search for an open source project that could do the work. I didn't find anything: unfortunately, there are so many features and bricks that I need I never find together in the same software.

Today I'm wondering if there are other people like me with the same need. I would be glad to contribute to an open source project if I could find one. But actually, it seems that such a software doesn't exist... yet!

So, here is the idea: what about a generic, lightweight and customizable manufacturing software for production and PCB assembly? It could be even used for tests during development or to easily find/locate bugs.

What I need

Here is what I have in mind. The ideal software I’d love to use on a daily basis.

Features

  • Manual or automatic hardware tests in production to validate PCB and PCB assembly (PCBA)
  • Manual or automatic software tests in production to validate the embedded firmware.
  • Standardized test reports
    • Standardized protocol to communicate with an external computer (USB/RS232)
    • To store data such as serials, mac addresses, marketing content, etc. (with protections against viruses)
    • To retrieve data such as test reports
    • To control and remotely run diagnostics / tests from an external computer.
  • Universal interface for all possible devices :
    • framebuffer console interface for devices with a screen
    • feedback with led for devices without screens
    • remote control for devices without human-readable outputs
  • Development / diagnostics features
    • Energy consumption tests and measurement
    • Whiteboard tool (to draw on the screen and test touchscreens)
    • RAM tests with memtester to stress test new RAM chips
    • Certification tests such as CE / FCC / ...

Hardware tests

A sample list of possible tests to offer

  • net
    • wifi / calibration
    • bluetooth
    • ethernet
  • sensors
    • gps
    • accelerometer
  • input
    • button
    • touchscreen / calibration
    • camera
  • output
    • led
    • mic
    • jack
    • speakers
  • display
    • screen
      • tft/lcd screens
      • e-paper screens
    • hdmi connector
  • storage
    • sd card
    • mmc
    • mass-storage
    • eeprom
  • misc
    • usb-port (detection, charge, …)
    • i2c (chip enumeration/detection)

Let’s do it!

I really don't know if this kind of application would be helpful to big companies. But from what I saw, small companies that produce hardware could need such a software. So people like me could focus on something else than writing crappy scripts/code to test hardware. I'm the only embedded Linux developer in my company, and I have to handle so many things / projects that having a powerful tool that eases my work would be great! We could benefit from everyone's work and have a very powerful generic tool. (like u-boot, buildroot, etc.)

Feel free to tell me what do you think about this idea! Especially if you could have such a need. And please, tell me if you think it's a bad idea! Or if you know something that already does the job! I guess it could be very useful to developers like me, working in the consumer electronics industry.

]]>
Pourquoi je quitte developpez.com http://www.yoannsculo.fr/pourquoi-je-quitte-developpez-com 2013-09-16 http://www.yoannsculo.fr/pourquoi-je-quitte-developpez-com J'ai publié dimanche un article expliquant mon départ de developpez.com

Ma leçon du week-end, ne pas écrire de billet sous le coup de l'émotion. J'ai finalement supprimé, à mon initiative, l'article un peu trop vindicatif. Cela n'a pas trop sa place sur mon blog. Ce dernier a plus vocation à accueillir des articles constructifs et techniques. Je ne m'attendais pas à faire autant de vagues avec ce billet, donc je calme le jeu en m'automodérant.

J'arrête donc de fréquenter developpez.com. Je n'ai pas réussi à y faire naître une communauté autour de l'embarqué comme je le voulais. Le niveau technique n'est pas non plus à la hauteur de mes espérances. Leurs outils, leurs règles ainsi que l'ambiance globale ne me conviennent plus. J'ai envie de passer à autre chose et d'utiliser mon temps libre précieux pour d'autres choses.

Merci quoi qu'il en soit pour vos commentaires et retours.

]]>
Kernel Recipes 2013 http://www.yoannsculo.fr/kernel-recipes-2013 2013-08-25 http://www.yoannsculo.fr/kernel-recipes-2013 logo-kernel-recipes

Je sors mon blog de son état léthargique pour répandre la bonne parole. Hupstream avait organisé l'année dernière Kernel Recipes 2012, première du nom. Pour présenter un peu les choses aux personnes n'ayant jamais entendu parler de l'événement, Kernel Recipes est un ensemble de conférences sur le kernel (sur des sujets assez divers à l'attention des développeurs du noyau Linux, des mainteneurs, des développeurs de drivers, des contributeurs, des utilisateurs avancés).

Cette année Kernel Recipes a 2013 a lieu les 24 et 25 septembre prochains toujours au même endroit, au Carrefour Numérique, à La villette à Paris. Cette fois-ci sur le modèle de Distro Recipes, c'est à dire sur deux jours. A noter que cette édition est à présent payante, ce qui me semble normal (10€ la journée). Il y a déjà du beau monde inscrit, et le programme promet un événement tout aussi intéressant que l'année dernière. Il y a encore des créneaux vides car la programmation ne semble pas complètement finalisée.

Les inscriptions sont donc ouvertes, et il y a encore beaucoup de places.

Vous pourrez m'y croiser encore cette année. Et cette fois-ci je n'ai même pas eu besoin de poser de jours de congés \o/

]]>
JobCatcher - Agrégateur d'offres d'emploi décentralisé et open source http://www.yoannsculo.fr/JobCatcher-Agregateur-offres-emploi-decentralise-open-source 2013-06-23 http://www.yoannsculo.fr/JobCatcher-Agregateur-offres-emploi-decentralise-open-source JobCatcher

Je viens de publier sur Github un projet perso sur lequel je travaille depuis quelques mois, JobCatcher.

JobCatcher est une application codée en Python qui agrège des flux d'offres d'emploi de job boards et les stocke dans une base de données locale sqlite. A partir de ces données, l'application peut générer des rapports HTML en fonction de mots clés. Ces rapports peuvent être également filtrés grâce à une liste de sociétés à bloquer. JobCatcher peut alors rechercher du travail à votre place pendant que vous regardez des vidéos de lolcats sur Internet.

Le second but de cette appli est de générer des statistiques à partir de ces offres d'emploi pour en tirer des tendances (moyennes de salaires, état du marché de l'emploi, sociétés qui recrutent le plus, etc.) En temps normal, ces informations sont difficiles à obtenir et nous devons nous fier aux données publiées par certains job boards, données que j'aimerais pouvoir vérifier par moi même.

Pourquoi ce projet ?

J'ai commencé à travailler dessus après mon second licenciement économique en janvier dernier. Chercher du travail est long et fastidieux. Et lorsque l'on ne veut pas travailler en SSII comme moi, cela devient un enfer de rechercher du travail sur les job boards. Les offres intéressantes sont noyées parmi les offres de SSII. Donc la première raison était de pouvoir filtrer toutes ces offres en bloquant celles des SSII. On m'avait demandé pourquoi j'avais constitué cette liste. Voilà enfin pourquoi !

De plus, je m'aperçois que dans mon entourage les gens qui recherchent du travail reviennent très régulièrement sur les sites d'offres d'emploi pour effectuer toujours les mêmes requêtes. Et surtout, la problématique des sociétés de services ne s'applique pas uniquement à l'informatique. On retrouve ce problème dans tous les domaines de l'ingénierie. Donc je pense que le besoin est bien présent.

Il existe énormément de job boards, sites sur lesquels il faut généralement s'inscrire pour enregistrer ses recherches avancées. La recherche au quotidien se transforme alors en visite de job board en job board. C'est extrêmement chronophage ! Alors évidemment on trouve également des agrégateurs d'offres d'emplois indeed, keljob, ... Mais cela ne me convenait pas, car je souhaitais faire un outil décentralisé que l'on puisse contrôler à 100% et héberger chez soi ou sur n'importe quel serveur dédié.

Attention toutefois aux licences des flux RSS mis à disposition par les job boards. En l'occurrence l'Apec n'autorise pas à utiliser n'importe comment ses données.

"l'APEC accorde à l'Utilisateur une licence d'utilisation gratuite [...] dans le cadre d'un usage strictement personnel, privé et non commercial"

D'où la pertinence d'un serveur décentralisé et personnel pour pouvoir exploiter ce genre d'informations.

État du projet

JobCatcher est loin d'être terminé, il manque beaucoup de fonctionnalités. Toutefois j'ai choisi de rendre le projet public aujourd'hui, car je pense que plus c'est tôt mieux c'est pour un projet open source. Pour le moment, seul le site de l'apec.fr est géré, mais j'aimerais ajouter tout plein d'autres job boards. Les job boards fournissent généralement des flux RSS de leurs dernières offres. Je télécharge ces flux et utilise BeautifulSoup pour parser les dernières offres d'emploi. J'utilise l'API Nominatim d'OpenStreetMap pour localiser les offres et injecte le tout en base de données sqlite. L'idée étant également de pouvoir placer les offres sur un fond OpenStreetMap. Il s'agit de mon premier réel projet en Python, je n'ai très certainement pas codé ça dans les règles de l'art du "pythonic code", j'y travaille. Si vous avez des remarques à faire sur le code ou si vous souhaitez participer au projet, n'hésitez pas à me contacter ;) !

Voici un aperçu d'un rapport d'offres filtrées :

JobCatcher

Pour tester JobCatcher

Pour tester JobCatcher vous avez besoin des paquets :

python-html2text, python-requests, python-beautifulsoup

Et voici comment utiliser l'application (dans son état actuel de développement)

./jobcatcher.py -c # Pour créer la base de données
./jobcatcher.py -b # Pour charger la liste de SSII dans la table blocklist
./jobcatcher.py -s # Pour récupérer les dernières offres
./jobcatcher.py -r # Pour générer les rapports

Ces derniers apparaissent alors dans le dossier courant www

  • report_full.html pour les offres brutes
  • report_filtered.html pour les offres filtrées à partir de la liste de SSII

En l'état, rien est automatisé (j'utilise crontab) et la recherche par mots clés n'est pas implémentée. Mais cela devrait arriver très vite.

]]>