Smile (software)

Last updated
Smile
Developer(s) Satimage Software
Stable release
3.7.0 / November 15, 2013
Operating system Mac OS X
Type Data analysis
License Proprietary
Website www.satimage.fr/software

Smile is a free Macintosh computer programming and working environment based on AppleScript. It is primarily designed for scientists, engineers, desktop publishers, and web applications developers to help them automate frequent tasks and control complex operations.

Contents

History

Smile was first released in 1995 as SMILE (in upper case). The acronym stood for SMI, Limited Edition, with SMI standing for Scriptable Measurements on Images. SMI is a software developed by Satimage Software, a French company engaged in machine vision technology, to automate real-time measurement and inspection systems for industrial plants.

SMI is the core engine, which is written in C/C++ that alone does nothing: it requires an interface, and that interface's behavior is programmed in AppleScript. SMI's core implements the key features of the software and publishes them to AppleScript. Basically, Smile is just SMI, without real-time video processing features.

The need for 2D and 3D real-time visualization (of the measurements) gave rise to SmileLab. More recently, web-based control of facilities has become a standard, and Smile is now also a web applications server and a web browser.

Smile

The technologies included in Smile:

SmileLab

Smile provides an Aqua interface to make any data graph "manually" and libraries of commands to make graphs and process data via scripts (SmileLab can display at any moment the script corresponding to the user's action.)

Performance

Computational extensions can be written in C or C++. Smile handles common file formats, but extensions for unsupported file formats can be added.

Smile Server

Smile Server is a bridge between a CGI program and AppleScript. This works by Smile opening a server port. A specific CGI, included, makes an HTTP reques t 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 behaviours are implemented, allowing Smile Server to be used as an alternate solution to .asp or .php to build dynamic sites, including AJAX-based websites.

Smile also handles XML-RPC requests.

Related Research Articles

In computing, Common Gateway Interface (CGI) is an interface specification that enables web servers to execute an external program to process HTTP/S user requests.

VBScript is a deprecated Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

<span class="mw-page-title-main">GNUstep</span> Open source widget toolkit and application development tools

GNUstep is a free software implementation of the Cocoa Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

<span class="mw-page-title-main">Windows Script Host</span> Automation technology for Windows

The Microsoft Windows Script Host (WSH) is an automation technology for Microsoft Windows operating systems that provides scripting abilities comparable to batch files, but with a wider range of supported features. This tool was first provided on Windows 95 after Build 950a on the installation discs as an optional installation configurable and installable by means of the Control Panel, and then a standard component of Windows 98 and subsequent and Windows NT 4.0 Build 1381 and by means of Service Pack 4. The WSH is also a means of automation for Internet Explorer via the installed WSH engines from IE Version 3.0 onwards; at this time VBScript became means of automation for Microsoft Outlook 97. The WSH is also an optional install provided with a VBScript and JScript engine for Windows CE 3.0 and following and some third-party engines including Rexx and other forms of Basic are also available.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language or block coding is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations.

<span class="mw-page-title-main">JSON</span> Open standard file format and data interchange

JSON is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays. It is a common data format with diverse uses in electronic data interchange, including that of web applications with servers.

<span class="mw-page-title-main">Dynamic web page</span> Type of web page

A dynamic web page is a web page constructed at runtime, as opposed to a static web page, delivered as it is stored. A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and including the setting up of more client-side processing. A client-side dynamic web page processes the web page using JavaScript running in the browser as it loads. JavaScript can interact with the page via Document Object Model (DOM), to query page state and modify it. Even though a web page can be dynamic on the client-side, it can still be hosted on a static hosting service such as GitHub Pages or Amazon S3 as long as there is not any server-side code included.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

<span class="mw-page-title-main">Web template system</span> System in web publishing

A web template system in web publishing allows web designers and developers work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.

3DMLW is a discontinued open-source project, and a XML-based Markup Language for representing interactive 3D and 2D content on the World Wide Web.

<span class="mw-page-title-main">Scripting language</span> Programming language for run-time events

A scripting language or script language is a programming language that is used to manipulate, customize, and automate the facilities of an existing system. Scripting languages are usually interpreted at runtime rather than compiled.

The following outline is provided as an overview of and topical guide to the Perl programming language: