Informatique

Bookeen viole la LGPL

Saturday, 25 May 2013
|
Écrit par
Grégory Soutadé

Coïncidence ? Une semaine après la publication de cet article, le code source de WebKit est disponible (uniquement la partie LGPL). J'avais pourtant remonté l'info chez Bookeen depuis février... Avec autant de mauvaise volonté, on peut donc se demander si cette publication les dérange pas (manquerait-il des choses ?), surtout que le résultat de la compilation est une bibliothèque statique. Quoi qu'il en soit, d'un point de vue extérieur, on ne peut plus reprocher à Bookeen de violer la LGPL concernant WebKit.

Logo Bookeen

Bookeen

Qu'est-ce que Bookeen ? C'est une société Française crée en 2003 qui développe et commercialise les produits : Cybook Gen 3, Opus, Orizon, Odyssey. Précurseur sur le marché des liseuses, le développement logiciel (Bookeen n'est qu'un intégrateur matériel) est réalisé en France tandis que la production reste en Chine (avec des salaires 5 fois moins élevés, on comprend pourquoi !). La dernière née est la Cybook Odyssey HD Frontlight. Sous ce nom barbare, se cache l'évolution de la Cybook Odyssey auquel on rajoute un écran e-ink Pearl HD (1024x758) avec un rétro éclairage intégré. En clair, c'est le fin du fin, capable de rivaliser avec les gros comme Amazon et Sony !!

On remarquera son style élégant jusque dans sa protection (vendue séparément). Les boutons physiques (pour tourner les pages) sont un vrai plus, car ils laissent le choix à l'utilisateur de la manipuler comme il l'entend. La prise en main est parfaite et son poids léger permet de lire pendant des heures sans fatigue. L'interface est simple et accessible, même si certains menus sont un peu cachés. Côté réactivité, elle n'a rien à envier aux autres liseuses. La limitation de l'encre électronique laisse encore entrevoir des écrans noirs, mais on s'y fait très bien. Surtout que le confort de lecture est sans commune mesure avec une tablette. Elle tient parfaitement en autonomie. Finalement le rétro éclairage (à niveau variable) est très bien intégré.

Liseuse Cybook Odyssey
Je suis un VRP de chez Bookeen ? Non, pas vraiment. Si j'affectionne particulièrement leur dernier modèle, il n'en est pas de même de leur philosophie. En effet, Bookeen revendique fièrement l'utilisation de la GPL : indication via l'interface, copie de la licence sur la liseuse et distribution des sources via internet. Sauf que... Au début, Bookeen, c'était cool. On avait accès à leurs système (d'exploitation) simplement. L'application Boo Reader restant pour sa part propriétaire, ce qui est tout à faire normal. Mais, depuis l'arrivée de l'Odyssey, les choses ont changés. Les portes se sont littéralement fermées. Alors, pour respecter un minimum la licence, on continue de fournir les sources, mais uniquement le minimum : aucun fichier de configuration, aucun accès au système depuis l'extérieur. Remballez tout, il n'y a plus rien à voir !

La licence GPL

Petite explication de la licence GPL pour les non informaticiens et les non juristes. Au début de l'informatique moderne (dans les années 80), il y avait des tas de matériels (carte mère, processeur...) propriétaires. C'est à dire, dont les spécifications restent sous le secret industriel. Pour autant de matériel, il fallait autant de logiciel et notamment des systèmes d'exploitation qui étaient eux aussi propriétaires. Mais cela ne plaisait pas à quelques fanas de l'informatique, dont le vénérable Richard Stallman. Alors chercheur en intelligence artificielle dans les laboratoires du MIT (Massachuset Institute of Technology), il décida de créer le projet GNU.

GNU ? Oui GNU pour GNU is Not UNIX (UNIX étant le système d'exploitation à la mode de l'époque). Il voulait réaliser un système d'exploitation complet (noyau + applications) complètement libre et ouvert. Afin de donner une base juridique à son projet, il écrivit avec Eben Moglen la licence GPL : GNU Public Licence. Cette licence garantie à l'utilisateur d'un programme informatique :
- La liberté d'exécuter le logiciel, pour n'importe quel usage
- La liberté d'étudier le fonctionnement d'un programme et de l'adapter à ses besoins, ce qui passe par l'accès au code source
- La liberté de redistribuer des copies du programme
- La liberté de faire bénéficier à la communauté des versions modifiées

gnu.png

Avec cette licence, on a donc le droit de voir ce que fait le voisin, de le modifier et de le mettre à disposition de tous. C'est ce qu'on appelle des logiciels "libres". Cette licence a permis l'expansion de milliers de logiciels libres. Les plus connus étant Firefox, Chrome, le noyau Linux, Androïd, EMACS, GCC, GDB... On associe généralement un logiciel libre à un logiciel gratuit, CE QUI EST FAUX ! En effet, il existe tout autant de logiciel propriétaires et gratuit (notamment hors de l'éco système GNU/BSD comme Windows ou MacOS), ce qu'on appelle des Freeware. Un autre aspect trompeur est que, selon les termes de la licence, il n'est obligatoire de distribuer le code source d'un logiciel qu'à ses utilisateurs. Utilisateurs à qui on a pu vendre le-dit logiciel.

C'est ainsi que commencent à pousser des SSLL, c'est l'équivalent des SSII (l'intérim de l'informatique), mais spécialisé dans l'utilisation et la réalisation de logiciels libres. D'autres initiatives comme le crowd funding (financement participatif) permet de financer les développeurs sur leurs temps libre pour le développement d'un logiciel ou d'une fonctionnalité. Petit aparté : comment fait-on de l'argent avec du logiciel libre ? En se faisant payer pour le développement, en vendant du support ou encore en louant la plateforme d'exécution du service développé.

L'aspect central est donc la distribution du code source du logiciel (c'est à dire la suite d'instructions humainement compréhensible). Sans cette distribution, on ne peut pas étudier et modifier le programme. Si l'utilisateur lambda est peu affecté par cet aspect dans son utilisation personelle de l'informatique car il ne souhaite qu'exécuter des programmes, il n'en est pas de même pour les entreprises. Ces dernières peuvent, en effet, utiliser des bouts de logiciel existants pour créer ET VENDRE un nouveau produit !

La licence GPL, n'est pas la seule licence logicielle. Il en existe une petite dizaine. Il y a notamment la licence CeCILL crée par le CEA, le CNRS et l'INRIA, mais aussi des licences plus permissives (qui n'imposent pas la distribution du code source) comme la licence BSD, la licence Apache... Un problème majeur (pour les industriels) de la licence GPL est qu'elle est virale. C'est à dire que si un bout de logiciel sous GPL est intégré à un projet, celui-ci devient entièrement GPL. L'auteur (ou la société) est alors obligé de distribuer les sources du produit complet à ses clients/utilisateurs.

Le viol

Ce soir, j'ai une grosse envie d'accomplir mon devoir conjugual
Revenons un instant sur l'Odyssey. Afin d'augmenter l'attractivité du produit, et surtout pour que l'utilisateur puisse acheter simplement et rapidement des livres électroniques (dont Bookeen a un storemagasin en ligne), la Cybook Odyssey intègre un navigateur basé sur WebKit. WebKit, c'est le fameux moteur de rendu HTML développé par Apple (qui s'est basé sur KHTML) et que l'on retrouve notamment dans les célèbres navigateurs Safari et Chrome. Si Apple a pu reprendre et améliorer le code de KHTML, c'est parce qu'il était sous licence LGPL ! Ils ont donc continué à délivrer le coeur du produit (WebCore) sous licence LGPL tout en gardant une partie propriétaire (Safari) sous licence BSD.

La licence LGPL (Lesser GPL) n'est pas virale à condition que le logiciel (qui est souvent une bibliothèque) soit liée dynamiquement au produit (c'est à dire chargée au moment du démarrage de l'application). Ceci permet de s'appuyer sur du logiciel libre (et d'y contribuer) tout en gardant un partie propriétaire, qui est le coeur de métier de l'entreprise. C'est ce que ne respecte pas (à l'heure actuelle) Bookeen en ne délivrant pas les sources de la partie WebCore de leur navigateur ou du navigateur complet si WebCore est lié statiquement (intégré directement dans le code source).

Conclusion

La tentation est trop grande pour ne pas y succomber. Bookeen n'est pas la seule société à outrepasser les licences logicielles, ce qui n'excuse en rien un tel comportement. Je trouve vraiment dommage de s'être ainsi écarté de l'esprit originel de start up innovante pour entrer dans le monde du marketing intensif. Surtout que tous les concurrents, hromis Amazon, proposent un accès facile au système des liseuses. Néanmoins, je recommande d'acheter la Cybook Odyssey qui est au niveau, sinon dépasse, toute ses concurrentes. Et puis soyons un peu fier de ce que nous sommes capables de concevoir ici en France !

Debian Wheezy

Saturday, 11 May 2013
|
Écrit par
Grégory Soutadé

Logo Debian

La dernière version stable de Debian (Wheezy 7.0) est officiellement sorti le week end dernier. Le temps de laisser les sys admins du monde entier se ruer sur cette nouvelle mouture, j'ai moi aussi franchi le pas du apt-get upgrade ! Mis à part quelques fichiers de configs (dont le mail) et la mystérieuse disparition du serveur MySQL ?? la mise à jour s'est effectuée sans accrocs. Dans deux ou trois releases on sera paré pour les 5 prochaines années !

Au passage, le dégel de testing (Jessie) m'a permis d'installer le tant attendu e17 (enlightenment). Il y a encore quelques bugs qui doivent être corrigés dans sa version stable (dans experimental pour le moment) mais je dois reconnaître que, passer le thème de base relativement moche, il y a pas mal d'avancées par rapport à e16. Vivement qu'elle passe en testing !

Merci Debian !

Colored make output

Thursday, 18 April 2013
|
Écrit par
Grégory Soutadé

If I often compile under emacs, I use a lot the terminal. Most of people ignore how it's fast and practical to work, not for every tasks but it's perfect for programing. I already talks about Autojump2, today I will present colout. It's true that the terminal miss some colors. For better displays I personaly use black over white, but when you compile some projects, it's hard to see if errors happens.

I tweak colout (written by nojhan) to fit my needs. It's a simple Python software that will color terminal output if it found specific words. The list of words is fix and embedded into the script (unlike the original one that takes them in parameter). My script is available here.

You only need to add colout file into a bin directory (referenced in your $PATH) and edit your .bashrc with (don't forget to make it executable) :

function make() { /usr/bin/make "$@" 2>&1 | colout ;}

So, when you type "make", it will transparently use colout. The only bad thing is that you loss make's returns value.

Example with :

int main() { int a, b; b = a+1; c = a; return 0; }

colout result

It's better, isn't it ?

Command line loader for "Read for PIC" Board

Sunday, 24 March 2013
|
Écrit par
Grégory Soutadé

Ready for PIC board

Some weeks ago I bought a "Ready for PIC" board from MikroElektronika. These board comes with a PIC18F25K22 flashed with a bootloader that receives a program from UART and load it in memory without flashing. The prototype area is very nice for peoples that do not want to weld, it also contains a FTDI chip and can be powered by USB. Plus MikroElektronika supply a GUI software to interact with the bootloader. These GUI is available for Windows and Linux, that's great ! Contrary to microchip, MikroElektronika wants to sell their expensive C/BASIC/Pascal compiler and provide cool boards at a good price. The only thing I regret is that you cannot reset the PIC with the FTDI, you need to press the reset button before and after code is downloaded (so boring...).

Maybe the GUI is useful for electronics peoples, but I found it (on Linux) heavy and sometimes buggy. Moreover you cannot access to serial output just after code is downloaded. So, I wrote a simple console Python program that will download an HEX file with command line and optionally displays the output of UART. This allows to do quicker and simpler tests. You can find the file here, it's licensed under GPL v3.

Notification par SMS

Tuesday, 19 February 2013
|
Écrit par
Grégory Soutadé

SMS in classroom

Un serveur perso c'est bien, un serveur auto hébergé c'est très bien, mais un serveur auto hébergé qui a planté, c'est nul ! L'inconvénient du plantage système est qu'il ne prévient pas, du coup la durée d'indisponibilité peut être longue si l'on ne s'en rend pas compte.

Pour pallier à ce problème, j'ai fait un petit retour vers OVH. Mon compte n'ayant pas été clôturé après la migration du nom de domaine, j'en ai profité pour acheter un pack SMS. Pour environ 10€ TTC, j'ai 100 SMS que je peux envoyer via le web. Ce petit script bash permet de me notifier lorsque le serveur tombe. Bien sûr, il faut pouvoir l'exécuter sur un PC connecté h24...

L'idée est de faire un HEAD sur la favicon de mon blog (qui n'existe pas et qui n'apparaît pas dans les log). La requête est exécutée toutes les 10 minutes. Au bout de 3 échecs successifs (pour éviter les problèmes de changement d'IP), un SMS est envoyé et le script quitte.

#!/bin/bash BASE_URL="https://www.ovh.com/cgi-bin/sms/http2sms.cgi" ACCOUNT="sms-sgXXXXX-1" LOGIN="BBBBBB" PASSWORD="YYYYYYYY" FROM="SOUTADE" TO="%2B33666ZZZZZZ" #+33666ZZZZZZ MESSAGE="Cybelle%20is%20down" # Cybelle is down MAX_TRIES=3 TARGET="http://blog.soutade.fr/favicon.ico" request="$BASE_URL?account=$ACCOUNT&login=$LOGIN&password=$PASSWORD&from=$FROM&to=$TO&message=$MESSAGE&noStop=1" #echo $request tries=$MAX_TRIES while [ 1 ] ; do HEAD $TARGET | grep "404" >/dev/null # Found if [ $? -eq 0 ] ; then # Reset counter if [ ! $tries -eq $MAX_TRIES ] ; then tries=$MAX_TRIES fi else # Fail tries=`expr $tries - 1` fi # No more tries, send notification and exit if [ $tries -eq 0 ] ; then GET "$request" break fi sleep 10m done

PS : Pour utiliser le script, il faut créer un nouvel utilisateur et ajouter un expéditeur depuis l'interface OVH. Attention, les champs doivent être encodés sous la forme URL (voir la partie "encode" de http://soutade.fr/urlunshortener)