Java et Mac OS X… et Scilab

Les utilisateurs de Scilab sur Mac ont fait entendre leurs voix ces derniers temps.

Tout d’abord à cause d’une incompatibilité avec OS X 10.10 Yosemite. Scilab Enterprises a réagit rapidement en fournissant une version spécifique de Scilab.

Ensuite, à propos du fait que Scilab utilise encore une version de Java qui n’est plus fournie (par défaut) par Apple avec les versions récentes de Mac OS X. C’est ce point qui va être développé ici.

Autant vous le dire tout de suite, ce billet de blog ne vous donnera pas de solution pour utiliser une version plus récente de Java avec Scilab. Je vais plutôt essayer de vous expliquer pourquoi Scilab a besoin de Java et vous montrer les éventuelles limitations de la version 6.

Java

Java est un langage de programmation dont le but est de simplifier la portabilité du code sur les systèmes d’exploitation courants (Windows, Linux, Mac OS X).

Commençons par expliquer brièvement certains acronymes de l’univers Java.

SE ? EE ? ME ?

  • SE (Standard Edition) : distribution « classique Â»
  • EE (Enterprise Edition) : distribution destinée aux applications d’entreprise
  • ME (Micro Edition) : distribution destinée aux applications embarquées

C’est donc la distribution SE que nous retrouvons sur la plupart de nos machines.

JRE ? JDK ?

Contrairement à un langage compilé, le code Java a besoin d’un interpréteur pour être exécuté par le système. On parle de machine virtuelle (ou JVM). La distribution de Java est également fournie avec des bibliothèques standards. La JVM et ces bibliothèques composent le JRE (Java Runtime Environment). Le JRE permet d’exécuter du code Java sur une machine.

Si vous souhaitez écrire et/ou compiler du code Java, il vous faut des outils supplémentaires. Ces outils constituent le JDK (Java Development Kit ou encore Java SE Development Kit). Pour simplifier la vie du développeur, le JDK inclu le JRE.

Pour résumer, vous avez besoin du JRE pour exécuter du code Java. Si vous avez déjà installé le JDK, vous n’avez normalement pas besoin d’installer un JRE supplémentaire.

Numérotation des versions

Vous en savez maintenant un peu plus sur les acronymes SE, JDK et JRE. Qu’en est-il des numéros de versions : 6, 7, 8 ? 1.6, 1.7, 1.8 ? Cette double numération désigne soit la version de la distribution SE, soit celle du JDK (ou du JRE).

  • Java SE 6 -> JDK 1.6 -> JRE 1.6
  • Java SE 7 -> JDK 1.7 -> JRE 1.7
  • Java SE 8 -> JDK 1.8 -> JRE 1.8

Java et Mac OS X

Intéressons nous au cas particulier de Java sur Mac OS X. Java est développé par la société Oracle (après rachat de Sun). Or, Apple a développé en parallèle sa propre version de Java. Du moins jusqu’à la version 6. La dernière version de Java publiée par Apple est la 1.6.0_65 publiée le 15 octobre 2013 (Java pour OS X 2014-001). Pour une version plus récente, rendez-vous sur le site d’Oracle (Java SE Downloads).

Et Scilab dans tout ça

Pourquoi Scilab utilise Java ?

Scilab utilise Java entres autres pour les affichages graphiques. Voir à ce sujet la liste des dépendences de Scilab 5.X. Pour fonctionner correctement, Scilab a donc besoin d’un JRE.

Linux et Windows

Il n’y a aucun soucis avec Linux et Windows, puisque l’installateur de Scilab inclut un JRE. Après l’installation, ce JRE se trouve dans le dossier SCI+'/java' pour Windows et SCI+'/../../thirdparty/java' pour Linux. Pour Scilab 5.5.1, il s’agit de la version 1.6.0_41.

Mac OS X

L’installateur de Scilab pour Mac OS X ne contient pas de JRE. Les développeurs de Scilab ont sans doute jugé plus simple d’utilisé le JRE fourni par Apple. Sauf qu’avec les versions récentes de OS X, Apple a décidé de ne plus installer de JRE par défaut. Donc Scilab ne peut plus démarrer.

La seule solution consiste donc à installer soi-même un JRE. Et de préférence le bon : Java pour OS X 2014-001 !

Les développeurs de Scilab connaissent bien entendu ce problème depuis longtemps. Comme le montre ce commentaire tiré des sources (/modules/jvm/src/c/JVM_Unix.c) :

/* Under Mac OS X, we are using the JVM provided by the distribution.
* However, this might change with Java 7 since Apple will no longer provide
* Java with Mac OS X */

Pourquoi le JRE 1.6 et pas le 1.7 ou le 1.8 ?

Le passage d’un JRE à un autre n’est pas anodin. La version 1.7 nécessite par exemple au minimum Mac OS X 10.7.3. Passer du JRE 1.6 au JRE 1.7 demande également de relancer toute la batterie de tests pour s’assurer de la compatibilité. Et il faut bien entendu des développeurs disponibles.

Il faut donc mettre en rapport les gains (bibliothèques, performances…) apportés par la nouvelle version, face à la quantité de travail que nécessite la migration.

Limitation du JRE 1.6 pour Scilab

Le JRE 1.6 limite-t-il l’utilisation de Scilab ? On l’aura compris, cela limite juste la capacité de Scilab à exécuter du code Java récent (voir la section « Java depuis Scilab Â» dans la documentation de Scilab).

Le problème surviendra donc si le code Java utilise des instructions non prises en charge par le JRE 1.6. Ou bien si le code a été compilé avec une version plus récente du JDK (1.7 ou 1.8).

Dans les deux cas, voici l’erreur qui sera renvoyée par Scilab (jimport) :

jimport: An error occured: Exception when calling Java method : ******* : Unsupported major.minor version 51.0

A quand la prise en charge d’une version plus récente du JRE ?

D’après un tweet du 22 octobre 2014 de @Scilab :

Java sera mis à jour dans la prochaine famille de Scilab. En attendant pour pouvoir lancer Scilab 5.5.1 vous avez besoin de Java 6

Conclusion

Vous en savez maintenant un peu plus sur Scilab et Java sur Mac OS X. L’utilisation du JRE 1.6 n’est pas une limitation pour la plupart des utilisateurs de Scilab.

Est-il important de bien écrire en français sur Developpez.com ?

Je me suis inscrit il y a huit ans sur Developpez.com pour créer une communauté des utilisateurs francophones de MATLAB. À l’époque, j’apportais mon aide sur le forum anglophone. Répondre aux questions en français était donc bien plus facile et plus naturel pour moi.

Merci qui ?

Il m’arrivait parfois de ne pas comprendre certains messages sur le forum anglophone. Soit à cause d’un anglais incompréhensible, soit à cause d’erreurs de frappe ou encore à cause de l’emploi du style familier. Et inutile d’espérer utiliser un traducteur automatique (quasiment inexistant à l’époque). Toute cette pollution orthographique et typographique m’empêchait de comprendre clairement les indications en anglais.

Il m’a fallut du temps mais je me suis rendu compte que c’était la même chose avec mes messages écris en français sur les forums de Developpez.com (idem pour mes tutoriels). Comment aider efficacement un utilisateur si il doit passer plusieurs minutes à comprendre le message, voire au final, à se contenter des lignes de code ?

Je ne sais pas ce qu’il en est des autres communautés, mais j’apprécie particulièrement la présence des Correcteurs dans l’équipe de rédaction de Developpez.com. Pour être franc, au début leurs remarques étaient… pénibles. Au final, leurs remarques sont… nécessaires et incontournables. Je n’en citerai aucun en particuliers mais vous trouverez leurs pseudos dans la section « Remerciements Â» des tutoriels.

Je profite donc de ce modeste billet de blog pour remercier chaleureusement les Correcteurs de Developpez.com.

Règles de l’écriture typographique du français

Ce billet de blog est également motivé par la lecture récente de l’ouvrage « Règles de l’écriture typographique du français, à l’usage des personnes qui exercent une activité sur Mac ou PC Â» par Yves PERROUSSEAUX.
Livres regles ecriture typographique français perrousseaux
Je semble avoir découvert ce livre tardivement (9 éditions depuis 1995), mais je vous en recommande chaudement la lecture si ce n’est déjà fait. Vous trouverez des informations plus précises sur le site Atelier Perrousseaux Editeur.

Le livre ne se contente pas de faire la liste de ce qu’il faut faire ou des erreurs à ne pas faire. Il replace historiquement les règles de typographie. Vous en apprendrez plus sur les ligatures, la gestion des accents sur les lettres capitales…

C’est devenu pour moi une référence à garder à portée de main.

Conclusion

Les règles orthographiques et typographiques ne rendent pas simplement nos messages plus jolis ou plus professionnels. Elles sont nécessaires pour optimiser la compréhension des informations que nous souhaitons transmettre.

PS : ceci est un billet anti-SMS et anti-RTFM !

Un nouveau SSD pour mon Mac Mini Late 2012

Comme je l’avais écris dans mon précédent billet (Un Mac Mini 2014 pour remplacer mon Mac Mini 2012 ?), j’ai entrepris de changer le disque dur de mon Mac Mini Late 2012. Ce dernier était équipé d’un disque Hitachi de 500 Go à 5400 tr/min (Mac Mini Late 2012 – Disque dur). Le disque de remplacement est un SSD Crucial M4 de 128 Go monté précédemment sur mon PC fixe (Windows/Linux).
Crucial SSD M4 128

La modification se déroule en trois étapes :

  1. création d’une clé USB de démarrage avec Mac OS X 10.10 Yosemite ;
  2. remplacement du disque dur ;
  3. installation de Mac OS X

Clé USB de démarrage avec Mac OS X 10.10 Yosemite

Téléchargement de Yosemite

Avant de s’intéresser à la clé USB, il vous faut les fichiers d’installation de Mac OS X. Même si vous avez déjà fais la mise à jour, vous devrez sans doute comme moi, encore une fois télécharger Mac OS X Yosemite depuis l’App Store.

Si le téléchargement de Yosemite est horriblement lent, essayez la solution suivante :

  • Mettez le téléchargement de Yosemite en pause (via le Launchpad)
  • Allez dans le menu « Préférence Système > Réseau > Avancé > DNS Â»
    • notez les adresse des serveurs DNS
    • changez les serveurs par 8.8.8.8 et 8.8.4.4
  • Surfez un peu avec Safari pour tester si tout fonctionne
  • Reprenez le téléchargement de Yosemite (via le Launchpad)
  • Modifiez à nouveau les adresses des serveurs DNS avec celles notées précédemment

Cette solution, donnée par Frank252 dans Yosemite download is insanely slow (nothing wrong with my network) (9ème message), a parfaitement fonctionné pour moi :

  • avant : 1 Go en 2h30
  • après : 4,7 Go en 15 minutes

Nettement mieux !

Formatage de la clé USB bootable

Rien de bien compliqué ici. Il vous faut juste une clé USB d’au moins 8 Go. Vous pouvez ensuite suivre ce tutoriel : How to format a startup drive for a Mac

Copie des fichiers d’installations sur la clé

J’ai suivi ce tutoriel How to make a bootable OS X 10.10 Yosemite install drive. J’ai utilisé la première méthode avec createinstallmedia.

Remplacement du disque dur

Avant de commencer, vous devez savoir que la visserie des Mac est de type Torx. Vous aurez besoin des clés T6 et T8. N’étant pas équipé, j’ai acheté ce kit chez LDLC (en même temps que mon second disque SSD).

J’ai suivi ce tutoriel : Mac Mini Late 2012 Hard Drive Replacement en sautant les étapes 10, 13, 14, 15, 16 et 20. J’ai également utilisé le truc de la carte de visite pour insérer facilement le disque. Voir la vidéo suivante à 8 minutes 50 secondes :

http://www.youtube.com/watch?v=Nkbekb8yKhc

Il faut normalement entre 15 et 20 minutes pour changer le disque dur (sans se presser).

Voici le résultat :
Mac Mini Late 2012 avec disque SSD

Installation de Yosemite sur le SSD

Il faut brancher la clé créée précédemment puis allumer le Mac Mini en maintenant les touches cmd+R enfoncées.

Vous pouvez alors effacer/formater le disque SSD et ensuite lancer l’installation de Mac OS X dessus.

Si au cours de l’installation le timer semble se bloquer indéfiniment sur ce message :

Il reste environ une seconde

La solution consiste… à ne rien faire : OS X Yosemite Installation Stuck with Minutes Remaining? Wait!

Si vous n’y tenez plus, vous pouvez toujours ouvrir la console d’installation avec les touches cmd+L. Mais ne vous fiez pas forcément aux message d’erreurs présentés. J’avais par exemple l’erreur suivante :

cannot connect to /var/run/systemkeychaincheck.socket

N’ayant trouvé aucune solution convaincante sur internet, j’ai simplement attendu et miracle, l’ordinateur a redémarré automatiquement après presque 15 minutes. Il a encore fallut 10 bonnes minutes pour la deuxième partie de l’installation de Mac OS X.

Conclusion

Le changement de disque dur sur le Mac Mini Late 2012 est simple (si on possède les bons outils). La partie la plus pénible reste finalement le téléchargement et l’installation de Mac OS X Yosemite.

Au final mon Mac Mini est maintenant plus réactif.

Si vous avez des questions, n’hésitez pas.