Skip to content

Latest commit

 

History

History
185 lines (137 loc) · 5.6 KB

File metadata and controls

185 lines (137 loc) · 5.6 KB

Application Interfaces

author: Brian High & Elliot Norwood date: January 12, 2015 transition: fade incremental: true

Research Computing and Data Management

http://github.com/brianhigh/research-computing

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Creative Commons License

Application Interfaces

  • Visual
  • Windows, Files and Folders, Graphics.
  • Most common modern interface.
  • Textual
  • Command line
  • Often more powerful and faster than the visual interface, but less intuitive.

Visual (Graphical) Interfaces

  • Graphical User Interface (GUI)
  • Most common contemporary way to interface with computers.
  • Uses visual / graphical representations to interact with files and applications.
  • eg. Files & folders, "windows", icons, "Apps", buttons.
  • Web
  • Web Browsers (eg. IE, Safari, Firefox, Chrome).
  • Connects to a remote web server to display information.

GUI

  • Visual navigation, point-n-click (tap), drag-n-drop, gestures.
  • Physical actions should corrospond to computer behavior.
  • Most useful for common or visual tasks (e.g. photo editing).
  • More intuitive interface for most computer users.

Web Interfaces

  • Server provides application to common client app (browser).
  • Most useful for network-centric, multi-user, distributed apps.
  • Can be used to transfer a remote file to local machine (downloads).

Web Technologies

  • Markup
  • Categorize, organize, and modify content.
  • Styles
  • The design side of a web interface.
  • Scripts
  • Allows more complex interaction than basic HTML.
  • Frameworks
  • Data Exchange

Markup

  • "HyperText Markup Language" (HTML)
  • The basic language of the web.
  • Uses "Elements and Tags" to organize content.
  • Markup is not visible to the end user.
  • Tags / elements can have default effects (eg. b for bold) or be used strictly for organization (eg. header)
  • Can also define custom tags / elements, for the purposes of styling or scripts.

Styles

  • "Cascading Style Sheets" (CSS)
  • The design side of a website
  • Design should be separate from content
  • Allows for layout (margins, sizes of elements), colors (font and background, images), changing fonts, and more.
  • Can quickly change the look of a site without changing content by switch stylesheets.

Scripts

Server-side web-scripting languages and platforms:

  • CGI (Old school, usually Perl)
  • PHP (Most common)
  • ASP (Microsoft)
  • JSP (Java)
  • Python (Django, Pyramid Frameworks)

Client-side

  • JavaScript (do not confuse with Java)
  • Flash

Web Application Frameworks

Allow users to easily add and modify content, without having to know the underlying web technologies.

  • Content Management System (CMS)
  • Drupal, Wordpress, Django
  • Learning Management System (LMS)
  • Canvas

Data Exchange

  • HTTP
  • Client sends a request, server returns a response.
  • XML
  • Standard markup language that can be used by tools (eg. RSS, XHTML, SOAP) to deliver data.
  • JSON
  • An alternative to XML, transmits data in attribute-value pairs.
  • Ajax uses JSON to request new data after a page has loaded by sending data to server dynamically.

Textual Interfaces

  • Command Line Interface (CLI)
  • All text based. Some basic graphics can be simulated with text.
  • Requires exact commands including spelling and case.
  • Application Program Interface (API)
  • Provides the "building blocks" to develop a program.
  • Can allow third party utilities to "hook into" existing applications.

CLI

  • Text prompts & commands (or menus)
  • Flags: short hand option
  • Options: Specifies addition actions for your command
  • Arguments: Specifies information you want the command to act on (eg. a file name)
  • Uses:
  • Data manipulation
  • Very fast interface due to lack of graphics (good for low bandwidth remote connections)
  • Can be much faster / easier to use than graphical if you know the commands

Windows CLI

  • DOS - "Disk Operating System"
  • CMD.EXE
  • PowerShell

Bash

  • "Bourne Again Shell"
  • Unix systems (Mac OSX) and Linux
  • Windows: Cygwin, GitBash

Other (Application)

Scientific and statistics apps use CLI

  • Stata
  • R
  • MATLAB

API

  • "Application Programming Interface" - using code libraries
  • Most useful for automation and back-end data transfer
  • Develop your own apps / utilities using data from another source
  • Example: Google Maps API