Une histoire d’ordinateurs

À l’occasion des 50 ans du Loria et des 40 ans de l’Inria dans le grand-est, j’ai prêté au laboratoire un de mes anciens ordinateurs. À une époque où la programmation semble pour certains ne plus pouvoir se faire sans l’aide d’une ʽʽintelligence artificielleʼʼ, il m’a semblé intéressant de revenir sur les étapes de mon apprentissage de l’informatique.

Origines

Je n’ai pas connu, comme certains de mes collègues (pas encore partis à la retraite), l’époque où la programmation des ordinateurs se faisait avec des cartes perforées (UPC, WP). Et encore moins celle de Turing, où il me semble qu’il fallait régler des rhéostats ou commuter des interrupteurs d’une ʽʽbombeʼʼ.

C’est durant l’été 1983, lors d’un séjour linguistique en Californie (à Los Angeles, pas si loin du garage à l’origine d’Apple), que j’ai eu mon premier contact avec l’informatique. En effet, mon correspondant était inscrit à un club d’informatique, et passait plusieurs heures chaque mercredi à se familiariser à la programmation.

Un Apple IIe et son écranDe retour en France, j’ai eu envie de suivre son exemple. Je n’ai pas trouvé de club d’informatique (même à Paris, l’informatique était encore un domaine peu répandu), mais j’ai eu la chance d’avoir un camarade qui avait un Apple IIe (image de droite). Il a gentiment accepté de me laisser en profiter de temps en temps. J’ai donc eu la chance de commencer la programmation en Basic avec un clavier et un écran, même si celui_ci était monochrome (en dégradés de vert, comme la pluie numérique de Matrix).

Débuts difficiles

téléviseur noir & blanc Brionvega Algol 11Évidemment, cela ne m’a pas suffit. Ma sœur et moi avons réussi à convaincre nos parents de nous offrir un (très) petit ordinateur : un Sinclair ZX81 (image ci-dessous). Son prix modique a du aider (c’était peut-être même un modèle d’occasion). Nous le branchions sur un (tout petit) téléviseur noir & blanc (un Brionvega Algol 11, image de droite, © DocTSF), pour taper des programmes proposés dans un magazine (probablement Hebdogiciel).

Sinclair ZX81Nous nous sommes vite aperçu que ce n’était pas un cadeau. Son clavier à membrane, intégré à la coque de l’ordinateur, semblait déformer celle-ci à chaque fois que nous appuyions sur une touche : il fallait parfois (souvent) insister pour que le caractère apparaisse. Et il arrivait souvent que cette déformation appuie sur le bloc d’alimentation, déclenchant (beaucoup trop souvent à notre gout) une coupure de courant et donc l’effacement de la mémoire et la perte du programme en cours de rédaction. Le pire est que les coupures d’alimentation se produisaient même pendant l’enregistrement du programme (sur cassette audio, s’il vous plaît, avec un magnétophone – sans doute un baladeur, produit incontournable des années ’80).

RévolutionAtari 1040STf et son écran

Continuer dans ces conditions n’était pas possible. J’ai réussi à convaincre mes parents (ma mention « assez bien » au bac, en 1986, a dû aider) de m’aider à acheter un vrai ordinateur, un Atari 520 STf. Et, quand je parle de vrai ordinateur, je fais référence à la véritable révolution démarrée en 1984 par le Macintosh : l’apparition d’ordinateurs personnels dotés d’une vraie interface graphique (comme le montre l’image de droite).

Attention, quand je parle de vrai interface graphique, je veux dire un programme capable de tracer des formes géométriques, ce qui permet de définir un bureau, des fenêtres et le pointeur de la souris. Il faut savoir que, sur les ordinateur avant le Macintosh, l’affichage graphique se faisait en utilisant des caractères dont la forme était spécialement définie pour allumer les pixels voulus. Ces interfaces graphiques changent toute la donne, même si la résolution n’est pas encore au rendez-vous : là où un ZX81 avait une résolution monochrome de 256 × 192, le Macintosh était à 512 × 342 (aussi monochrome). L’Atari, de son coté, laissait le choix entre 320 × 200  en 16 couleurs, 640 × 200 en 4 couleurs ou 640 × 400 en monochrome. On était très loin de la 4K : je l’utilisais avec un téléviseur cathodique de 36 cm de diagonale.

Atari 520 STf personnelJe ne saurais indiquer le nombre d’heures que j’ai passées sur cet ordinateur (pas même un ordre de grandeur), à programmer ou à jouer à un des nombreux jeux que j’avais : Arkanoid, Ultima III, Star Wars, Star Teck, Dungeon Master, The Bard’s Tale, Stunt Car, Vroom, et tant d’autres. Tout cela avec l’aide de l’incroyable ST magazine. Nostalgie, nostalgie : 40 ans après, j’ai ressorti cet ordinateur du carton de mon grenier, pour qu’il soit exposé au Loria à l’occasion de ses 50 ans, parmi d’autres machines de cette époque.

Spécialisation

Sparc 1 et son écranPendant mon magistère (bac. +3 à +5) d’informatique et modélisation, de 1989 à 1992, j’ai découvert de nombreuses notions (logique & programmation, système, parallélisme, etc.) et beaucoup d’autres langages : impératifs (Pascal, C), fonctionnels (Lisp et ProLog), à objets (Eiffel), de scripts (csh puis tcsh), etc. J’ai du coup utilisé les stations de travail de mon école, des Sun sous SunOS (basé sur BSD) avec XWindows/X11. Le changement de sortie graphique (monochrome mais à plus grande résolution, bien pratique pour gérer de nombreuses fenêtres réparties sur plusieurs bureaux virtuels) s’est accompagnée d’une montée en puissance de calcul, pour un aspect extérieur plus strict (format pizzabox, un parallélépipède rectangle).

SGI Indy et son écranJ’ai ensuite fait mon armée (scientifique du contingent) et ma thèse à Grenoble, dans l’équipe Sharp du Lifia (près de la gare) puis du laboratoire Gravir et de l’Inria Rhône-Alpes, à Montbonnot. Nous utilisions des Sparc – génération suivante de Sun, avec Solaris (Unix), toujours monochrome – ou des SGI avec Irix, pour simuler en 3D et en couleur des bras manipulateurs (mais pas que). Par manque de machine, il m’est quand même arrivé de travailler au Lifia sur un VT 100 (terminal textuel). C’est à cette époque que j’ai commencé à administrer des machines (les Sun de l’équipe, un collègue se chargeant des SGI).

ProfessionThymio 2

Lego MindstormsDepuis mon arrivée à Nancy en 1999, dans l’équipe Maia puis Larsen du Loria et de l’Inria Grand-Est, j’ai utilisé (et administré) majoritairement des Dell (d’abord des tours, puis des portables), avec toujours plus de résolution et de couleurs (qui sont pratiques pour la reconnaissance syntaxique ou la clarté des schémas – quoique), utilisant Red Hat jusqu’à 2005 environ puis Ubuntu depuis. Je continue à suivre l’évolution du système Linux (cf mon dernier article), mais je passe plus de temps à enseigner et à gérer les robots (Thymio – à droite – et Lego Mindstorms– à gauche) du département informatique de la faculté des sciences et technologies de l’université de Lorraine, et à poursuivre mes recherches quand il me reste un peu de temps.

Splitting an Ubuntu encrypted partition

Context

When using a laptop, having an encrypted partition is now a security requirement. The simplest way to have one under Ubuntu is to ask for it during the installation. However, the default LVM + encrypted installation only creates one partition, containing both / and /home.

Objective

Having two partitions allows to separate the system (in /) from the configurations and data (in /home). In that situation, any system modification (e.g., an update or an upgrade) operates in a separate partition of the disk, and has nearly no risk to modify your configurations and data.

It does not mean you don’t have to save them, it just limits the risks of system operations.

Process

Splitting the partition in two has two drawbacks: you cannot do it on your system (you need to run an external one, e.g. on a USB key, as a mounted ext4 partition cannot be shrank), and it uses some line commands (I did not find any GUI – as e.g. gparted – able to do it) which are rarely used.

As I did not find any help on that process online, I did some mistakes and had to reinstall my system from scratch twice. Reading this page should help you to avoid that!

Once your system is installed (on an encrypted partition with a single LVM logical volume), you will have to:

  1. Start your laptop on an external system, using for example the USB key used to install your system.
    This may require some change in the BIOS (which can prevent a boot on USB).
  2. Unlock your encrypted partition (but do not decrypt it, as re-encryption is not possible without data loss), using

    sudo cryptsetup open <partition_device> <partition_name>

    where <partition_device> is your partition device (/dev/…, which can be found either using gparted or with lsblk), and <partition_name> is the name you choose for the decrypted device. The command will ask for your passphrase.

  3. Shrink the logical volume containing your system, using

    sudo lvresize -r -L <size> <LV system name>

    where <size> is the desired size of your system logical volume (e.g. 128G for 128 GB) and <LV system name> is the name of this logical volume, which can be found using lvs, and is of the form <VG name>/<LV name>, i.e. is composed of the name of the volume group and the name of the logical volume in it.

    This is the action which requires to be on an external system, as the -r argument will also ask fsadm to shrink the contained ext4 partition using resize2fs, which cannot be done on a mounted partition.

  4. Create the additional logical volume, using

    sudo lvcreate -l 100%FREE -n <LV data name> <VG name>

    where <VG name> is the name of the volume group containing your system logical volume (in which you add the new logical volume) and <LV data name> is the name of this new logical volume.

    You also have to format this logical volume to add an ext4 partition, using

    sudo mkfs -t ext4 /dev/mapper/<VG name>-<LV data name>

  5. Mount the two partitions (/ and /home) and move your data from the home directory of the / partition to the /home partition : using two tar allows to keep any special file (as, e.g., symbolic links).
  6. Update the file system table (etc/fstab in /) to mount the two partitions : you can use /dev/disk/by-id/dm-name-<VG name>-<LV data name> as first parameter, to identify your partitions ; last parameter is 1 for / partition and 2 for the /home partition.

You can then restart your computer normally, and check with df -h / /home that system and data are separated.

Fête de la science 2025

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme tous les ans depuis 2017, j’organise un atelier autour des Thymios II proposant :

un poster,Poster de l'atelier Un Thymio II des robots, Valise de Thymios II une présentation,Diaporama de l'atelier
Guide
un guide
,
Activités proposées
des activités.

Un grand merci à l’encadrant de toutes les années (Olivier Buffet) et à Phuc Ngo & Vincent Thomas,

Pour ceux qui n’ont pu assister à cet atelier, il est possible de le faire à distance, en suivant les indications données lors de la manifestation de 2020.

Fête de la science 2024

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme tous les ans depuis 2017, j’organise un atelier autour des Thymios II proposant :

un poster, Un Thymio II des robots, Valise de Thymios II une présentation,
Guide
un guide
,

des activités.

Un grand merci à l’encadrant de toutes les années (Olivier Buffet) et à Vincent Colotte, Sylvain Contassot-Vivier, Gilles Simon & Vincent Thomas,

Pour ceux qui n’ont pu assister à cet atelier, il est possible de le faire à distance, en suivant les indications données lors de la manifestation de 2020.

Fête de la science 2023

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme l’année dernière, j’organise un atelier autour des Thymios II proposant :

un poster, Un Thymio II des robots, Valise de Thymios II une présentation,
Guide
un guide
,

des activités.

Un grand merci aux rares qui ont accepté de m’aider à encadrer cet atelier : Fabienne & Olivier Buffet, ainsi que Vincent Thomas.

Pour ceux qui n’ont pu assister à cet atelier, il est possible de le faire à distance, en suivant les indications données lors de la manifestation de 2020.

Fête de la science 2022

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme l’année dernière (avant la pandémie), j’organise un atelier autour des Thymios II proposant :

un poster, Un Thymio II des robots, Valise de Thymios II une présentation,
Guide
un guide
,


des activités.

Un grand merci à tous ceux qui ont accepté de m’aider à encadrer cet atelier : Oriane Dermy, Olivier Buffet.

Pour ceux qui n’ont pu assister à cet atelier, il est possible de le faire à distance, en suivant les indications données lors de la manifestation de 2020.

Fête de la science 2021

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme les années précédentes (avant la pandémie), j’organise un atelier autour des Thymios II proposant :

Posterun poster, Un Thymio II des robots, Valise de Thymios II Présentationune présentation,
Guide
un guide
,
Activités
des activités
.

Un grand merci à tous ceux qui ont accepté de m’aider à encadrer cet atelier : Thimothée Anne, Sylvain Contassot-Vivier, Éloïse Dalin, Oriane Dermy, Alain Dutech, Yassine El Khadiri et Lucien Renaud.

Pour ceux qui n’ont pu assister à cet atelier, il est possible de le faire à distance, en suivant les indications données lors de la manifestation l’an dernier.

Faut-il continuer à utiliser Ubuntu ?

La question peut paraître saugrenue, surtout quand on pense qu’Ubuntu a été pendant des années un système plébiscité par beaucoup. Et pourtant, les dernières versions LTS (“Long Term Support” : support à long terme) ont sérieusement érodé la confiance que certains plaçaient dans ce système :

  1. les soucis d’Ubuntu 16.04 ;
  2. Ubuntu 18.04, pas vraiment (vraiment pas ?) un sauveur ;
  3. Ubuntu 20.04, toujours pas mieux ?

Les soucis d’Ubuntu 16.04

Dans la distribution 16.04 d’Ubuntu (mais aussi de ses variantes KUbuntu, LUbuntu, XUbuntu, EdUbuntu, …), de nombreux logiciels ont posé des problèmes :

  • certains ont eu des comportements inadéquats dans certaines situations, comme la page d’accueil (LightDM) en présence d’écrans multiples (passage de l’écran intégré d’un portable à un écran externe ou à un vidéo-projecteur :  affichage parfois irrécupérable, l’ordinateur devant être relancé) ;
  • d’autres plantaient carrément, comme par exemple Gimp lorsqu’on utilisait l’outil de transformation par cage.

Cinq années plus tard, certains de ces problèmes (dont les deux cités plus haut) n’ont toujours pas été résolus, alors même qu’il existait des solutions (pour Gimp, lier le code à une version antérieure d’une bibliothèque, comme initialement prévu par les développeurs). Cette distribution a donc toujours été assez désagréable à utiliser, au point où certains sites ont préféré continuer (très longtemps) à utiliser la version LTS antérieure (Ubuntu 14.04).

Ubuntu 18.04, pas vraiment (vraiment pas ?) un sauveur

La sortie de la version LTS suivante, Ubuntu 18.04, a du coup été perçue comme une très bonne nouvelle. Pas pour très longtemps, malheureusement. En effet, en voulant à tout pris paraître plus à jour, la version 18.04 d’Ubuntu a choisi de proposer des versions plus récentes de certains environnements de développement comme Qt ou ROS, et uniquement ces versions.

Ainsi, alors qu’il est possible d’utiliser Qt4 ou Qt5 dans Ubuntu 16.04, Ubuntu 18.04 n’a longtemps proposé que Qt5. Or, le passage de Qt4 à Qt5 n’est pas anodin, la compatibilité ascendante n’ayant pas été assurée :  certaines classes, servant à mettre en œuvre des comportements, ont disparu au profit d’autres mises en œuvre (par exemple, la classe QSignalMapper servant à lier un identifiant entier ou chaîne de caractères à un bouton et permettant de connecter plusieurs boutons à une seule méthode). Pour un enseignant-chercheur utilisant Qt4 pour ses cours et sa recherche, le passage de Ubuntu 16.04 à Ubuntu 18.04 était donc compliqué, si son code ne pouvait pas tourner sous Qt5 : trouver du temps pour mettre à jour son code est rarement facile.

Pour ROS, le problème était encore pire : seule la toute nouvelle version Melodic était disponible pour Ubuntu 18.04. Or, de nombreux paquets de ROS n’étaient disponibles que pour la version précédente Kinetic. Passer à Ubuntu 18.04 supposait donc d’assurer le portage de Kinetic à Melodic de tous les paquets de ROS requis par mes programmes. Autrement dit, une tâche encore plus irréalisable (car beaucoup plus coûteuse en temps) que celle concernant Qt. Heureusement, ces paquets ont été portés par d’autres personnes… Au bout d’un ou deux ans !

En conséquence, j’ai du attendre plusieurs années avant de pouvoir migrer d’Ubuntu 16.04 à 18.04, malgré les nombreux soucis du premier système…

Ubuntu 20.04, toujours pas mieux ?

Quant à Ubuntu 20.04, il semble continuer sur la même lancée : pas de version Melodic de ROS mais la suivante (encore très incomplète, évidemment), et des logiciels ne fonctionnant pas correctement (par exemple, hplip permet bien d’imprimer avec les imprimantes HP, mais pas de scanner avec certaines)… Et je n’ai que très peu essayé cette distribution, du fait du premier point !

En conclusion, j’envisage très sérieusement de renoncer à la distribution Ubuntu, bien qu’elle soit largement utilisée dans mon université et mon laboratoire de recherche, à moins que leur politique ne change radicalement. Je me tournerais sans doute vers Debian, qui propose une version stable très sûre (sans tous ces problèmes) et qui reste très proche d’utilisation d’Ubuntu. Qui vivra verra !..

Fête de la science 2020 : en ligne

Logo de la fête de la science 2020Cette année, la fête de la science est organisée en grande partie en ligne, que ce soit au niveau de l’université de Lorraine ou de l’Inria. Je propose donc ici une version en ligne des activités que j’ai encadrées (avec l’aide de plusieurs collègues) en 2019 et 2018.

Comme cette page va être plus chargée que les précédentes, une petite table des matières s’impose :

Présentation Installations Activités


Un Thymio

1. Présentation

Le but de cette page est de vous permettre de prendre le contrôle d’un robot (un Thymio) dans un simulateur.  Pour cela, vous allez :

  1. lancer un simulateur, qui montrera le robot dans le terrain (simulé) que vous aurez choisi ;
  2. ouvrir l’application qui permet de programmer le robot,
  3. voir quel sera le comportement du robot qui correspond à votre programme.

L’intérêt principal de cette activité est de comprendre la relation entre un programme et le comportement qui lui est associé, cela dans un cadre aussi ludique que possible.

PosterLe poster Le poster et le diaporama utilisés lors des précédentes fêtes de la science reprennent et complètent ces quelques mots. Je vais essayer de faire d’ici peu une vidéo reprenant ma présentation avec le diaporama. DiaporamaLe diaporama

2. Installations

Avant d’aborder le cœur de cette activité, il est nécessaire d’installer le logiciel sur lequel elle s’appuie, et de télécharger les terrains pour le simulateur.

2.a) Installation d’Aseba

Si les logiciels Aseba ne sont pas encore installés sur votre ordinateur, vous pouvez trouver la suite Thymio sur cette page :  il y a une version pour Windows (≥ 7, 32 ou 64 bits), une pour Machintosh (10 ou ≥ 12), une pour Linux (un peu plus compliquée à installer), et même une pour iOS, toutes gratuites et open-source.

Si vous avez déjà la suite Thymio, ou une version plus ancienne des logiciels Aseba (dans laquelle le logiciel de programmation est séparé du simulateur), vous pouvez passer à l’étape suivante.

2.b) Téléchargement des terrains simulés

La page consacrée au simulateur pour les Thymios propose deux archives contenant des terrains : une première avec des terrains dits « de base », et une seconde avec des terrains complémentaires.  Choisissez une de ces archives (ou prenez les deux), et décompressez la/les sur votre ordinateur.

Attention : si vous avez une ancienne version d’Aseba (dans laquelle le logiciel de programmation est séparé du simulateur), le simulateur ne peut pas utiliser les fichiers d’extension playground contenus dans ces archives ; pas de panique, il y a une solution. Dans ce cas, il faut :

  1. ouvrir chaque fichier d’extension playground avec un gestionnaire d’archives (ce sont en fait des archives zip, il faut peut-être changer l’extension pour cela) ;
  2. extraire le contenu de cette archive (généralement une image et un fichier world.xml) ;
  3. changer l’extension du fichier world.xml en .playground (vous pouvez renommer entièrement le fichier).

C’est tout !

3. Faire bouger le robot (simulé)

Vous voilà prêt pour jouer avec un Thymio simulé.

Si vous utilisez la suite Aseba, suivez les indications données par la vidéo sur la page du simulateur. Sinon, démarrez le simulateur Playground, chargez le terrain qui vous convient, puis lancez Aseba Studio. Lorsqu’il indique ne pas trouver de Thymio, utilisez le menu déroulant à droite du champ textuel sous le libellé « Cible sélectionnée », et choisissez « TCP local ».

Vous voila prêt à programmer, et à voir quel comportement vous obtenez ! Vous pouvez aussi essayer de réaliser certaines des activités proposées dans le livret ci-joint. Attention, cependant :

  • les comportements par défaut ne sont pas disponibles en simulation, les activités de la section A sont donc impossibles à réaliser ;
  • d’autre part, je ne crois pas que le son fonctionne sur le nouveau simulateur (il ne fonctionne pas sur l’ancien), ce qui empêche de faire l’activité B.2 ;
  • les pistes à suivre (pour l’activité B.5) sont disponibles dans les terrains thymio-challenge-pack.playground et thymio-discovery-yeti.playground ;
  • enfin, je n’ai pas eu le temps de créer une version simulée de la cible nécessaire pour l’activité B.6 (désolé).

Quelques indications

Si vous n’avez jamais utilisé Aseba, le plus simple est d’utiliser le mode VPL.  Une vidéo d’introduction est disponible sur la page le présentant.  J’ai aussi résumé les principaux points à connaître dans un guide reprenant des document du site thymio.org.

Si vous préférez, vous pouvez utiliser Scratch ou Bloky.

Si vous avez des soucis, vous pouvez trouver de l’aide sur la foire aux questions ou le wiki dédiés au Thymio, sur le forum associé (en anglais) ou ailleurs sur internet, ou finalement en m’envoyant un message (à l’adresse alexisPTscheuer@loriaPTfr, en remplaçant les PT par des .).

Présentation Installations Activités Haut de page

Fête de la science 2019 : activités et démonstrations

Bannière de la fête de la science

Cette année encore, la faculté des sciences et technologies de l’université de Lorraine et le Loria organisent des activités pour la fête de la science. Comme les années précédentes, j’organise un atelier autour des Thymios II proposant :

Posterun poster, Un Thymio II des robots, Valise de Thymios II Présentationune présentation,
Guideun guide, Activités
des activités
.

Un grand merci à tous ceux qui ont accepté de m’aider à encadrer cet atelier : Olivier Buffet, Vincent Colotte, Jessica Colombel, Alain Dutech, Yassine El Khadiri, Cécile Pierrot, Vincent Thomas & Yang You.