SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
What is DojoX GFX?
    It's a cross-platform vector graphics package
●

    written in JavaScript.
    Frequently referenced as dojox.gfx or dojo.gfx.
●


    Supported backends:
●


        SVG (Firefox, Opera, Webkit/Safari 3 beta).
    –

        VML (IE6, IE7).
    –

        Silverlight (IE6, IE7, Firefox, Safari).
    –

    Design decisions were driven by pragmatic
●

    considerations.
    Let's review what's available.
●
Web gfx: VML
    Microsoft submitted VML to W3C in 1998.
●


        Since then it was augmented several times.
    –

    Pros:
●


        Available on IE6 and IE7:
    –

             60-85% of all browsers (source: Wikipedia).
         ●


             No need to install anything.
         ●



    Cons:
●


        Antiquated, incomplete, bug-ridden, slow.
    –

        Documentation is misleading, lack of examples.
    –

        Persistent rumors that Microsoft will drop it in IE8.
    –
Web gfx: SVG
    You know SVG, right?
●


    Pros:
●


        Mature, feature rich, well-documented.
    –

        There are several high-quality native implementations.
    –

    Cons:
●


        The market leader (IE) doesn't support it.
    –
Web gfx: Canvas
    Part of HTML5 by WHATWG.
●


    Implements a procedural interface.
●


    Pros:
●


        Implemented by Safari, Firefox, Opera.
    –

        Fast for drawing static images.
    –

    Cons:
●


        No support for picture regeneration.
    –

        Limited support for mouse selection.
    –

        Usually available along with SVG, which makes its use
    –
        questionable in some cases.
Web gfx: Silverlight
    Microsoft's answer to SVG and Flash.
●


    Pros:
●


        Finally something better than VML on IE!
    –

        Multi-platform:
    –

             «All major browsers on both Mac OS X and on Windows».
         ●


             Silverlight for Linux: Moonlight by Mono team.
         ●



        Rumored to replace VML in upcoming IE8.
    –

    Cons:
●


        Built on SVG blueprints, yet incompatible.
    –

        Not integrated with HTML DOM.
    –

        Requires a download.
    –
Web gfx: Flash
    The king of web graphics.
●


    Pros:
●


        Adobe: installed on ~98.7% browsers (Wikipedia).
    –

        Mature, well-known technology.
    –

        Multi-platform (including IE!).
    –

    Cons:
●


        Multiple problems with interfacing to external
    –
        JavaScript.
             Forces to move everything to the Flash.
         ●


             No integration with HTML DOM and other browser facilities.
         ●
Web gfx: Plug-ins
    All plug-ins may require a download!
●


    Major players: Java applet, ActiveX.
●


    Pros:
●


        Well-documented, mature, multi-platform.
    –

        Employs «real» languages.
    –

    Cons:
●


        Java applet:
    –

             No integration with HTML DOM...
         ●



        ActiveX:
    –

             Security issues, Windows IE-only technology...
         ●
Web gfx: HTML
    Simulation of vector graphics with absolutely
●

    positioned <div>s, or variations of this technique.
    Pros:
●


        Multi-platform, doesn't need plug-ins.
    –

        Keeps everything in the familiar HTML/CSS domain.
    –

    Cons:
●


        Restricts expressiveness.
    –

        Consumes a lot of memory, slow.
    –
DojoX GFX
    Loosely based on SVG concepts.
●


    Separation of concerns:
●


        Shape describes a geometry.
    –

             Group is a special shape, which is used to combine other
         ●

             shapes.
        Fill describes how to fill a shape.
    –

        Stroke describes how to draw an outline.
    –

        Font defines how to render text shapes.
    –

        Matrix describes a transformation.
    –

        Surface defines a drawing area.
    –
Shape
    Available shapes:
●


        Path (using the SVG path language).
    –

        Rectangle (with rounded corners).
    –

        Polyline/polygon.
    –

        Ellipse.
    –

        Convenient shapes:
    –

             Circle.
         ●


             Line.
         ●



        Image.
    –

        Text.
    –

        TextPath (highly experimental).
    –
Fill
    Solid fill.
●


         Any color object would do:
     –

              «red», «0xF00», «0xFF0000»
          ●


              «rgb(255, 0, 0)», «rgba(255, 0, 0 ,1)»
          ●


              {r: 255, g: 0, b: 0, a: 1}, [255, 0, 0, 1]
          ●



    Linear gradient
●


         Supports multiple color steps + line.
     –

    Radial gradient
●


         Supports multiple color steps + center + radius.
     –

    Tiled pattern.
●
Stroke
    Supports color, thickness, caps, and joins.
●


    Styles:
●


        Solid, ShortDash, ShortDot, ShortDashDot,
    –
        ShortDashDotDot, Dot, Dash, LongDash, DashDot,
        LongDashDot, LongDashDotDot.
    Caps:
●


        Butt, Round, Square.
    –

    Joins:
●


        Round, Bevel, Miter (specified by a number).
    –
Font
    Supports family, style, variant, weight, and size.
●


    Styles:
●


        Normal, Italic, Oblique.
    –

    Variants:
●


        Normal, Small-caps.
    –

    Weights:
●


        Normal, Bold, 100-900.
    –
Matrix
    Traditional 2D matrix.
●


    Numerous helpers:
●


        Constants: identity, flipX, flipY, flipXY.
    –

        Translation: translate().
    –

        Rotation: rotate(), rotateg(), rotateAt(), rotategAt().
    –

        Scaling: scale(), scaleAt().
    –

        Skewing:
    –

             skewX(), skewXg(), skewXAt(), skewXgAt().
         ●


             skewY(), skewYg(), skewYAt(), skewYgAt().
         ●



        Normalization, combination, inversion, and so on.
    –
Group & Surface
    Group:
●


        Used to combine several shapes together.
    –

             It is possible to have embedded groups.
         ●



        Supported operations:
    –

             Matrix transformations.
         ●


             Event processing.
         ●


             Propagation of default fills and strokes is planned.
         ●



    Surface:
●


        Hosts a drawing area.
    –

        Serves as a top-level group for all shapes.
    –
Notes
    DojoX GFX takes advantage of JavaScript:
●


        All descriptor objects are JSON-compatible.
    –

             Opens a possibility of network streaming.
         ●



        Almost all setters are chained.
    –

             Example: surface.createRect(r).setFill(f).setStroke(s);
         ●



        Duck-typing is used almost everywhere.
    –

             Example: shape.setTransform({dx: 10, dy: 10});
         ●



        Supports a wide variety of color representations.
    –

        Separates geometry from visual parameters.
    –

        Keeps all relevant information together.
    –

             Easy to define a palette or theme (used in charting).
         ●
Demo
Upcoming
    More backends.
●


        We need to support IE better.
    –

    Animation.
●


        Native animation APIs (SVG, Silverlight).
    –

        Fall back to Dojo animation facilities (VML).
    –

    DojoX GFX 3D
●


        Restricted subset of 3D graphics.
    –

        Geared towards charting.
    –

    DojoX Charting
●


        New and improved.
    –
DojoX GFX 3D
    Google Summer of Code 2007
●

    project.
    Student: Kun Xi.
●


        Graduate student of the George
    –
        Washington University.
        Majored in Computer Engineering.
    –

        Previous project: Dojo Summer of
    –
        Code 2006 — Dojo GFX.
DojoX GFX 3D pics
    Demonstration of some techniques.
●
DojoX Charting
    Google SoC 2007 project.
●


    Student: Neil Joshi.
●


        Graduate student of Ryerson
    –
        University in Toronto, ON, Canada.
        Majored in Electrical Engineering.
    –

    Supervisor: Tom Trenka.
●


        Veteran developer with SitePen.
    –

        Owner of DojoX Charting module.
    –
Charting demo
    Demonstration of technical prototypes.
●
Questions


????
????
????

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (6)

CRUD with Dojo
CRUD with DojoCRUD with Dojo
CRUD with Dojo
 
Dojo GFX: SVG in the real world
Dojo GFX: SVG in the real worldDojo GFX: SVG in the real world
Dojo GFX: SVG in the real world
 
Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1Modul pelatihan-django-dasar-possupi-v1
Modul pelatihan-django-dasar-possupi-v1
 
REST beyond CRUD
REST beyond CRUDREST beyond CRUD
REST beyond CRUD
 
Basic Crud In Django
Basic Crud In DjangoBasic Crud In Django
Basic Crud In Django
 
Django
DjangoDjango
Django
 

Ähnlich wie DojoX GFX Keynote Eugene Lazutkin SVG Open 2007

Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
W3C HTML5 KIG-The complete guide to building html5 games
W3C HTML5 KIG-The complete guide to building html5 gamesW3C HTML5 KIG-The complete guide to building html5 games
W3C HTML5 KIG-The complete guide to building html5 gamesChanghwan Yi
 
Make your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptMake your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptKevin Hakanson
 
Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07carsonsystems
 
DojoX GFX Session Eugene Lazutkin SVG Open 2007
DojoX GFX Session Eugene Lazutkin SVG Open 2007DojoX GFX Session Eugene Lazutkin SVG Open 2007
DojoX GFX Session Eugene Lazutkin SVG Open 2007Eugene Lazutkin
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Pascal Rettig
 
Building a Visualization Language
Building a Visualization LanguageBuilding a Visualization Language
Building a Visualization Languagejeresig
 
Html5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsHtml5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsEngin Hatay
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Libraryjeresig
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3Helder da Rocha
 
Jazz up your JavaScript: Unobtrusive scripting with JavaScript libraries
Jazz up your JavaScript: Unobtrusive scripting with JavaScript librariesJazz up your JavaScript: Unobtrusive scripting with JavaScript libraries
Jazz up your JavaScript: Unobtrusive scripting with JavaScript librariesSimon Willison
 
Drupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQueryDrupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQueryMatt Butcher
 
Once upon a time, there were css, js and server-side rendering
Once upon a time, there were css, js and server-side renderingOnce upon a time, there were css, js and server-side rendering
Once upon a time, there were css, js and server-side renderingAndrea Giannantonio
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersYehuda Katz
 
Introduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector GraphicsIntroduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector Graphicsdylanks
 
Beyond the Standards
Beyond the StandardsBeyond the Standards
Beyond the StandardsPaul Bakaus
 

Ähnlich wie DojoX GFX Keynote Eugene Lazutkin SVG Open 2007 (20)

Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
W3C HTML5 KIG-The complete guide to building html5 games
W3C HTML5 KIG-The complete guide to building html5 gamesW3C HTML5 KIG-The complete guide to building html5 games
W3C HTML5 KIG-The complete guide to building html5 games
 
Make your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptMake your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScript
 
Svcc 2013-css3-and-mobile
Svcc 2013-css3-and-mobileSvcc 2013-css3-and-mobile
Svcc 2013-css3-and-mobile
 
Svghtml5 Meetup
Svghtml5 MeetupSvghtml5 Meetup
Svghtml5 Meetup
 
JavaFX 1.0 SDK Aquarium Paris
JavaFX 1.0 SDK Aquarium ParisJavaFX 1.0 SDK Aquarium Paris
JavaFX 1.0 SDK Aquarium Paris
 
Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07Chris Wilson @ FOWA Feb 07
Chris Wilson @ FOWA Feb 07
 
DojoX GFX Session Eugene Lazutkin SVG Open 2007
DojoX GFX Session Eugene Lazutkin SVG Open 2007DojoX GFX Session Eugene Lazutkin SVG Open 2007
DojoX GFX Session Eugene Lazutkin SVG Open 2007
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3
 
Building a Visualization Language
Building a Visualization LanguageBuilding a Visualization Language
Building a Visualization Language
 
HTML5 - A Whirlwind tour
HTML5 - A Whirlwind tourHTML5 - A Whirlwind tour
HTML5 - A Whirlwind tour
 
Html5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsHtml5 Canvas and Mobile Graphics
Html5 Canvas and Mobile Graphics
 
Building a JavaScript Library
Building a JavaScript LibraryBuilding a JavaScript Library
Building a JavaScript Library
 
JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
 
Jazz up your JavaScript: Unobtrusive scripting with JavaScript libraries
Jazz up your JavaScript: Unobtrusive scripting with JavaScript librariesJazz up your JavaScript: Unobtrusive scripting with JavaScript libraries
Jazz up your JavaScript: Unobtrusive scripting with JavaScript libraries
 
Drupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQueryDrupal 6 JavaScript and jQuery
Drupal 6 JavaScript and jQuery
 
Once upon a time, there were css, js and server-side rendering
Once upon a time, there were css, js and server-side renderingOnce upon a time, there were css, js and server-side rendering
Once upon a time, there were css, js and server-side rendering
 
jQuery Presentation to Rails Developers
jQuery Presentation to Rails DevelopersjQuery Presentation to Rails Developers
jQuery Presentation to Rails Developers
 
Introduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector GraphicsIntroduction to Canvas and Native Web Vector Graphics
Introduction to Canvas and Native Web Vector Graphics
 
Beyond the Standards
Beyond the StandardsBeyond the Standards
Beyond the Standards
 

Mehr von Eugene Lazutkin

Functional practices in JavaScript
Functional practices in JavaScriptFunctional practices in JavaScript
Functional practices in JavaScriptEugene Lazutkin
 
Express: the web server for node.js
Express: the web server for node.jsExpress: the web server for node.js
Express: the web server for node.jsEugene Lazutkin
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Eugene Lazutkin
 
Optimization of modern web applications
Optimization of modern web applicationsOptimization of modern web applications
Optimization of modern web applicationsEugene Lazutkin
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSEugene Lazutkin
 
Dojo for programmers (TXJS 2010)
Dojo for programmers (TXJS 2010)Dojo for programmers (TXJS 2010)
Dojo for programmers (TXJS 2010)Eugene Lazutkin
 
Exciting JavaScript - Part II
Exciting JavaScript - Part IIExciting JavaScript - Part II
Exciting JavaScript - Part IIEugene Lazutkin
 
Exciting JavaScript - Part I
Exciting JavaScript - Part IExciting JavaScript - Part I
Exciting JavaScript - Part IEugene Lazutkin
 
Dojo GFX workshop slides
Dojo GFX workshop slidesDojo GFX workshop slides
Dojo GFX workshop slidesEugene Lazutkin
 

Mehr von Eugene Lazutkin (17)

Service workers
Service workersService workers
Service workers
 
Advanced I/O in browser
Advanced I/O in browserAdvanced I/O in browser
Advanced I/O in browser
 
Streams
StreamsStreams
Streams
 
Functional practices in JavaScript
Functional practices in JavaScriptFunctional practices in JavaScript
Functional practices in JavaScript
 
Express: the web server for node.js
Express: the web server for node.jsExpress: the web server for node.js
Express: the web server for node.js
 
TXJS 2013 in 10 minutes
TXJS 2013 in 10 minutesTXJS 2013 in 10 minutes
TXJS 2013 in 10 minutes
 
Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.Practical pairing of generative programming with functional programming.
Practical pairing of generative programming with functional programming.
 
Optimization of modern web applications
Optimization of modern web applicationsOptimization of modern web applications
Optimization of modern web applications
 
OOP in JS
OOP in JSOOP in JS
OOP in JS
 
Pulsar
PulsarPulsar
Pulsar
 
SSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJSSSJS, NoSQL, GAE and AppengineJS
SSJS, NoSQL, GAE and AppengineJS
 
Dojo for programmers (TXJS 2010)
Dojo for programmers (TXJS 2010)Dojo for programmers (TXJS 2010)
Dojo for programmers (TXJS 2010)
 
Exciting JavaScript - Part II
Exciting JavaScript - Part IIExciting JavaScript - Part II
Exciting JavaScript - Part II
 
RAD CRUD
RAD CRUDRAD CRUD
RAD CRUD
 
Exciting JavaScript - Part I
Exciting JavaScript - Part IExciting JavaScript - Part I
Exciting JavaScript - Part I
 
Dojo GFX workshop slides
Dojo GFX workshop slidesDojo GFX workshop slides
Dojo GFX workshop slides
 
Dojo (QCon 2007 Slides)
Dojo (QCon 2007 Slides)Dojo (QCon 2007 Slides)
Dojo (QCon 2007 Slides)
 

Kürzlich hochgeladen

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

DojoX GFX Keynote Eugene Lazutkin SVG Open 2007

  • 1.
  • 2. What is DojoX GFX? It's a cross-platform vector graphics package ● written in JavaScript. Frequently referenced as dojox.gfx or dojo.gfx. ● Supported backends: ● SVG (Firefox, Opera, Webkit/Safari 3 beta). – VML (IE6, IE7). – Silverlight (IE6, IE7, Firefox, Safari). – Design decisions were driven by pragmatic ● considerations. Let's review what's available. ●
  • 3. Web gfx: VML Microsoft submitted VML to W3C in 1998. ● Since then it was augmented several times. – Pros: ● Available on IE6 and IE7: – 60-85% of all browsers (source: Wikipedia). ● No need to install anything. ● Cons: ● Antiquated, incomplete, bug-ridden, slow. – Documentation is misleading, lack of examples. – Persistent rumors that Microsoft will drop it in IE8. –
  • 4. Web gfx: SVG You know SVG, right? ● Pros: ● Mature, feature rich, well-documented. – There are several high-quality native implementations. – Cons: ● The market leader (IE) doesn't support it. –
  • 5. Web gfx: Canvas Part of HTML5 by WHATWG. ● Implements a procedural interface. ● Pros: ● Implemented by Safari, Firefox, Opera. – Fast for drawing static images. – Cons: ● No support for picture regeneration. – Limited support for mouse selection. – Usually available along with SVG, which makes its use – questionable in some cases.
  • 6. Web gfx: Silverlight Microsoft's answer to SVG and Flash. ● Pros: ● Finally something better than VML on IE! – Multi-platform: – «All major browsers on both Mac OS X and on Windows». ● Silverlight for Linux: Moonlight by Mono team. ● Rumored to replace VML in upcoming IE8. – Cons: ● Built on SVG blueprints, yet incompatible. – Not integrated with HTML DOM. – Requires a download. –
  • 7. Web gfx: Flash The king of web graphics. ● Pros: ● Adobe: installed on ~98.7% browsers (Wikipedia). – Mature, well-known technology. – Multi-platform (including IE!). – Cons: ● Multiple problems with interfacing to external – JavaScript. Forces to move everything to the Flash. ● No integration with HTML DOM and other browser facilities. ●
  • 8. Web gfx: Plug-ins All plug-ins may require a download! ● Major players: Java applet, ActiveX. ● Pros: ● Well-documented, mature, multi-platform. – Employs «real» languages. – Cons: ● Java applet: – No integration with HTML DOM... ● ActiveX: – Security issues, Windows IE-only technology... ●
  • 9. Web gfx: HTML Simulation of vector graphics with absolutely ● positioned <div>s, or variations of this technique. Pros: ● Multi-platform, doesn't need plug-ins. – Keeps everything in the familiar HTML/CSS domain. – Cons: ● Restricts expressiveness. – Consumes a lot of memory, slow. –
  • 10. DojoX GFX Loosely based on SVG concepts. ● Separation of concerns: ● Shape describes a geometry. – Group is a special shape, which is used to combine other ● shapes. Fill describes how to fill a shape. – Stroke describes how to draw an outline. – Font defines how to render text shapes. – Matrix describes a transformation. – Surface defines a drawing area. –
  • 11. Shape Available shapes: ● Path (using the SVG path language). – Rectangle (with rounded corners). – Polyline/polygon. – Ellipse. – Convenient shapes: – Circle. ● Line. ● Image. – Text. – TextPath (highly experimental). –
  • 12. Fill Solid fill. ● Any color object would do: – «red», «0xF00», «0xFF0000» ● «rgb(255, 0, 0)», «rgba(255, 0, 0 ,1)» ● {r: 255, g: 0, b: 0, a: 1}, [255, 0, 0, 1] ● Linear gradient ● Supports multiple color steps + line. – Radial gradient ● Supports multiple color steps + center + radius. – Tiled pattern. ●
  • 13. Stroke Supports color, thickness, caps, and joins. ● Styles: ● Solid, ShortDash, ShortDot, ShortDashDot, – ShortDashDotDot, Dot, Dash, LongDash, DashDot, LongDashDot, LongDashDotDot. Caps: ● Butt, Round, Square. – Joins: ● Round, Bevel, Miter (specified by a number). –
  • 14. Font Supports family, style, variant, weight, and size. ● Styles: ● Normal, Italic, Oblique. – Variants: ● Normal, Small-caps. – Weights: ● Normal, Bold, 100-900. –
  • 15. Matrix Traditional 2D matrix. ● Numerous helpers: ● Constants: identity, flipX, flipY, flipXY. – Translation: translate(). – Rotation: rotate(), rotateg(), rotateAt(), rotategAt(). – Scaling: scale(), scaleAt(). – Skewing: – skewX(), skewXg(), skewXAt(), skewXgAt(). ● skewY(), skewYg(), skewYAt(), skewYgAt(). ● Normalization, combination, inversion, and so on. –
  • 16. Group & Surface Group: ● Used to combine several shapes together. – It is possible to have embedded groups. ● Supported operations: – Matrix transformations. ● Event processing. ● Propagation of default fills and strokes is planned. ● Surface: ● Hosts a drawing area. – Serves as a top-level group for all shapes. –
  • 17. Notes DojoX GFX takes advantage of JavaScript: ● All descriptor objects are JSON-compatible. – Opens a possibility of network streaming. ● Almost all setters are chained. – Example: surface.createRect(r).setFill(f).setStroke(s); ● Duck-typing is used almost everywhere. – Example: shape.setTransform({dx: 10, dy: 10}); ● Supports a wide variety of color representations. – Separates geometry from visual parameters. – Keeps all relevant information together. – Easy to define a palette or theme (used in charting). ●
  • 18. Demo
  • 19. Upcoming More backends. ● We need to support IE better. – Animation. ● Native animation APIs (SVG, Silverlight). – Fall back to Dojo animation facilities (VML). – DojoX GFX 3D ● Restricted subset of 3D graphics. – Geared towards charting. – DojoX Charting ● New and improved. –
  • 20. DojoX GFX 3D Google Summer of Code 2007 ● project. Student: Kun Xi. ● Graduate student of the George – Washington University. Majored in Computer Engineering. – Previous project: Dojo Summer of – Code 2006 — Dojo GFX.
  • 21. DojoX GFX 3D pics Demonstration of some techniques. ●
  • 22. DojoX Charting Google SoC 2007 project. ● Student: Neil Joshi. ● Graduate student of Ryerson – University in Toronto, ON, Canada. Majored in Electrical Engineering. – Supervisor: Tom Trenka. ● Veteran developer with SitePen. – Owner of DojoX Charting module. –
  • 23. Charting demo Demonstration of technical prototypes. ●