Compiling SVG: How and Why Michael Levy, Quetzalcoatl Bradley and Calin Somosan NewHeights Software Corporation.

Slides:



Advertisements
Similar presentations
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Advertisements

HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
® IBM Software Group © 2008, 2009 IBM Corporation OSLC Reporting POC implementation Dragos Cojocari March 2010.
Introduction to SVG & Batik Presented by Shang-Ming Huang.
B-1 Appendix B Information System Software Robert Riordan, Carleton University.
XML DOM and SAX Parsers By Omar RABI. Introduction to parsers  The word parser comes from compilers  In a compiler, a parser is the module that reads.
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
Building Accessibility Into The Workflow Rick Ells Computing & Communications University of Washington Seattle, Washington
SVG Scalable Vector Graphics. What is SVG? SVG stands for Scalable Vector Graphics SVG is used to define vector-based graphics for the Web SVG defines.
CS575 - Human Issues in Computing CSULA Spring 2006 Human Impact of UI Design Paradigms (PART 2 – Case Studies) Robert Ritchey and Ruben Campos.
Bar|Scan ® Asset Inventory System The leader in asset and inventory management.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
Matthew J Mattia CSC  Cumbersome Code  Consistent/Predictable design (GUEPs #5, CD’s #10)  Display “proper” amount of information  Including.
VoiceXML Builder Arturo Ramirez ACS 494 Master’s Graduate Project May 04, 2001.
JavaServer Faces: The Fundamentals Compiled from Sun TechDays workshops (JSF Basics, Web-Tier Codecamp: JavaServer Faces, Java Studio Creator; IBM RAD)
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
RDF (Resource Description Framework) Why?. XML XML is a metalanguage that allows users to define markup XML separates content and structure from formatting.
1 Software Design Tools  Examples of UI Applications  PCs & Pocket PCs  Mobile devices & Cell phones  Game Consoles  Appliances  Tools to Communicate.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
NETMOD Architecture Phil Shafer IETF 72.
Introduction to Silverlight. Slide 2 What is Silverlight? It’s part of a Microsoft Web platform called Rich Internet Applications (RIA) There is a service.
SednaSpace A software development platform for all delivers SOA and BPM.
JavaScript II ECT 270 Robin Burke. Outline JavaScript review Processing Syntax Events and event handling Form validation.
Adobe FLASH What & Why? Where & When? Is Flash dead? What about HTML5?
USER INTERFACE.
Flash & JavaScript Mariela Hristova October 19, 2004 INF 385E – Fall 2004 – School of Information.
An overview of scripting languages Alexander Kanavin Teachers: Barbara Miraftabi, Jan Voracek.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 12 lcdui Rob Pooley
Javascript II DOM & JSON. In an effort to create increasingly interactive experiences on the web, programmers wanted access to the functionality of browsers.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
Object Oriented Software Development 9. Creating Graphical User Interfaces.
Tutorial 7 Planning and Creating a Flash Web Site.
Class 02 – 03 Feb 2014 Setup Where do we begin? Know your content Discovering your target user.
Why do we need good user interfaces?. Goals of User Interfaces Usable – how much effort to do a task? – example: often-used buttons easier to find – example:
XAFIT provides a runtime environment for AF-RDL scripts Instantiation process inputs AF-RDL scripts Framework model in AF-UML Application developer inputs.
XML Grammar and Parser for WSOL Kruti Patel, Vladimir Tosic, Bernard Pagurek Network Management & Artificial Intelligence Lab Department of Systems & Computer.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Architecture & Component Orientation Jose Donate CS 6362.
If I wanted to Simulate the Next Screen… TEMPLATES, COMPONENTS, AND INCREMENTAL IMPROVEMENT.
XP Tutorial 7 Creating a Flash Web Site. XP New Perspectives on Macromedia Flash 82 Objectives Plan and create a Flash Web site Create a Flash template.
Scripting Languages Client Side and Server Side. Examples of client side/server side Examples of client-side side include: JavaScript Jquery (uses a JavaScript.
Different Types of HCI CLI Menu Driven GUI NLI
©Silberschatz, Korth and Sudarshan10.1Database System Concepts W3C - The World Wide Web Consortium W3C - The World Wide Web Consortium.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
HTML5 and CSS3 Illustrated Unit B: Getting Started with HTML.
Part – 3 : HTML 5 SVG Tag. † SVG stands for Scalable Vector Graphics. † SVG is used to define vector-based graphics for the Web. † SVG defines the graphics.
*DT Project Model Leo Treggiari Intel Corp. Dec, 2005.
Introduction to UML.
Creating a Flash Web Site
Abstract descriptions of systems whose requirements are being analysed
Chapter 4 Computer Software.
Introduction to Silverlight
Prepared for Md. Zakir Hossain Lecturer, CSE, DUET Prepared by Miton Chandra Datta
Ch 1 Second Half What is a Language?
.NET and .NET Core 7. XAML Pan Wuming 2017.
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
JavaServer Faces: The Fundamentals
Why use Web Standards?.
CS 350 – Software Design Principles and Strategies – Chapter 14
GRAPHICAL USER INTERFACE GITAM GADTAULA. OVERVIEW What is Human Computer Interface (User Interface) principles of user interface design What makes a good.
GRAPHICAL USER INTERFACE GITAM GADTAULA KATHMANDU UNIVERSITY CLASS PRESENTATION.
Implementation support
XML Parsers.
Mark Quirk Head of Technology Developer & Platform Group
Implementation support
Software Architecture & Design
Presentation transcript:

Compiling SVG: How and Why Michael Levy, Quetzalcoatl Bradley and Calin Somosan NewHeights Software Corporation

The Natural History of UI-1

The Natural History of UI-2

The Natural History of UI - 3

The Natural History of UI - 4

Convergence Human Interface Guidelines –Are metaphors still appropriate? –Do they reflect converged offerings? –Can they project a brand? Mitel Design Center –Unify the device (phone on desk) and application –Input vehicle should be irrelevant to user

What about Web Applications? Interim technology –Many advantages, but –Step backwards in responsiveness Human perception is continuous, not discreet Transaction based processing is as bad as Menu driven DOS-like processing

The Role of the Architect GUI Libraries –Simplify programming –Enforce “look-and-feel” –Biased towards Shell designers metaphor –Too complex for industrial designer Today’s design tools –Illustrator, Flash

New Design Paradigm

HelixRAD Graphical element has 4 major parts –Template VML/DHTML/CSS –Parameters –Elements Attribute invariants for each element –Semantics Handlers for actions (Javascript)

Why use SVG? Elegance/ power of descriptive language Tools support –Xml compliant –Graphics editors

Why Compile? Interpreted code is not, and never will be, good enough to compete with compiled code Example - menu as SVG: 1.Load the XML 2.Create the DOM 3.Change the text attribute for the Menu name 4.Clone an item node for each menu item 5.Set the text attribute of each item 6.Traverse the resulting DOM tree, rendering it.

How to Compile SVG On Win32, GDI+ library provides most of what is needed Provide an abstract library for general elements Compiler subclasses or instantiates particular SVG files Scheme needed to automate attachment of semantic actions

Conclusions and Future Work Mismatches between GDI+ and Adobe reference implementation are problematic Better SVG tool support: –Grouping –Most meaningful element that fits EG: Square instead of four paths; circle instead of (closed) arc SVG lacks adequate alternative to DOM clone for class instantiation Standards for semantics?