mozFR

Mozilla Francophone

Firefox OS arrive
en France !
En savoir plus »

SeaMonkey a 10 ans – Coup d'œil dans le rétro

Firefox OS

Logo SeaMonkeyCe n’est pas un ancêtre direct de Firefox OS que nous vous présentons aujourd’hui, mais un cousin qui nous aidera à comprendre la nature du projet Mozilla.

Aujourd’hui, nous fêtons les 10 ans du projet SeaMonkey. Pas plus que le firefox n’est un « renard de feu », le seamonkey n’est pas un « singe de mer ». Le logo du projet est un petit crustacé à l’histoire étrange, choisi cinq mois après le choix du nom.

Nous vous avons déjà raconté comment la suite Mozilla avait été abandonnée définitivement par Mozilla deux ans après le recentrage du développement au profit de deux logiciels autonomes Firefox et Thunderbird (comme on les appelle maintenant).

Des membres de la communauté ont exprimé le désire de continuer la suite Internet. Mozilla a accepté et a continué son soutien en infrastructure à ces bénévoles qui se sont organisés en un Council chargé de la direction du projet. 10 ans après, le développement de SeaMonkey, basé sur le code de Firefox et de Thunderbird avec une interface, des fonctions et des préférences propres, continue grâce à une poignée de volontaires, et pas sans difficultés.

SeaMonkey browser sous Linux

Le projet SeaMonkey suit le processus de développement rapide de Mozilla pour Firefox et publie une nouvelle version majeure toutes les 6 semaines. Pourtant, la dernière version remonte au mois de mars et est basée sur Firefox 36 (Firefox 39 devrait sortir cette semaine). Le projet a des problèmes avec ses vieux serveurs qu’il n’arrive pas monter en gamme pour pouvoir à nouveau compiler le code et produire de nouvelles versions.

Après un long moment de pause dans le développement des nouvelles fonctionnalités, le projet de client de courriel et messagerie instantanée Thunderbird, dont la direction a été abandonnée par Mozilla à la communauté, a adopté le modèle de direction du projet SeaMonkey avec un Council qui détermine la feuille de route de développement de Thunderbird et a sorti récemment sa première version majeure avec des nouveautés menée par la communauté.

Ainsi, la nature ouverte du code produit par Mozilla facilite sa réutilisation et permet sa distribution. L’ouverture de la fondation Mozilla lui fait soutenir ces projets communautaires même si les projets officiels ont la priorité.

À l’heure où tous les principaux navigateurs web sont autonomes et visent une interface épurée, SeaMonkey apparaît comme une bête curieuse, réminiscence d’un temps où l’on naviguait au sein de suites applicatives telles Netscape et Opera aux débuts du Web.

SeaMonkey suite applicative

Et vous, utilisateurs de Firefox et Firefox OS, aviez-vous entendu parlé du vénérable SeaMonkey ?

Un souvenir ? Une idée ? Racontez-nous votre histoire de Mozilla et du logiciel libre.


@Mozinet


Le précédent coup d’œil dans le rétro : Sortie de Mozilla 1.0 – 5 juin 2002


Crédit illustration : Logo SeaMonkey créé par Alex Butin

Capture n° 2 navigateur SeaMonkey sous Linux

Lire la suite »

Mamie Fox a été à VIP, Geekopolis et à Ubuntu

Firefox OS

Chat virtuel à Geekopolis 2015Bonjour,

Je ne vous raconte pas le marathon que j’ai effectuée avec mon petit-fils le fox, il y a quelques semaines et plus exactement les 2 dernières semaines du mois de mai. Il a réussi à m’entraîner dans 3 événements de plusieurs jours chacun.

Pourtant, ce fut merveilleux de voir, revoir et faire de nouvelles connaissances et de nouveaux amis. Je vais partager avec vous mon aventure.

Geekopolis

Geekopolis – guide 2015 Affiche Geekopolis

Pour la première fois, j’ai accompagné mon petit-fils le Fox à Geekopolis qui s’est déroulé les 23 et 24 mai dernier. J’en ai profité pour prendre le temps de visiter les 5 univers, dont je pouvais être l’héroïne :

  • AVALON : médiéval fantastique
  • LITTLE TOKYO : manga, Japon et jeux vidéo
  • MÉTROPOLIS : science-fiction
  • NAUTILUS : univers Steampunk (Jules Verne)
  • TEKLAB : sciences et nouvelles technologies

Chaque univers m’a fait découvrir de nombreux décors et rencontrer de nombreux passionnés, qui m’ont éloignée pendant un temps de la réalité quotidienne et je les en remercie tous.

De plus, j’ai croisée de nombreux personnages bien réels tirés de jeux vidéo, films, séries, comics… ou de création personnelle, le cosplay.

Personnage à Geekopolis 2015 Personnage 2 à Geekopolis 2015

Pour cette 3e saison, un des points forts fut l’animation qui a été mise en avant et plus particulièrement la bande dessinée sous différentes formes avec de nombreux stands.

Lorsque je me suis promenée dans les allées du salon, j’ai vu un extrait de film animé en images de synthèse appelé Ze Marmotte. Il s’agit d’un court métrage d’animation qui fait un appel à un crownfunding – mon petit-fils m’a expliqué qu’en français on appelle ça financement participatif, une méthode de financement de projet qui fait appel à beaucoup de gens pour boucler son budget ; ce qui est très bien pour un projet fait à partir de logiciels libres.

J’ai rencontré Holocat, un chaton blanc trop chou. Mais en fait, c’était une animation très réaliste créée par Epitech. J’ai ainsi vu mon premier animal virtuel !

Chat virtuel à Geekopolis 2015

Enfin, Mozilla avait un stand dans le Village avec l’April, Parinux, Ubuntu, Framasoft

Geekopolis 2015 – stand de l'April Geekopolis 2015 – stickers sur le stand de l'April

Concernant notre stand, les démonstrations étaient orientées autour de Firefox OS et les nombreux amis de mon petit-fils le Fox ont répondu avec cœur à tous les visiteurs. Certains m’ont même réclamée (ce qui me fait encore chaud au cœur).

Ubuntu Party

La Ubuntu Party Paris s’est déroulée les 30 et 31 mai dernier, en parallèle de la Very Important Party (dont je vous parlerai plus loin). Ce fut l’occasion de marquer la sortie de la version 15.04 d’Ubuntu.

Ce rendez-vous annuel est l’occasion de passer et de découvrir le système d’exploitation Ubuntu sous différentes formes, avec des ateliers si on avait son ordinateur avec soi, des conférences pour découvrir son utilisation et même des conférences autour de la vie privée.

Ubuntu Party 2015

Mon petit-fils m’a expliqué qu’Ubuntu (qui se prononce « ou-boun-tou » en français) était un logiciel open source – vous pouvez regarder dedans, le modifier et redistribuer vos modifications – basé sur Linux, un noyau de système d’exploitation, libre et principalement développé par des bénévoles. Ça a l’air un peu compliqué comme ça, mais le système d’exploitation de votre ordinateur ou de votre ordiphone (le smartphone est un vrai ordinateur de poche avec lequel on peut aussi téléphoner) c’est le premier logiciel qui se lance quand vous appuyez sur le bouton marche et qui dirige l’utilisation des capacités de l’appareil – PC, Mac, smartphone, tablette, objet connecté… – par des logiciels applicatifs. L’OS – les initiales d’operating system de son nom anglais – permet aux différents composants – matériels et logiciels – de communiquer entre eux. Voilà ! Maintenant, vous savez ce que veut dire le OS – dites bien « o-s » – dans Firefox OS.

À cette occasion, je me suis rendue avec mon petit-fils à une des nombreuses conférences, celle sur Firefox OS, animée par Genma :

FirefoxOS, l’OS pour smarpthone de Mozilla par Genma Kun

De plus, de nombreux amis de mon petit-fils le Fox étaient présents pour se relayer et tenir le stand de Mozilla.

En parallèle, un atelier Webmaker était proposé. Webmaker est une plateforme d’outils pour apprendre le Web facilement, proposée par la fondation Mozilla. Les ateliers étaient sur « HTML (et un peu de CSS) » – des langages pour écrire des pages web comme me le rappelle souvent le Fox – et la « protection de la vie privée en ligne » qui est particulièrement d’actualité.

Radio à l'Ubuntu Party Paris 2015

Enfin, il va falloir attendre un an pour la prochaine édition et il me tarde d’y retourner.

VIP

VIP signifie la Very Important Party. Cet événement s’est déroulé en même temps que la Ubuntu Party (dont je viens de vous parler). Comme je suis une super mamie, j’ai accompagné mon petit-fils le Fox à ce second événement du week-end et je ne le regrette pas.

VIP 2015

J’ai découvert un autre univers où la technique est de rigueur et les ordinateurs des 1980-1990 sont les rois. Il s’agit des ordinateurs appelés Atari, Amiga, Oric et Amstrad (la préhistoire de l’ordinateur personnel). Mais ces participants de l’époque sont aussi des utilisateurs du Web d’aujourd’hui en contribuant à la sauvegarde numérique et le portage des jeux de l’époque en HTML5/JS/CSS (des technologies que mon petit-fils le Fox adore).

Sablés Firefox à la VIP 2015 Sablés à la VIP 2015

Il y a eu un concours auquel je n’ai pas participé, mais pour lequel j’aurais pu être juge-arbitre pour choisir les meilleurs cookies tellement je suis une experte en ce domaine.

Le classement fut secondaire, mais le résultat ne trompe pas. Face à des réalisations toutes différentes, les visiteurs ont apprécié ce concours comme vous le pouvez voir :

Bacs à sablés vides à la VIP 2015

Par ailleurs, hellosct1 (pour ne pas le citer), un des amis de mon petit-fils le Fox, a donné une conférence très technique sur le format vectoriel et plus précisément le SVG dans le HTML5, qui correspond à du graphique vectoriel adaptable pour le Web. C’est un peu compliqué pour moi, mais vous pourrez m’expliquer si ce diaporama vous parle :

Le Full vectoriel par Christophe Villeneuve

De nombreuses réalisations ont été présentées dans les différents concours avec des prouesses assez impressionnantes : Productions VIP 2015.

L’événement était fait pour un public averti et qui s’intéresse à l’animation en général, le jeux et la bidouille. Cela dit, chaque soir un concert était programmé par les organisateurs en utilisant le matériel de l’époque, dont la prouesse des artistes démontre un réel niveau de qualité. Enfin, j’ai bien aimé ces passionnés qui s’affrontent à coup de ligne de codes pour permettre d’avoir un Web puissant.

Comme vous le voyez, mon petit-fils le Fox m’a emmenée dans 3 événements complètement différents et je suis ravie d’avoir pu être là.

Mais, je sais que l’aventure ne s’arrêtera pas là. Il m’a déjà parlé de prochains événements…


Mamie Fox


@hellosct1 et Christophe


Crédits illustrations : Affiches 2 et 3 Geekopolis. Tous droits réservés.

Photos 1, 3, 4, 5 et 6 Geekopolis 2015 par Christophe Perrot sous licence CC By-NC-SA 2.0.

Photos 7 et 8 Geekopolis 2015 de Lionel Allorge de l’April sous triple licence : GFDL version 1.3 ou ultérieure, Creative Commons By-SA version 2.0 ou ultérieure, Licence Art Libre version 1.3 ou ultérieure.

Photo 9 Ubuntu Party 2015 Benjamin Seclier. Tous droits réservés.

Photo 10 de la radio à l’Ubuntu Party Les voyageurs du code sous licence CC By-SA.

Photos 11 à 14 de la VIP de Christophe Villeneuve. Tous droits réservés.

Lire la suite »

Fermeture prochaine du site

News Xulfr

Comme on l'a évoqué dans le billet précédent, XUL n'est plus une technologie d'avenir chez Mozilla, même si il va continuer d'être utilisé pendant encore un bon bout de temps dans Firefox et Thunderbird.

Mais surtout, je n'ai plus le temps ni l'envie de maintenir les outils de ce site, de modérer les forums, ni de le faire évoluer. Le contenu de la partie wiki est complétement obsolète, la dernière news date d'il y a deux ans etc...

Il est temps de terminer l'histoire de xulfr.org et de fermer ce site définitivement, après presque 12 années d'existence. La fermeture sera effective d'ici quelques jours.

Pour avoir de la documentation sur XUL, pour développer des extensions ou utiliser XulRunner, allez sur https://developer.mozilla.org/fr/docs/XULRunner. Pour avoir du support professionnel sur la création ou la maintenance d'extensions pour Firefox/Thunderbird ou d'applications XUL, vous pouvez contacter la société Innophi.

Lire la suite »

Mamie Fox va aux RMLL à Beauvais du 4 au 10 juillet

Firefox OS

RMLL 2010 : stand Firefox (DR)Bonjour,

Je vous avais déjà dit que mon petit-fils le Fox n’arrêtait jamais et, avant la trêve estivale, il m’emmène aux Rencontres mondiales du logiciel libre (RMLL).

Pour cette 16e édition, l’événement se déroulera dans la ville de Beauvais (Oise) du 4 au 10 juillet 2015. C’est en effet un événement qui change de lieu chaque année et se balade dans toute la France (et même un peu plus loin).

Il propose un cycle de conférences, d’ateliers et de tables rondes autour du Libre – mon petit-fils m’a dit de mettre une majuscule comme quand on parle de la Justice personnifiée – et de ses usages.

Mon petits-fils m’a expliqué qu’une chaude ambiance conviviale était de mise et que le « non commercial » est le seul mot d’ordre.

RMLL Beauvais 2015 – Destination libre

Le déroulement de cette semaine, se compose en 2 parties :

Tout d’abord, les 2 premiers jours (samedi et dimanche), appelés « Grand public », se dérouleront dans le centre de la ville de Beauvais, et se composeront de nombreuses animations et d’ateliers. Je sais qu’un village associatif sera présent et dont le but est de faire la promotion du Libre en général : logiciel, internet, culture, etc. Ainsi, je serai présente avec les amis de mon petit-fils le Fox pour répondre à toutes vos interrogations sur les différents produits de la fondation Mozilla et de Firefox OS sur le stand de Mozilla.

Stand Mozilla aux RMLL 2014

Les jours suivant (6 au 10) seront un peu différents car les ateliers laisseront la place aux conférences du lundi au vendredi avec 10 salles en parallèles.

Parmi toutes les conférences, je ne louperai pas ces deux-là  :

Par ailleurs, notre ami mozillien Christophe en profitera pour parler d’autres sujets qu’il adore :

Je n’ai pas compté le nombre de sujets proposés, mais heureusement que le programme des RMLL 2015 disponible sur le site de l’événement offre la possibilité de filtrer les thèmes et les jours.

Tente Mozilla aux RMLL 2014

Mozilla sera aussi présent dans ce second volet du village associatif près de l’entrée principale. Nous y repondrons là aussi à toutes vos questions et nous vous y ferons des démonstrations.

Stand OSM, Mozilla, April aux RMLL 2012

Je compte bien vous voir à Beauvais – proche de chez vous, amis parisiens – parmi les nombreux visiteurs et les nombreux stands.

Carte des RMLL 2015 à Beauvais

Mamie Fox


@hellosct1


Crédit illustrations : Photo n° 1 RMLL 2010 à Bordeaux. Tous droits réservés.

Logo n° 2 RMLL 2015 Oisux. Les éléments graphiques ont été réalisés par Antoine Bardelli et Samuel Vermeulen. Tous droits réservés.

Photo n° 3 et 4 RMLL 2014 à Montpellier, Antoine Turmel. Tous droits réservés.

Photo n° 5 RMLL 2012 à Genève, OpenStreetMap France. Tous droits réservés.

Carte OpenStreetMap.

Lire la suite »

Un prof qui aime Firefox OS et s’engage

Firefox OS

Nous avons déniché pour vous le retour d’un utilisateur de Firefox OS, qui nous a paru suffisamment intéressant pour vous le traduire de l’anglais et le partager avec vous (avec son aimable autorisation).

Voici donc le retour d’expérience de Jeff Elkner, professeur d’informatique à l‘Arlington Public School de Virginie.

Début du « Summer of Code » du développement d’applications Firefox OS

Téléphone Firefox OS dans le simulateurJ’aime mon téléphone Firefox OS !

Bien que je sois professeur d’informatique, je suis rarement l’un de premier à adopter les dernières tendances technologique, et ce pour plusieurs raisons :

  • Je ne suis pas quelqu’un qui aime les gadgets et je ne suis pas intéressé par la technologie pour l’amour de la technologie.
  • Je suis dégoûté par le consumérisme et complètement allergique aux technologies qui me considèrent comme un consommateur plutôt que comme un être humain.
  • Dès le début, mon intérêt pour la technologie a pris naissance dans le rôle qu’elle peut jouer dans la justice sociale, en élargissant l’accès à l’information et à la communication, et en élargissant les possibilités de démocratie participative. Je ne vais donc pas adopter de nouvelles technologies qui ne sont que des articles de consommation. Je suis parfaitement prêt à attendre pour des versions qui émergent dans « le monde de la liberté » auquel j’appartiens.

J’ai eu un téléphone mobile pendant une courte période il y a quelques années, mais je ne l’aimais pas et la facture du premier mois a été tellement élevée que je m’en suis débarrassé et je n’en ai pas eu depuis.

J’ai maintenant un téléphone qui tourne sous Firefox OS, et c’est un téléphone qui répond à ce que j’attends d’un téléphone :

  • Il est simple et facile à utiliser.
  • Il me permet de faire les choses importantes pour moi : passer des appels, envoyer des SMS, consulter mon agenda, rechercher des contacts, écouter de la musique et la radio FM, prendre des photos, savoir où je suis et obtenir des itinéraires, tout cela avec une interface claire et attractive, qui est un plaisir à utiliser.
  • Il me permet d’accéder à son système de fichiers depuis mon ordinateur sous Ubuntu [note de traduction : Ubuntu est un système d’exploitation de type GNU/Linux] grâce à une connexion USB, me simplifiant l’ajout ou la suppression de musiques ou d’autres fichiers.
  • Il me traite comme un être humain et non comme un consommateur – il m’offre des outils utiles et des ressources sans tenter constamment de me vendre des trucs.

J’aime tellement mon téléphone Firefox OS que j’ai demandé à l’un de mes meilleurs et des plus brillants élèves, Alex Hirschberg, de participer à un type de stage « Summer of Code » local pour écrire des applications Firefox OS de maintenant à août.

La première application qu’il va développer, nous l’appelons LibriFox. C’est un lecteur de livres audio de type Librivox. Comme je n’ai pas de voiture et que je prends le bus, marche ou parfois prends mon vélo pour aller au travail, j’aime écouter des livres audio pendant le trajet.

Cette application va me procurer des heures et des heures de plaisir et me proposer la lecture de certains grands classiques de la littérature disponibles sur le site de LibriVox.

Je veux expérimenter, pendant le stage d’Alex, les processus de « programmation extrême » pour gérer objectifs et maintenir la qualité du code. Nous allons spécifiquement mettre l’accent sur des témoignages d’utilisateurs, la planification d’itérations, les tests unitaires et le « refactoring ». Alex a déjà été formé dans ses deux derniers modules par son mentor en programmation. Cet été va lui apporter une expérience de travail avec un client sur ​​place (moi).

Alex postera son code sur son dépôt GitHub. Dès qu’il l’aura mis en place pour moi, je commencerai à utiliser le système de suivi de problèmes pour les retours utilisateur.

Comme nous prévoyons un processus de six semaines avec des itérations hebdomadaires, j’ai l’intention de faire un nouveau billet après chaque réunion d’itération pour documenter notre façon de travailler.

Capture et texte de Jeff Elkner. Tous droits réservés.


L’utilisation de Firefox OS vous a donné des envies ? Partagez-les avec nous !


Aldéric
Lire la suite »

Firefox OS 2.5 et toutes les joyeusetés annoncées à Whistler

Firefox OS

Des Mozilliens (employés de Mozilla et bénévoles) sont réunis pour un ensemble de semaines de travail à Whistler au Canada. À cette occasion, Mozilla a présenté Firefox OS 2.5 – un nouveau numéro qui n’est pas présent dans les versions actuellement en développement (2.1, 2.2 et 3.0) – et les nouveautés que la fondation compte lancer pour concrétiser la nouvelle stratégie annoncée fin mai. Firefox OS Central a rapporté ces nouvelles et nous vous les avons traduites.

Mozilla compte inclure plus d’applications par défaut et donner plus de libertés aux développeurs et aux bidouilleurs, tout en s’appuyant sur des processus communautaires.


Firefox OS 2.5 et toutes les nouvelles de Whistler

Nous vous rapportons toutes les nouvelles en direct de la conférence Mozilla sur Twitter et lors de cette réunion le sujet principal sur la table ou en discussion a été Firefox OS. Voici tout ce que vous devez savoir sur le futur des téléphones et des téléviseurs sous Firefox OS. Alors que les plateformes tendent à devenir des écosystèmes des plus en plus sévèrement fermés, Firefox OS s’efforce de tenir contre cette tendance en apportant le Web ouvert au mobile.

Firefox OS 2.5 à Whistler

Tout ce qui a été dévoilé aujourd’hui s’inspire du projet Ignite et des outils Spark. Spark est un ensemble d’outils, de personnalisations et de fonctionnalités intégrées au-dessus de la prochaine génération de la plateforme Firefox OS et est un sous-ensemble de l’initiative Ignite. Spark est destiné à donner aux utilisateurs le pouvoir de personnaliser leur expérience, modifier tout ce qu’ils veulent et faire de leurs appareils vraiment le leur. Le but est que nous tirions parti des technologies web pour des modifications en temps réel, tandis que les autres plateformes reposent sur des binaires natifs qui sont difficiles à modifier une fois compilés. Partager des applications web et des bidouilles est également plus facile car elles sont plus portables et basées sur les standards.

Et voici Firefox OS 2.5

Eh bien, laissez-moi aller droit au but : le plus grand changement dans Firefox OS est la désormais personnalisation extrême. Si vous n’aimez pas un thème ou une fonctionnalité d’application, modifiez-en le CSS ou le HTML et partagez celui-ci dans le cloud avec vos amis. En fait, Firefox OS suit le Web dans ce domaine en vous permettant d’afficher le code source des applications, de modifier le code et de partager ces modifications. C’est une idée géniale. Donc, voici les nouvelles fonctionnalités de Firefox OS 2.5 :

  • Prise en charge des modules complémentaires. L’injection de JS et de CSS dans n’importe quelle application est possible. Un gestionnaire de modules complémentaires est inclus dans l’application de paramètres.
  • « Customizer » (« personnalisateur »), un outil qui peut être appelé dans toute application en utilisant un geste de deux doigts ou l’application lanceur, de la même façon que les outils de développement sur ordinateur, mais avec de meilleures commandes pour le mobile. Cela peut être utilisé pour en apprendre davantage sur les applications, les modifier et enregistrer vos modifications afin que l’application deviennent désormais tout ce que vous voulez.
    • Le Customizer peut être utilisé pour créer une application toute entière à partir de zéro, si vous le désirez.
    • Il est livré avec des modèles (templates) sur lesquels vous pouvez commencer votre travail et des widgets que vous pouvez embarquer dans vos applications.
  • « Hackerplace », un marketplace pour des applications et modules complémentaires plus expérimentaux qui n’ont pas encore été approuvés pour le Marketplace. Il se concentre sur des bidouillages cool que les membres de la communauté ont produit et sur des applications remplaçables.
  • « P2P Sharing » (partage en P2P), une application pour découvrir rapidement des personnes à proximité et partager des applications, des modules complémentaires et des thèmes avec eux via Wi-Fi et WiFi Direct[1].
  • « Theme Editor » (éditeur de thèmes), une application pour gérer les thèmes de votre appareil, par exemple en modifiant le texte, le fond et les couleurs des composants dans tout l’appareil.
  • « Bugzilla Lite », une version allégée de Bugzilla inclus dans le système. Il sera utilisé pour rapporter les bogues des produits du Fox et obtenir des nouvelles de leurs messages.
  • « Achievements » (réalisations), un système pour récompenser les utilisateurs qui ont accompli des tâches de développeurs et expérimenter.
  • « BuddyUp » (compagnon), un service pour poser des questions et obtenir des réponses de membres de la communauté. Vous pouvez également être de l’autre côté et répondre aux questions des utilisateurs.
  • « Webmaker », une application qui facilite la création de choses sur le Web, à savoir faire vos propres pages web, vidéos interactives, remix, applications mobiles et de plus – apprendre sur le tas les mécaniques du Web, le code et d’autres compétences précieuses.
  • Toutes les applications système telles que les applications numéroteur, messages, contacts, etc. sont remplaçables.
  • Toutes les permissions sont déverrouillées avec le mode développeur activé.
  • Les applications de productivité comme les notes, une calculatrice et l’agenda[2].
  • Des améliorations de WebIDE[3], avec la possibilité de déboguer en Wi-Fi, de créer et de modifier des modules complémentaires.
  • Des mises à jour automatiques OTA (over-the-air)[4] directement livrées par Mozilla.
  • Des reconnaissances pour les réalisations, comme la création de votre première personnalisation, sa publication sur Hackerplace, etc.
  • Des applications de réseaux sociaux incluses d’origine dont Twitter, Facebook, Yammer et d’autres à venir.
  • Un client IRC[5] intégré.
  • Marque activée par défaut.
  • Un nouveau thème et un nouveau papier-peint cool par défaut.

Les téléviseurs Firefox OS

Firefox OS 2.5 pour téléviseurs à Whistler

Eh bien, nous ne pouvons pas faire sans les téléviseurs intelligents donc il y avait un petit quelque chose à ce sujet.

Firefox pour Android envoie du contenu à un téléviseur propulsé par Firefox OS. En direct sur scène, ce qui était assez impressionnant, on peut épingler un site web sur votre téléviseur, à partir de votre smartphone avec le navigateur Firefox ou sous Firefox OS. Mozilla a également parlé d’apporter l’ouverture dans tous les appareils en collaboration avec Firefox OS.

Eh bien, Webmaker dans Android a également été lancé et a l’air très bon, vous pouvez le télécharger ici. Eh bien, les applications Android n’ont pas été mentionnées. Restez avec nous pour toutes les nouvelles de Firefox OS.

Photos et texte de Firefox OS Central. Tous droits réservés.

Notes du traducteur

[1] Le Wi-Fi Direct est une technologie qui permet de connecter deux appareils en Wi-Fi, sans passer par un point d’accès. Il est ensuite possible d’échanger des fichiers à une vitesse bien supérieure qu’avec le Bluetooth. in Tutoriel : le Wi-Fi Direct, comment ça marche ?

[2] Les applications existantes seront mises à jour et elles pourront toutes être personnalisées, nous a précisé Firefox OS Central.

[3] WebIDE - Outils de développementMDN

[4] Technologie permettant de distribuer et d’installer de nouvelles versions du firmware dans un appareil. in Over-the-air programming – Wikipédia

[5] Internet Relay Chat – Wikipédia ; Voir notre article sur l’appli Firesea IRC.


@Mozinet
Lire la suite »

Gérez tous vos fichiers sur Firefox OS

Firefox OS

Mes Fichiers : exemple de fichiersFirefox OS propose des applications pour gérer certains types de fichiers spécifiques comme les images, les fichiers audio ou les fichiers vidéos pris en charge, mais ne dispose pas d’origine d’un gestionnaire de fichiers générique. C’est là que Mes Fichiers intervient. Cette application permet d’explorer et de gérer les fichiers sur vos cartes SD interne et externe.

Présentation

Icône de Mes Fichiers (File Manager)Il est existe de nombreuses applications pour explorer vos fichiers sur Firefox OS car l’accès au contenu de votre espace de sauvegarde est très utile. Une des fonctions de ce type d’applications est de vous faciliter la lecture de vos fichiers audio, vidéo, texte ou d’images pour éviter de lancer l’application par défaut.

Nous avons retenu l’application Mes Fichiers qui est actuellement la plus avancée des applications disponibles sur le Marketplace. Elle apparaît sous le nom de « Gestionnaire de fichiers » en français.

Mes Fichiers : accueil

La prise en main est assez intuitives et l’interface dispose d’icônes bien distinctes.

Les formats

Les fichiers médias

Mes Fichiers : fichiers médias Mes Fichiers : fichiers images

Les fichiers médias correspondent aux fichiers images, audios et vidéos. L’ensemble des formats disponibles est compatible avec l’internet d’aujourd’hui. C’est à dire que vous pouvez lire :

  • Les fichiers images au format JPG, PNG, GIF, SVG
  • Les fichiers audio au format MP3, Ogg, WAV
  • Les fichiers vidéo au format MPEG, WebM, MKV, OGV, AVI

Les fichiers bureautiques

Mes Fichiers : fichiers bureautiques

Les fichiers bureautiques correspondent aux différents documents exploités par un traitement de texte, un tableur, une application de présentation…

Par ailleurs, les documents au format PDF sont reconnus à partir de la version 1.4 de Firefox OS (donc pas dans le Firefox OS inclus lors de la vente du ZTE Open C).

Les fichiers texte au format .txt, .rtf ainsi que les fichiers de langages informatiques comme PHP, Python, C… sont aussi pris en charge.

L’affichage

La lecture des fichiers

Pour visualiser le ou les documents, vous devez appuyer sur l’élément de votre choix pour voir un menu s’afficher.

Mes Fichiers : menu (fichier musical)

Ce menu propose de nombreux liens :

Le premier « Ouvrir » laisse Firefox OS choisir la bonne application pour lire votre fichier, alors que le second « Ouvrir comme » vous permet de le faire passer pour un autre type de fichiers (texte, image, audio ou vidéo) et ainsi de le faire ouvrir par l’application associée à ce type, sans dépendre de l’extension du fichier.

Mes Fichiers : menu ouvrir comme

Ensuite, il est possible de manipuler les fichiers :

  • Copier
  • Déplacer
  • Renommer
  • Effacer

Il s’agit des mêmes fonctionnalités que vous utilisez tous les jours sur votre ordinateur.

Enfin, les informations liées à votre fichier sont disponibles grâce au lien « Détails ».

Mes Fichiers : Détails d'un fichier

Les informations que nous obtenons concernent la taille, la date et l’heure de la dernière modification, son type et son emplacement.

Cependant quand il s’agit d’une image ou d’une photo, l’écran laisse apparaître une ligne supplémentaire « Définir comme fond d’écran ». Cette fonctionnalité permet de placer l’image que vous avez sélectionné en fond d’écran et sera représenté de la manière suivante.

Mes Fichiers : menu des images Mes Fichiers : fond d'écran changé

Le partage

Lorsque vous possédez un document ou un fichier, vous pouvez vouloir le partager avec une autre personne. Pour cela, sélectionnez le fichier et appuyez sur « Partager ».

Mes Fichiers : menu Partager avec

Les options de partage dépendent des applications installées sur votre Firefox OS :

  • Le Bluetooth
  • L’email
  • Les SMS/MMS
  • Les réseaux sociaux
  • Les messageries instantanées
  • etc.

Ainsi, Macaw, un client Twitter, et CloudActivity, un client Dropbox, que nous vous avions présentés cette année, s’ajoutent à cette liste.

Les répertoires

Pour classer vos différents fichiers, il est possible de créer, de renommer ou de supprimer un répertoire.

Dans le dossier de votre choix, ouvrez le menu (icône de menu aux 3 barres horizontales) en haut à droite de l’écran. Pour créer un dossier, appuyez sur « Nouveau répertoire » et dans l’écran suivant donnez lui un nom.

Mes Fichiers : menu principal dans les dossiers Mes Fichiers : renommer un répertoire

Pour modifier ou supprimer un dossier, laissez votre doigt sur celui-ci quelques instants pour ouvrir un nouveau menu.

Mes Fichiers : menu pour un fichier

Les fichiers

Pour la création d’un fichier texte, il faut se reporter au paragraphe précédent car nous utilisons le même menu mais en sélectionnant « Nouveau fichier ».

Mes Fichiers : nommer un fichier Mes Fichiers : nouveau fichier texte

Lorsque le nom du fichier est choisi, vous obtenez un éditeur de texte basique avec la seule possibilité de zoomer et de dézoomer sur l’écriture.

Après la sauvegarde, la gestion de celui-ci reste identique à ce que nous avons expliqué un peu plus haut.

La sauvegarde

Il y a différentes manières d’ajouter et de stocker les fichiers dans votre téléphone. Vous pouvez effectuer :

  • Le téléchargement d’un fichier ou d’une pièce jointe à un email ;
  • Le transfert d’un fichier via votre cable USB, le Bluetooth, le Wi-Fi…
  • La création d’un fichier texte.

Enfin

Comme vous avez pu le voir, pour toute action un peu évoluée – en gros tout ce qui dépasse lire un fichier musicale ou une vidéo et afficher une image – un gestionnaire de fichiers est vraiment utile, en particulier si vous manipulez beaucoup de fichiers.

Par ailleurs, il existe de nombreuses autres applications du même genre, mais celle que nous avons choisie a toute les fonctions voulues et met un lien vers son code source sur GitHub dans sa page du Marketplace.

Nous aurions pu choisir Fichiers qui est basé sur Mes Fichiers. Il a des icônes différentes. Si vous connaissez d’autres différences, merci de nous les indiquer en commentaire.


@hellosct1, surtout, et @Mozinet, un peu
Lire la suite »

Mozilla sera au Jardin entropique de Rennes du 26 au 28 juin

Firefox OS

Jardin numérique 2012Le Jardin entropique est un événement de rencontres sur le numérique et la liberté. Il se déroulera au Jardin moderne de Rennes (en Bretagne) du 26 au 28 juin 2015.

Il s’appelait auparavant Jardin numérique.

Jardin numérique #2 – Atelier Arduino

Ce rendez-vous accueillera des ateliers, un espace partenaires et des conférences réparties en quatre thématiques :

  • L’internet peut-il contribuer à renforcer la diversité des identités ?
  • Le numérique peut-il favoriser la ré-appropriation de son environnement par les citoyens ?
  • Comment favoriser l’appropriation de l’informatique libre, pour un contrôle accru de chacun sur son quotidien en ligne ?
  • Dans un contexte qui ne favorise pas la liberté d’expression, comment pérenniser les outils d’une communication véritablement libre ?

… et même des concerts.

Jardin numérique #3 2012

Vous pouvez consulter le programme détaillé des conférences et celui des ateliers directement sur le site officiel.

Mais surtout, il ne faut pas louper l’atelier suivant :

« Firefox OS et les builds communautaires », animé par dattaz, contributeur Mozilla francophone et Firefox OS très actif.

Par ailleurs, des conférences éclairs sont prévues dont le déroulement sera juste dévoilé le jour J et sur place. Ce sera l’occasion d’en apprendre un peu plus sur les builds communautaires dont nous pouvons juste vous dire qu’ils seront le sujet d’une des ces conférences de 5 à 7 minutes.

Jardin numérique 2014

Enfin, la communauté Mozilla sera présente sur un stand durant tout l’événement. Les membres présents vous attendront tous, répondront à toutes vos questions et vous montreront différentes activités de la communauté.

En prime, nous vous proposons un petit reportage de 3 minutes sur l’édition 2014 :

Vidéo disponible sur Vimeo où d’autres vidéos sont visibles.

La communauté Mozilla francophone n’est pas qu’à Paris et vous attend ce week-end à Rennes !

Jardin numérique 2012


@hellosct1

Crédit photos : n° 1 Mitch Altman chez Ludovic Fougère sur Flickr sous licence CC By-SA 2.0

n° 2 Atelier Arduino par Imagination For People

n° 3 Jardin numérique 2012

n° 4 Jardin numérique 2014 – L’Imprimerie Nocturne

n° 5 Mitch Altman Jardin numérique 2012 sur Flickr sous licence CC By-SA 2.0

Lire la suite »

Tirer profit du nouveau mode lecture de Firefox

BlogZiNet

La polémique sur l’intégration du service centralisé Pocket dans Firefox (pas pour le français, mais vous pouvez l’activer si vous le voulez vraiment) a quelque peu éclipsé l’arrivée du mode lecture dans cette même version 38.0.5 intermédiaire de Firefox pour ordinateur (il était depuis longtemps dans Firefox pour Android aux côtés d’une liste de lecture intégrée). Le mode lecture est basé sur Readability qui était disponible en extension ou en bookmarklet jusqu’ici. Ce type de fonctionnalités vise à rendre les articles plus lisibles en les mettant en forme dans un style de police lisible uniforme tout en déshabillant l’article de tout le reste qui gêne la lecture (menus, pub, boutons de réseaux sociaux, etc.).

Mode lecture dans Firefox 38.0.5 (sépia)

Quand le mode lecture de Firefox détecte un contenu à reformater, il affiche une petite icône en forme de livre en fin de barre d’adresse. Un clic déclenche la fonctionnalité. Quand les pages ne contiennent pas un article unique à présenter dans le mode lecture, l’icône n’est pas présente dans le barre d’adresse. Ça c’est la théorie. En pratique, la fonctionnalité telle qu’implémentée dans Firefox 38.0.5 n’affiche pas l’icône pour beaucoup de pages pour lesquelles un déclenchement manuelle du mode lecture donne pourtant le résultat attendu. En effet, il suffit d’ajouter dans la barre d’adresse avant l’URL « about:reader?url= » pour déclencher le mode lecture.

Ceci dit, nous pouvons exploiter la fonctionnalité de mots-clés des marque-pages pour avoir une interface pour déclencher au clavier le mode de lecture quand on croit que la fonction marchera indépendamment de la détection de Firefox. Avant de créer un marque-page spécial, il faut faire afficher l’URL en entier dans la barre d’adresse.

  1. Saisissez « about:config » dans la barre d’adresse.
  2. Promettez de faire attention.
  3. Saisissez « browser.urlbar.trimURLs » dans la barre de recherche.
  4. Double-cliquez sur la préférence pour faire passer sa valeur à false.
about:config browser.urlbar.trimURLs false

Pour crée votre marque-page spécial mode lecture :

  1. Ouvrez le gestionnaire de marque-pages (Maj+Ctrl+B).
  2. Cliquez-droit à l’endroit où vous voulez créer votre marque-page.
  3. Cliquez sur « Nouveau marque-page… » dans le menu contextuel qui surgit.
    Bibliothèque nouveau marque-page
  4. Dans la boîte de dialogue, saisissez par exemple « ml Mode lecture » dans le champ nom.
  5. « about:reader?url=%s » dans le champ adresse.
  6. « ml » dans le champ mot-clé.
  7. Cliquez sur Ajouter.
Nouveau marque-page

Ce mot-clé sera à saisir avant l’URL de la page à passer en mode lecture suivie d’une espace.

Allons maintenant sur une page au hasard. Tiens sur 01net. Il y a bien un article, mais pas d’icône du mode lecture. Placez le focus dans la barre d’adresse (Ctrl+L). Placez le curseur avant l’adresse (). Saisissez « ml » et une espace. Appuyez sur Entrée ↵.

Mot-clé avant l'URL pour mode lecture

Tada !

Mode lecture pour 01net

SI vous avez un meilleur moyen, faites-le moi savoir en commentaire :-)

© 2010-2014 Mozinet - Ce billet a été publié sur BlogZiNet.

Lire la suite »

ES6 en détails : les symboles

Blog technique de MozFR

Suite de la traduction, qui continue la série d’articles de Jason Orendorff. L’article original se trouve ici. Vous pouvez retrouver les différents articles de la série grâce aux mots-clefs.

Merci à Marine, Mentalo, Banban, Thegennok et goofy pour la traduction et la relecture !


ES6 en détails est une série d’articles décrivant les nouvelles fonctionnalités ajoutées au langage de programmation JavaScript avec la sixième édition du standard ECMAScript (ES6 en abrégé).

Que sont les symboles ES6 ?

Les symboles ne sont pas des logos. Ce ne sont pas de petits dessins que vous utilisez dans votre code.

let  =   ♪ × ♫;  // SyntaxError

Il ne s’agit pas non plus d’un procédé littéraire utilisé pour représenter quelque chose d’autre.

Malgré une légère consonance, les symboles ne sont pas non plus des cymbales.

Alors que sont les symboles ?

Rencontre du septième type

Depuis la première standardisation de JavaScript en 1997, il y a toujours eu six types de variables. Jusqu’à ES6, chaque valeur d’un programme écrit en JS rentrait dans l’une de ces catégories :

  • Undefined
  • Null
  • Boolean
  • Number
  • String
  • Object

Chaque type contient un ensemble de valeurs. Les cinq premiers ensembles sont finis. Il y a, bien sûr, seulement deux valeurs booléennes, true et false, on ne va pas en inventer d’autres. Il y a bien plus de valeurs de type Number et String. D’après le standard, il est possible de représenter 18 437 736 874 454 810 627 nombres différents (en incluant NaN, le nombre qui a pour nom « Not a Number », « Pas un Nombre » en français). Ce n’est rien comparé au nombre de chaînes de caractères (String) possible, qui vaut d’après moi (2144,115,188,075,855,872 − 1) ÷ 65,535… mais j’ai peut-être mal compté.

L’ensemble des valeurs pour les objets (type Object) est infini. Chaque objet est unique, un peu comme un flocon de neige. Chaque fois que vous ouvrez une page web, de nombreux objets sont créés.

Les symboles ES6 sont des valeurs, mais ce ne sont pas des chaînes de caractères (String). Ce ne sont pas des objets. C’est une nouveauté : un septième type de valeurs.

Nous allons prendre un exemple pour les étudier.

Un simple petit booléen

Parfois, on aimerait tout simplement pouvoir stocker des données additionnelles dans un objet JavaScript appartenant à quelqu’un d’autre.

Par exemple, supposons que vous écriviez une bibliothèque JS qui utilise les transitions CSS pour déplacer des éléments DOM sur l’écran. Vous avez sans doute remarqué qu’appliquer plusieurs transitions CSS à un seul élément div ne fonctionne pas. C’est moche, ça « saute » sans arrêt. Vous pensez pouvoir arranger ça, mais d’abord vous devez trouver un moyen de savoir si un élément est déjà en mouvement.

Comment y arriver ?

Une solution serait d’utiliser une API CSS pour demander au navigateur si l’élément bouge. Mais cela paraît disproportionné. Votre bibliothèque devrait déjà savoir quel élément se déplace : c’est bien le code de la bibliothèque qui a mis l’élément en mouvement au début !

Ce que vous voulez vraiment, c’est garder une trace des éléments qui bougent. Vous pourriez définir un tableau contenant les éléments qui bougent. Chaque fois que votre bibliothèque anime un élément, vous pourriez alors vérifier si cet élément existe déjà dans le tableau.

Hmm… Cela entraînera donc une recherche linéaire, ce qui peut s’avérer lent si le tableau est long.

En fait, ce que vous voulez vraiment, c’est pouvoir associer un état à l’élément :

if (element.isMoving) {
  smoothAnimations(element);
}
element.isMoving = true;

Cela peut éventuellement poser plusieurs problèmes. Tous ces problèmes reposent sur le fait que votre code n’est pas le seul élément à utiliser le DOM.

  1. Un autre code utilisant for-in ou Objects.keys() pourra trébucher sur la propriété que vous avez créée.
  2. Un concepteur ingénieux travaillant sur la bibliothèque peut avoir déjà pensé à cette technique, ce qui pourra détériorer les interactions avec votre bibliothèque.
  3. Un autre concepteur pourra penser à cela plus tard, ce qui pourra détériorer les interactions avec votre bibliothèque plus tard.
  4. Le comité de standardisation pourrait décider d’ajouter une méthode .isMoving() à tous les éléments, et là vous seriez vraiment mal !

Évidemment, vous pouvez résoudre les trois derniers points en choisissant une chaîne tellement complexe et folle que personne d’autre ne pourra jamais nommer quoi que ce soit de la même façon :

if (element.__$jorendorff_animation_library$NON_PAS_TOUCHE_A_CETTE_PROPRIETE_BISOUS$isMoving__) {
  smoothAnimations(element);
}
element.__$jorendorff_animation_library$NON_PAS_TOUCHE_A_CETTE_PROPRIETE_BISOUS$isMoving__ = true;

Cette solution ne mérite même pas un coup d’œil.

Vous pourriez aussi générer un nom quasiment unique pour cette propriété grâce à la cryptographie :

// obtenir un gloubi-boulga de 1024 caractères Unicode
var isMoving = SecureRandom.generateName();
...
if (element[isMoving]) {
  smoothAnimations(element);
}
element[isMoving] = true;

La syntaxe objet[nom] permet littéralement d’utiliser n’importe quelle chaîne pour dénommer une propriété, ceci fonctionnera et les collisions seront virtuellement impossibles. De plus, votre code est lisible.

En revanche, bonne chance pour le débogage. Chaque fois que vous utiliserez console.log() avec cette propriété, vous obtiendrez une longue chaîne illisible. Et si vous avez besoin de plusieurs propriétés comme celle-ci ? Comment allez-vous les gérer ? Elles auront des noms différents à chaque fois que la page sera rechargée.

Pourquoi est-ce aussi compliqué ? On veut juste un petit booléen !

Tout un symbole

Les symboles sont des valeurs que les programmes peuvent créer et utiliser comme des clés de propriétés sans risquer de rentrer en collision avec les noms déjà utilisés.

var monSymbole = Symbol();

Appeler Symbol() crée un nouveau symbole, c’est-à-dire une valeur qui n’est égale à aucune autre valeur. Un symbole peut être utilisé pour être la clé d’une propriété, comme une chaîne ou un nombre. Étant donné qu’un symbole n’est égal à aucune chaîne, une propriété désignée par un symbole n’entrera pas en collision avec une autre propriété.

obj[monSymbole] = "ok !";       // garanti sans collision
console.log(obj[monSymbole]);   // ok !

Voici comment vous pouvez utiliser un symbole pour la situation dont nous avons discuté ci-avant :

// On crée un symbole unique
var isMoving = Symbol("isMoving");
...
if (element[isMoving]) {
  smoothAnimations(element);
}
element[isMoving] = true;

Quelques notes à propos de ce code :

  • La chaîne "isMoving" dans Symbol("isMoving") est appelée une description. C’est utile lors du débogage. Elle est visible quand on affiche le symbole sur la console via console.log(), quand on le convertit en chaîne avec .toString(), et sans doute aussi dans les messages d’erreurs. C’est tout.
  • element[isMoving] est une propriété dont la clé est un symbole. C’est seulement une propriété dont le nom est un symbole au lieu d’être une chaîne. À part ça, c’est une propriété tout à fait classique.
  • Comme pour les éléments d’un tableau, il est impossible d’accéder aux propriétés dont la clé est un symbole avec la syntaxe littérale utilisant le point (objet.nom). Il faut utiliser les crochets.
  • Il est extrêmement simple d’accéder à une propriété dont la clé est un symbole si vous connaissez le symbole. L’exemple ci-dessus montre comment créer element[isMoving] et y accéder. On pourrait aussi tester if(isMoving in element) voire supprimer element[isMoving] si nécessaire.
  • D’un autre côté, tout ceci n’est possible que si isMoving appartient à la portée. Ainsi les symboles permettent une encapsulation faible : un module qui crée quelques symboles pour lui-même peut les utiliser sur n’importe quel objet, sans craindre les collisions avec des propriétés créées par un autre code.

Les symboles ont été conçus pour éviter les collisions. Pour cette raison, les méthodes classiques pour explorer les objets ignorent les clés qui sont des symboles. La boucle for-in, par exemple, itérera uniquement sur les clés d’un objet qui sont des chaînes de caractères. Les clés qui sont des symboles seront ignorées. Il en va de même pour Object.keys(obj) et Object.getOwnPropertyNames(obj). Cependant, les symboles ne sont pas privés ou invisibles : la nouvelle API, Object.getOwnPropertySymbols(obj), liste les clés d’un objet qui sont des symboles. Une autre API, Reflect.ownKeys(obj), renvoie les clés qui sont des chaînes et des symboles (cette API sera l’objet d’un billet détaillé à venir).

Les différents frameworks et bibliothèques auront vraisemblablement de nombreux cas d’utilisations pour les symboles. Comme nous allons le voir par la suite, le langage lui-même tire parti des symboles pour différents scénarios.

Mais qu’est-ce qu’un symbole ?

> typeof Symbol()
"symbol"

Les symboles ne ressemblent à aucun autre type pré-existant.

Une fois qu’ils sont créés, ils sont immuables. Il est impossible de définir des propriétés sur eux (si vous essayez en mode strict, vous aurez une TypeError). Ils peuvent être utilisés comme noms pour des propriétés. En ce sens, ils ressemblent à des chaînes de caractères.

D’un autre côté, chaque symbole est unique et se distingue des autres symboles (y compris de ceux qui ont la même description) et on peut facilement en créer des nouveaux. En ce sens, ils ressemblent à des objets.

Les symboles ES6 sont semblables aux symboles traditionnels qu’on peut trouver dans les langages tels que Lisp et Ruby. Cependant, ils ne sont pas si profondément ancrés dans les langages. En Lisp, tous les identifiants sont des symboles. En JS, la plupart des identifiants et la plupart des clés restent des chaînes de caractères, les symboles ne sont qu’une option supplémentaire.

Attention, à la différence des symboles dans les autres langages, les symboles JS ne peuvent pas être convertis automatiquement en chaînes de caractères. Si vous essayez de concaténer un symbole et une chaîne de caractères, vous obtiendrez une exception TypeError.

> var sym = Symbol(">3");
> "votre symbole est " + sym
// TypeError: can't convert symbol to string
> `votre symbole est ${sym}`
// TypeError: can't convert symbol to string

Pour éviter cela, on peut convertir le symbole en une chaîne de façon explicite avec String(sym) ou sym.toString().

Trois ensembles de symboles

Il y a trois façons d’obtenir un symbole :

  • Appeler Symbol(). Comme nous l’avons vu avant, cette fonction renvoie un nouveau symbole à chaque fois qu’elle est appelée.
  • Appeler Symbol.for(string). Cela permet d’accéder à un ensemble de symboles existants, appelé registre des symboles. À la différence des symboles uniques définis avec Symbol(), les symboles appartenant au registre sont partagés. Si vous invoquez Symbole.for("chat") trente fois, vous obtiendrez toujours le même symbole à chaque fois. Le registre peut s’avérer utile quand plusieurs pages web, ou plusieurs modules au sein d’une même page web ont besoin de partager un symbole.
  • Utiliser les symboles « connus » définis par le standard tels que Symbol.iterator. Quelques symboles sont définis dans le standard ECMAScript, chacun possède une raison d’être précise.

Si vous avez encore des doutes sur l’utilité des symboles, la dernière catégorie est intéressante car elle illustre comment les symboles ont déjà pu être utilisés en pratique.

Comment ES6 utilise-t-il les symboles connus ?

On a déjà vu un cas utilisation des symboles par ES6 : éviter les collisions avec du code existant. Il y a quelques semaines, dans le billet sur les itérateurs, on a vu que la boucle for (var item of monTableau) démarre en appelant monTableau[Symbol.iterator](). J’ai mentionné que cette méthode aurait pu appeler monTableau.iterator() mais qu’il valait mieux utiliser un symbole pour respecter la rétrocompatibilité.

Maintenant que nous connaissons mieux les symboles, il est plus simple de comprendre pourquoi cela a été fait et ce que ça signifie.

Voici quelques exemples des autres endroits où ES6 utilise les symboles connus (ces fonctionnalités ne sont pas encore implémentées dans Firefox).

  • Rendre instanceof extensible. Avec ES6, l’expression objet instanceof constructeur est définie comme l’appel d’une méthode du constructeur : constructeur[Symbol.hasInstance](objet). Cela signifie qu’on peut étendre instanceof.
  • Éliminer les conflits entre les nouvelles fonctionnalités et du code ancien. On approche ici de la magie noire mais on a découvert que certaines méthodes ES6 pour les tableaux empêchaient certains sites de fonctionner simplement en étant là. D’autres standards du Web ont eu les mêmes problèmes : ajouter de nouvelles méthodes casse les sites existants. Cependant, cette casse est causée par ce qu’on appelle les portées dynamiques. Pour cette raison, ES6 a introduit un symbole spécial : Symbol.unscopables. Celui-ci peut être utilisé par les standard du Web pour éviter que certaines méthodes ne soient impactées par les portées dynamiques.
  • Supporter de nouvelles sortes de correspondances pour les chaînes de caractères. Avec ES5, str.match(monObjet) tentait de convertir monObjet en une RegExp. Avec ES6, le moteur vérifie d’abord si monObjet possède une méthode monObjet[Symbol.match](str). Cela signifie que les bibliothèques peuvent fournir des classes d’analyse de chaînes qui fonctionnent partout où on peut utiliser des objets RegExp.

Chacun de ces cas d’utilisation est relativement restreint et, pour mon code de tous les jours, ça peut être difficile de voir où cela aura un grand impact. Si on prend un peu de recul, c’est plus intéressant : les symboles « connus » de JavaScript peuvent être vus comme une version améliorée des doubles tirets (par exemple __variablePrivée) présents en PHP et Python. Le standard pourra les utiliser à l’avenir pour ajouter de nouveaux éléments au langage, sans risquer de collision avec votre code.

Quand puis-je commencer à utiliser les symboles ES6 ?

Les symboles sont implémentés dans Firefox 36 et Chrome 38. Je les ai moi-même implémentés dans Firefox personnellement, donc si vos symboles se comportent comme des cymbales, vous savez qui contacter.

Pour les navigateurs qui n’ont pas encore implémenté les symboles ES6, vous pouvez utiliser une prothèse telle que core.js. Étant donné que les symboles ne ressemblent pas entièrement à quelque chose d’existant en JS, cette prothèse ne sera pas parfaite. Lisez-bien les mises-en-garde.

La semaine prochaine nous publierons deux billets. D’abord, nous nous intéresserons à des fonctionnalités très attendues qui arrivent enfin en JavaScript avec ES6. Nous démarrerons avec deux fonctionnalités qui datent presque de l’aube de la programmation et nous enchaînerons avec deux autres fonctionnalités, très similaires, mais qui ont été améliorées pour les objets éphémères et les références faibles. Rejoignez-nous la semaine prochaine pour examiner les collections ES6 en détails.

Restez également dans les parages pour un billet supplémentaire de Gastòn Silva sur un sujet qui ne concerne aucune fonctionnalité ES6, mais qui pourrait bien vous fournir le petit coup de pouce nécessaire pour commencer à utiliser ES6 dans vos projets. À bientôt !

Lire la suite »