Table des matières

[haut de page]
Nouveautés de Smile 3.2
Bogues réparés dans la version 3.2
Comportements et bogues connus de la version 3.2
Satimage Précédent
Liste des nouveautés de Smile 3.2
Page d'accueil Support Liste des nouveautés de Smile 3.2  
Nouveautés de Smile 3.2

Smile 3.2 n'est utilisable que sous Tiger (Mac OS X 10.4.x) ou supérieur.

Smile 3.2 apporte de nombreuses améliorations et nouvelles fonctionnalités. Celles-ci sont présentées ci-dessous par numéro de version et par thèmes. La table des matières en haut à gauche de la page vous permettent d'accéder directement à une section thématique donnée.


Visualisation de données
  • L'interface pour régler les graphiques a été entièrement remaniée. Vous pouvez désormais définir des courbes et modifier leur apparence depuis la même interface.

    Le nouveau menu Fichier > Nouveau plot permet d'ouvrir cette interface. Elle est également accessible depuis le menu Réglage des vues des views.

  • Les réglages des graphiques permettent d'accéder à plus de réglages de couleurs (fond de la fenêtre, titre...).
  • Les barres d'erreur des courbes peuvent désormais être définies en utilisant les propriétés upper errorbar data et lower errorbar data des curves (errreurs inf et sup), au lieu d'utiliser la propriété errorbar data.
  • Les barres d'erreur des courbes sont désormais affichées même si il n'y a pas de pattern style.
  • La nouvelle palette de couleurs HueRamp correspond à une table de couleurs périodique. Cela peut être utile pour représenter des données périodiques.
  • Les views ont désormais une propriété legend margins qui remplace l'ancienne propriété legend frame. Veuillez consulter le dictionnaire de plot view et de planar view pour plus d'informations.
  • Vous pouvez désormais accéder directement aux propriété ncols et nrows des données contenues par des objets de SmileLab : par exemple, vous pouvez écrire get ncols of xdata of scalar map 1 of theView. Cela est plus rapide à exécuter que get ncols of (get xdata of scalar map 1 of theView).
Traitement de données
  • La nouvelle interface de SmileLab accessible depuis le menu Fichier > Nouveau Plot permet d'extraire des données de fichiers ou de générer des tableaux de valeurs, d'effectuer des traitements sur ces données et de les visualiser. Veuillez consulter l'aide de l'interface pour plus d'informations sur son fonctionnement.
  • XNF est un format de données permettant de stocker des tableaux 1D, 2D et 3D en binaire. La table des matière d'un fichier XNF est un XML dans lequel on peut effectuer des requêtes XPath. XNF 1.0 était défini dans Numerics.osax. XNF 2.0 est maintenant défini dans XMLLib.osax (les commandes ont changé).

    La documentation de XNF 2.0 est disponible ici.

  • La commande suppress item gère mieux les listes d'index en paramètre direct. Cette commande permet de supprimer des éléments d'une liste, d'un record ou d'un array of real.
  • La commande evalformula accepte désormais une liste plutôt qu'un record pour son paramètre with (cf le dictionnaire).
  • La commande evalformula peut désormais retourner une matrice au lieu d'un array of real (lorsque cela fait sens) : pour cela, utilisez le paramètre optionel as matrix.
  • Il est possible d'utiliser length of xdata of c (sans get) au lieu de count (get xdata of c) avec c une référence à une courbe. C'est plus rapide.
  • La propriété data d'un scalar map peut être mis à une matrix. Vous pouvez désormais définir cette propriété data avec un record {class:matrix, contained data:z, scale: {aorx,aory}} spécifiant les échelles (scale) avec des arrays of real.
  • La commande sortarray a été renommée sortlist (sortarray est devenu un synonyme de sortlist). La commande sortlist accepte désormais en argument des arrays of real, des listes de nombres, des listes de textes, mais aussi des listes de dates. Elle permet de trier un ensemble de listes relativement à l'une d'entre elle, en utilisant le paramètre with respect to. Elle possède également un nouveau paramètre booléen remove duplicates permettant d'éliminer les doublons d'une liste à trier.
  • La commande sortlist possède désormais un paramètre optionnel remove duplicates. Si ce paramètre est mis à true, les valeurs en double sont retirées du résultat renvoyé. Il est désormais possible d'utiliser sortlist sur des listes de textes.
  • Deux nouvelle commandes concernant les fonctions rationnelles sont apparus dans Satimage.osax : pade approximant et fitrational.
  • La commande statlist possède désormais un paramètre optionnel kurtosis. Si ce paramètre est mis à true, statlist calculera également les coefficients de skewness et de kurtosis, ainsi que la valeur médiane.
  • Les commandes read binary et write binary gèrent les accès fichiers 64 bits.
  • Il est possible de modifier la taille maximum de la mémoire allouée par Smile dans l'onglet réglages avancés des préférences de Smile.
Bibliothèque de dessin
  • La palette de dessin a été supprimée du menu Fenêtre et a été remplacée par un nouveau dictionnaire intitulé Bibliothèque de dessin situé dans le menu Ouvrir un dictionnaire. Ce dictionnaire comporte plus d'explications, des images et des exemples.
  • Les graphic windows se mettent désormais à jour lorsqu'on déplace leurs ascenseurs. Ce comportement peut être désactivé en réglant la propriété update screen des graphic windows à false.
  • La nouvelle commande ClipToImage permet de restreindre le dessin à une aire définie par une image en jouant sur sa transparence.
  • La nouvelle commande BeginImage permet de définir une image qui pourra être réutilisée avec la bibliothèque graphique, par exemple avec la commande ClipToImage.
  • La nouvelle commande LoadImageWithColorMask permet de créer une nouvelle image en filtrant une image existante avec des intervalles de couleurs rvb.
  • La bibliothèque de dessin a une nouvelle commande LoadImage pour charger une image en mémoire. Cela peut être utile lorsqu'une iage doit être dessinée plusieurs fois.
  • La commande choose CGColor permet d'ouvir un dialogue pour choisir une couleur. Le paramètre color space spécifie si la couleur choisie doit être renvoyées en RGB ou en CMYK.
  • La nouvelle propriété move while dragging des widgets permet de spécifier si ils peuvent être déplacés à la souris ou non.
  • Il est désormais possible de définir un dessin personnalisé correspodnant à l'affichage d'un widget, à l'aide de sa nouvelle propriété custom pattern.
Interface et personnalisation de l'interface
  • Si vous copiez un élément d'un dialogue, vous pouvez désormais faire Coller sans avoir à désélectionner l'élément copié.
  • Il est désormais possible d'utiliser des index négatifs pour définir la sélection d'un champs de texte éditable d'un dialogue (par exemple : set selection of di to {-10, -4}.)
  • Il est désormais possible de définir par script le style de chaque colonne des titres du conteneur de liste multicolonnes des dialogues : la propriété formatter de cet objet est une liste de records qui acceptent un élément font {font:f, text size:s, justification:j}. La justification (optionnelle) s'applique à toute la colonne : -1 justifie à droite, 0 justifie à gauche et 1 justifie en centrant.
    set formatter of di to {{width:100.0, name:"title1", kind:boolean, tooltip:"tooltip1"}, {width:150.0, name:"title2", kind:string, tooltip:"tooltip2", font:{font:"Monaco", text size:15, justification:-1}}, {width:150.0, name:"title3", kind:string, tooltip:"tooltip3"}}

  • A propos des interfaces HTML : l'événement pageloaded est envoyé au script des web windows lorsqu'elle finissent de se recharger. C'est la première fois après le chargement de la page où l'on peut appeler sans problème un javascript dans la web window.
  • Le conteneur de liste des dialogues a changé : il peut désormais afficher plusieurs colonnes de textes ou de cases à cocher. Il est possible de régler le nombre de colonnes en sélectionnant Databrowser format dans son menu contextuel (⌥-clic). Vous devrez définir sa propriété contained data par une liste de listes pour remplir une contenuer de listes à plusieurs colonnes.
    Un exemple complet par script :
    set d to make new dialog
    set bounds of d to {100, 100, 500, 500}
    set di to make new dialog item at d with properties {control kind:352, bounds:{10, 10, 380, 380}}
    set formatter of di to {{width:100.0, name:"title1", kind:boolean, tooltip:"tooltip1"}, {width:150.0, name:"title2", kind:string, tooltip:"tooltip2"}, {width:150.0, name:"title3", kind:string, tooltip:"tooltip3"}}
    set contained data of di to {{false, "a", "A"}, {true, "b", "B"}, {false, "c", "C"}, {false, "d", "D"}}

    L'événement databrowser editedest envoyé au script du control conteneur de liste après qu'une de ses cases ait été modifiée. Les conteneurs de listes ont désormais une propriété «class Edit» (un booléen) définissant si les éléments des listes sont éditables ou non. Si cette propriété est mise à true, il est possible d'éditer les éléments d'une liste en cliquant sur le texte (et en attendant) ou en utilisant la touche tab.
Texte et Fichiers
  • Il est désormais possible d'ouvrir une URL dans Smile en sélectionnant le menu Ouvrir en gardant la touche shift appuyée.
  • Le menu fichiers récents gère mieux qu'avant les fichiers sur des serveurs distants.
  • La commande list files a désormais un paramètre of extension.
  • La nouvelle commande readtext permet de lire le contenu d'un fichier texte. C'est l'équivalent de la commande AppleScript read, sauf qu'elle ne s'applique qu'à des fichiers textes, en faisant attention à la présence d'un BOM Unicode. Vous pouvez spécifier l'encoding et le nombre maximal d'octets à lire.
  • La nouvelle commande absoluteURL résoud une URL relative à partir d'une base URL, ou coerce une URL absolue.
  • La nouvelle commande relativeURL traduit une URL en une URL relative à une base donnée.
  • La nouvelle commande URL info for de la Satimage.osax analyse une URL pour en renvoyer un URL information record (cf le dictionnaire de la Satimage.osax.)
  • La nouvelle commande splittext permet de séparer du texte en sous-parties, en fonction d'un séparateur défini éventuellement par une expression régulière.
  • La nouvelle commande breaktext découpe un texte en une liste de textes adaptés à une longueur de ligne spécifiée.
  • Lorsque vous éditez un fichier javascript (extension .js) dans une fenêtre Unicode, la touche ⌅ permet de vérifier la syntaxe (seules la première erreur est signalée) et ⌥⌅ affiche dans une console JavaScript l'ensemble des warnings ainsi que la première erreur rencontrée.
  • Les fenêtres Unicode ont un menu CR/LF : il indique quel séparateur de ligne est utilisé quand on appuie sur la touche return (par défaut, il s'agit du séparateur majoritaire au moment de l'ouverture d'un fichier). Désormais, lorsque vous sélectionnez un élément de ce menu, il vous est demandé si vous souhaitez modifier toutes les séparations de ligne de la fenêtre.
  • Lorsque vous éditez un fichier .sdef dans une fenêtre Unicode, la combinaison de touche ⌥⌅ permet désormais d'afficher le dictionnaire AppleScript correspondant au fichier sdef.
  • La nouvelle commande normalize unicode permet d'effectuer une composition canonique d'une chaîne de texte Unicode.
XML
  • La version actuelle de XMLLib.osax utilise libxml-2.6.29 et libxslt-1.1.21.
  • La commande XMLXpath permet d'utiliser XPath1.0 et y ajoute les fonctions de XPath2.0 compare, upper-case, lower-case, ends-with et base-uri dans le namespace "http://www.w3.org/2005/xpath-functions". XMLXpath permet aussi d'utiliser la fonction applescript dans le namespace "http://www.satimage-software.com/xpath-functions". Le premier argument de cette fonction applescript est le nom de la fonction AppleScript et les arguments suivants sont passé à la fonction appelée.
  • Les commandes opérant sur les XML et les Plists gèrent désormais des chemins de fichiers définis par des URLs (par exemple : XMLOpen "file://localhost/folder/name.xml", XMLOpen "http://domain.com/folder/name.xml", XMLOpen "ftp://login:pasword@domain.com/folder/name.xml".)
  • Les commandes XMLOpen et XMLSave ont désormais un paramètre html4 pour gérer du HTML plutôt que du XML.
  • Il est possible d'appeler des fonctions AppleScript depuis une requête XMLXpath en utilisant le namespace "http://www.satimage-software.com/xpath-functions-applescript" (voir l'exemple fournit avec la définition de XMLXpath dans le dictionnaire de XMLLib.)
  • La commande XMLRemoveAttribute n'envoie plus d'erreur lorsque l'attribut n'existe pas. Cette commande peut envoyer une erreur lorsque le namespace spécifié n'existe pas.
  • La commande XMLNodeInfo marche désormais également sur des url et des alias.
  • Dans XMLLib.osax, il y a désormais deux commandes XMLGetNameSpaces et XMLGetNameSpace au lieu d'une seule commande qui était intitulée XMLGetNameSpace.
  • La commande XMLSave a deux nouveaux paramètres optionels : xml declaration (pour omettre d'écrire la déclaration xml dans le fichier enregistré), et encoding.
  • La nouvelle commande PlistCopy permet de copier un dictionnaire ou un tableau d'une plist dans une autre plist.
  • La nouvelle commande PlistEqual de XMLLib.osax permet de comparer le contenu de deux éléments d'une plist.
  • La nouvelle commande PlistMatch de XMLLib.osax renvoie les élements d'un plist array qui contiennent une clé correspondant à une valeur spécifique.
  • La commande XMLXPath permet désormais d'utiliser deux fonctions XPath supplémentaires : 'url' (renvoie l'url du document) et 'parenturl' (renvoie l'url parent d'une url).
  • Deux nouvelles commandes XMLBase et XMLSetBase de XMLLib.osax permettent de gérer plus facilement les bases des éléments XML.
  • La nouvelle commande XMLAppendText de XMLLib.osax permet d'ajouter du texte à un élément XML.
  • Deux nouvelles commandes sont définies dans XMLLib.osax: XMLExists et XMLXInclude.
  • Les commandes XMLNewChild, XMLNewSibling, et XMLXPath acceptent également des listes de XMLRefs pour leurs paramètres acceptant des XMLRefs.
  • La commande XMLRemove faisait une erreur lorsque son paramètre direct était {}. Ce type d'erreur est désormais silencieux.
  • La commande XMLDisplay est désormais un synonyme de la commande XMLNodeContent.
  • XMLLib.osax utilise libxml-2.6.27 et libxslt-1.1.18. les fonctions exslt dans les stylesheets xsl sont désormais supportées par la commande XMLTransform. Par ailleurs, la gestion des erreurs XML ne supporte plus les fichiers ou les textes utilisant le retour chariot (CR) comme séparateur de ligne (les numéros de ligne et les sélections d'erreurs peuvent être incorrects dans de tels cas).
  • Vous pouvez désormais utiliser la commande XMLOpen avec un refNum provenant de la commande open access.
  • De nouvelles commandes de XMLLib acceptent des listes en paramètre direct : XMLParent, XMLTagName, XMLSetAttribute, XMLGetAttribute, XMLRemoveAttribute, XMLDisplayXML.
  • La nouvelle commande XMLAbsoluteURL de XMLLib.osax permet de résoudre une URL relative en utilisant une base (ou une URL absolue).
Confort
  • Les dictionnaires AppleScript s'affichent désormais dans des fenêtres web. La commande find definition a été modifiée et renvoie désormais la définition sous forme d'un texte contenant du XML (extrait du sdef correspondant au dictionnaire).
  • Lorsque vous sélectionnez le menu Fichiers Récents, il est désormais possible de trier la liste des fichiers par ordre alphabétique en appuyant sur la touche ⌥.
  • Le menu Fichiers récents permet désormais de distinguer le chemin de fichiers de même nom. Les bulles d'aide des éléments de ce menu affichent le chemin complet du fichier correspondant.
  • Il est désormais possible de faire Annuler dans les terminaux AppleScript et les fenêtres de script, même après avoir compilé un script dans ces fenêtres.
  • Il est désormais possible de définir les réglages par défaut pour les fenêtres Unicode et pour les fenêtre web, depuis le dialogue des préférences (dans l'onglet 'Fenêtres').
  • Tous les réglages par défaut des fenêtres sont désormais enregistrés dans les préférences de l'application et non plus dans des variables globales de Smile. Ceci a comme conséquence qu'il vous faudra redéfinir vos réglages par défaut (essentiellement la dimension par défaut de chaque type de fenêtres), mais par contre ces réglages ne disparaitront plus si vous devez réinitialiser votre fichier globals.scpt (qui stocke les variables globales de Smile).
  • Il est désormais possible d'installer un menu contextuel personnalisé dans les web windows (de la même façon que pour les autres fenêtre, cf Installation d'un menu contextuel.
  • Les menus de Smile ont changé : le sous-menu Enregistrement de licence... est désormais situé dans le menu Smile. Le menu Fichier a désormais un sous-menu Nouveau... regroupant Nouveau terminal AppleScript, Nouveau script, Nouveau dialogue, Nouveau texte Unicode. L'interface de SmileLab est accessible depuis le sous-menu Fichier > Nouveau plot. Le menu Aide a également changé : il possède désormais une section regroupant la plupart des éléments de l'ancien menu Aide concernant le scripting..
  • Il est désormais possible de chercher la définition d'un terme en le sélectionnant dans un terminal AppleScript avec ⌘-double-clic (ou ⌘-clic si le texte est déjà sélectionné).
  • Certains messages d'erreur ont été améliorés, notamment dans certaines situations où un fichier est manquant.
  • Lorsque vous ouvrez un fichier qui n'est pas de l'Unicode mais qui s'affiche dans une fenêtre Unicode, le path name de la fenêtre est désormais le chemin du fichier (attention, vous pouvez écraser le fichier avec des données corrompues).
Installation et documentation
  • La documentation HTML interne a été revue (en français et en anglais).
  • Des exemples ont été ajoutés dans les dictionnaires de Smile et de Satimage.
  • Le dialogue d'enregistrement de licences donne désormais des informations de validités des licences installées.
  • Smile version complète est désormais livré avec le complément de pilotage FITS.osax, dédié à l'ouverture des fichiers FITS (FITS est un format de fichier utilisé en astronomie pour stocker des données scientifiques).
  • L'installeur de Smile installe désormais également des fichiers dans le dossier /Library/Applications Support/Smile/.
Amélioration de la productivité
  • La nouvelle commande URLRequest permet d'envoyer des requêtes URL (POST ou GET).
  • Un nouveau sous-menu est apparu dans le menu User Scripts : Misc regroupe plusieurs outils. Open Huge File était auparavant dans le sous-menu Programmer ; il sert à visualiser le contenu de gros fichiers (en ASCII). Formula Plotter utilise SmileLab pour visualiser des fonctions définies à l'aide d'une formule (courbes, surfaces, etc). JavaScript Terminal est un nouvel outil permettant de développer du javascript dans un terminal "à la Smile" (avec execution ligne par ligne), et de vérifier la syntaxe d'un javascript. Enfin, Convert PDF file to EPS est un exemple de conversion d'un fichier PDF en un fichier EPS (PostScript).
  • Il est désormais possible de chercher l'occurence précédente d'une sélection de texte dans une fenêtre Unicode (⌘⇧G). (NB : ça ne marche pas en regexp.)
Bogues réparés dans la version 3.2
Bogues réparés dans la version 3.2.3
  • Sur Leopard (Mac OS 10.5), Smile n'affichait pas les proccess dans le menu Ouvrir un dictionnaire ni dans le menu Script > tell. Ce bogue est réparé.
Bogues réparés dans la version 3.2.2
  • Smile crashait au lancement sur Leopard (Mac OS 10.5). Ce bogue est réparé.
Bogues réparés dans la version 3.2.1
  • Les menus contextuels personnalisés des web windows étaient désactivés. Ce bogue est réparé.
  • La fenêtre Console ne conservait plus sa propriété 'Largeur de ligne auto'. Ce bogue est réparé.
  • Dans certaines circonstances concernant l'utilisation de variables fitpoly dans l'interface de plot, la variable xfit n'était pas calculée. Ce bogue est réparé.
  • Le menu Graphiques > Afficher les profils n'était pas correctement désactivé dans certains cas. Ce bogue est réparé.
Bogues réparés dans la version 3.2.0
  • Lorsque la commande XMLTransform était appliquée à un élément XML qui n'était pas le document entier, la déclaration de la DTD du document était perdue. Ce bogue est réparé.
  • Certaines commandes de XMLLib.osax acceptent des listes d'arguments en paramètre direct (par exemple XMLGetAttribute et XMLGetText). Lorsqu'on leur passait une liste à un élément, elles renvoyaient le résultat pour cet élément plutôt qu'une liste contenant ce résultat. Ces comandes renvoient désormais toujours une liste lorsque le paramètre direct est une liste.
  • Les commandes change et uchange ne renvoyaient rien lorsque le paramètre direct était {}. Elles renvoient désormais {}.
  • Dans certaines circonstances, zoomer dans un graphique de courbes pouvait afficher des lignes verticales aléatoires. Ce bogue est réparé.
  • Certains appels à la commande duplicate pouvaient crasher Smile. Ce bogue est réparé.
  • Le dialogue Open Huge File (dans les User Scripts) faisait un message d'erreur à l'ouverture d'un fichier. Ce bogue est réparé.
  • Les titres des colonnes des databrowsers (éléments de dialogues à plusieurs listes) sont maintenant localisés.
  • set current frame of d'une movie window ne marchait pas sur Mac Intel. Ce bogue est réparé.
Comportements et bogues connus de la version 3.2
  • Smile 3.2 ne fonctionne pas sous Panther (Mac OS 10.3).
Liste des nouveautés des précédentes versions de Smile
Les listes des nouveautés des précédentes versions de Smile sont disponibles dans des pages séparées :
Précédent | Suivant
Copyright ©2007 Paris, Satimage