Smile (software)
Encyclopedia
Smile is a Macintosh
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

 computer programming and working environment based on AppleScript
AppleScript
AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language....

. It features a number of production technologies and a natural fashion of having them work together. Smile is primarily designed for scientists, engineers, desktop publishers, and web administrators, to help them producing faster and better, automating frequent tasks, and controlling complex operations.

Smile is free, except for two families of technologies: data visualization
Data visualization
Data visualization is the study of the visual representation of data, meaning "information that has been abstracted in some schematic form, including attributes or variables for the units of information"....

 (SmileLab) and http requests handling (Smile Server).

History

The name of the first version of Smile, released in 1995, was SMILE (upper case), and some users still name it so. The acronym stood for SMI, Limited Edition, where SMI itself stands for Scriptable Measurements on Images. SMI is the name of the software that Satimage, a French company in Machine vision
Machine vision
Machine vision is the process of applying a range of technologies and methods to provide imaging-based automatic inspection, process control and robot guidance in industrial applications. While the scope of MV is broad and a comprehensive definition is difficult to distil, a "generally accepted...

, develops and uses to power the systems that they supply, automated real-time measurement and inspection systems for industrial plants.

SMI is really a core engine, written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

, which alone does nothing: it requires an interface, and that interface's behavior is programmed in AppleScript, in scripts. SMI's core implements the key features of the software, and publishes them to AppleScript. SMI is designed to make development costs lower while maintaining a wide range of applications. Basically, Smile is just SMI, sans the real-time video processing features.

Satimage's industrial clients are continuously more demanding, and SMI - thus, Smile - improves. The need for 2D and 3D real-time visualization (of the measurements) gave rise to SmileLab. More recently, web-based control of facilities becomes a standard, and Smile is now also a web applications server - and a web browser.

Smile

The technologies included in Smile:
  • AppleScript Terminal windows,
  • an AppleScript editor with many helpers,
  • an editor of scripted interfaces,
  • a web browser,
  • a proprietary URL protocol to make HTML interfaces and have them send events to scripts,
  • a text editor for ASCII
    ASCII
    The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...

     and Unicode
    Unicode
    Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...

    , with a search-and-replace tool supporting Regular Expression
    Regular expression
    In computing, a regular expression provides a concise and flexible means for "matching" strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp"...

    s,
  • a XML
    XML
    Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

     editor,
  • a Regular Expression engine,
  • a XML and p-list engine,
  • a 2D graphic engine, to program vectorial PDF graphics by script,
  • fast mathematical commands on numbers, arrays and matrices,
  • commands for driving industrial interfaces: RS232 serial communication, digital I/O, LED display.

SmileLab

The SmileLab license adds the data analysis and data visualization features to Smile. SmileLab provides an Aqua interface to make any data graph "manually", and libraries of commands to make graphs and process data by script (SmileLab can display at any moment the script corresponding to the user's action.)

Performances

The mathematical commands are optimized, and versatile thanks to AppleScript. Even with the default settings, suitable for an average page size, the graphical documents (PDFs, bitmaps, videos of 1D, 2D, and 3D graphs, and custom graphics) are of professional quality.

SmileLab does not use a proprietary computational language or data format. Computational extensions can be written in C or C++. SmileLab handles the most usual data file formats, and extensions for other file formats can easily be plugged-in.

Benefits

Basically, the Smile system and SmileLab will appeal to those concerned with not doing the same thing twice. For instance, once a plot finely tuned with custom settings, the user can view and save the (AppleScript) script to get exactly the same settings later. One single language, AppleScript, drives the computations, produces the graphics, schedules the actions, and handles the interfaces: SmileLab's built-in interface as well as the interfaces that the user builds. So the script once saved may then be used in a variety of contexts.

Also, the Smile system and SmileLab benefit from a unique feature of AppleScript: live interaction with running codes. AppleScript - and SmileLab helps with that - can interact with (get information from and send commands to) a program while it is running. This feature is a concern for scientists or engineers running long computations or computations involving large amounts of data, when stopping, dumping, then relaunching a program implies significant costs.

Smile Server

Smile Server makes a bridge between a CGI
Common Gateway Interface
The Common Gateway Interface is a standard method for web servers software to delegate the generation of web pages to executable files...

 program and AppleScript. This works by Smile opening a server port. A specific cgi, included, makes an http request into a p-list (Apple's associative array XML format) and sends it to Smile Server on that port (specified in a configuration file). Asynchronous as well as synchronous behaviors are implemented, allowing Smile Server to be used as an alternate solution to .asp or .php to build dynamic sites, including AJAX-based web sites.

Smile Server also handles XML-RPC
XML-RPC
XML-RPC is a remote procedure call protocol which uses XML to encode its calls and HTTP as a transport mechanism. "XML-RPC" also refers generically to the use of XML for remote procedure call, independently of the specific protocol...

requests.

The first users of Smile Server are physicists who use it to publish computational models. See an example in solar physics.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK