SlideShare a Scribd company logo
Zoomcharts @ DevClub.lv
Zoomcharts @ DevClub.lv
NOT another HTML5 charts library
● Interactive
● Fast
● Touch
● Big Data
What is ZoomCharts
DOS 6.2
● 320x240x8bpp
● Direct access to pixels on screen
● Assembler for Performance
Web has finally caught up in the graphics department
● Multiple browsers & rendering technologies
● Multiple resolutions
● Performance varies by browser & device
A long time ago
Graphics
Challenges
Quality assurance
Overview
● We write in Coffeescript
● Commit to GITHub
● Build system in Javascript
● Debug in Chrome
● Run automated tests
● Like WebStorm (and Vim)
Development setup
Canvas
(fast)
SVG
(slow)
Graphics
WebGL
(<50%)
Canvas
Interactive animations
Graceful degradation
● Raphael
● Hammer.js
● Leaflet
● Moment.js
Third party libraries
● Responsive design
● Big screen resolutions
● Safari
● HTML on canvas
Challenges
Nice layout Not so nice
Responsive design
Big Screen Resolution
Use devicePixelRatio for sharp rendering
No hardware acceleration beyond 2048x2048
● 100% cpu → input events blocked
● Weird browser lockups
● Dumb code fixes stuff:
width = r1 - r0
if r0 + r1 == -2
r0 = 0
r1 = 0
context.beginPath()
Safari
HTML on canvas
● DOM is SLOW
● Parse basic HTML markup and render manually
● Text caching helps
● Trial → support → buy
● 1 day issue resolution
● #1Tell me what I did wrong
● #2 Can you do ...
Support
Automated tests on every GIT push
Testing
Automatically:
● Compare images
● Record performance
● Errors in console
Testing
● Next step –
record and playback
Interactive testing
● Interactive
mode
● Automated
– Selenium API
BrowserStack
Chrome Dev tools (F12)
● Debugging
● Profiling
● Timeline
Debugging
Debugger
Debugger
if (bad_stuff){
debugger;
}
Profiler
Profiler
Timeline
Remote debugging
https://developer.chrome.com/devtools/docs/remote-debugging
● More charts
● Extension API
● Memory allocation tracking
● WebGL
Future
We are looking for a statically typed language:
● Error checking
● Performance
● Superior minification
● Easy to write and read
● Easy to call from JS
Future
Zoomcharts @ DevClub.lv
 
Feedback
Sponsors of XXVI DevClub.lv
Custom build script
● Compile
● Minify
● Extract documentation
● Embed customer data
Building

More Related Content

PPTX
Website Speed :: Fox Valley Computing Professionals, September 2014
PPTX
Beating canvas 2 d in its own territory webgl+tesspathy
PDF
IntoWebGL - Unite Melbourne 2015
PDF
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
PDF
HTML GL - возьмите столько FPS, сколько вам нужно!
PPTX
Devteach 2017
PDF
Android app to the challenge
PPTX
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Website Speed :: Fox Valley Computing Professionals, September 2014
Beating canvas 2 d in its own territory webgl+tesspathy
IntoWebGL - Unite Melbourne 2015
HTML GL - 60 FPS and amazing effects by rendering HTML/CSS in WebGL, framewor...
HTML GL - возьмите столько FPS, сколько вам нужно!
Devteach 2017
Android app to the challenge
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt

Viewers also liked (16)

PDF
Blueprint 2005 Companies
PPTX
Agen resmi transfer factorindonesia
PDF
2015 Kimberly Hall Resume
PPTX
Digital resources to learn english!
PDF
Shaykh Fadhlalla Haeri - Q&A
PDF
etdfyhjhk
PPTX
Flowers to Hyderabad
PPTX
Bb page
PPTX
regular and irregular verbs
DOCX
Mariana e iskra acces
PPTX
PDF
correos
PDF
Final Capstone Paper
PDF
CORREOS ELECTRONICOS
PPTX
Engl 01 a _online_2016
Blueprint 2005 Companies
Agen resmi transfer factorindonesia
2015 Kimberly Hall Resume
Digital resources to learn english!
Shaykh Fadhlalla Haeri - Q&A
etdfyhjhk
Flowers to Hyderabad
Bb page
regular and irregular verbs
Mariana e iskra acces
correos
Final Capstone Paper
CORREOS ELECTRONICOS
Engl 01 a _online_2016
Ad

Similar to Zoomcharts @ DevClub.lv (20)

PPTX
Html5 (games)
PDF
Building a Better Web with HTML5 and CSS3
PDF
Writing Tools using WebKit
PDF
Analyzing Web App Performance using Chromium DevTool
PDF
Running HTML5 Mobile Web Games at 60fps
PDF
Korea linuxforum2014 html5game-sangseoklim
PPTX
Html5 Canvas and Mobile Graphics
PDF
Ustream Techtalks: Google Chrome Developer Tools
PDF
Towards shipping Ozone/Wayland (BlinkOn 10)
ODP
Java Performance: What developers must know
PDF
Rapid and Reliable Developing with HTML5 & GWT
PDF
Chrome Dev Tools
PDF
GraphQL Bangkok Meetup 6.0
PDF
Building a game engine with jQuery
PDF
Building a Multithreaded Web-Based Game Engine Using HTML5/CSS3 and JavaScrip...
PDF
mloc.js 2014 - JavaScript and the browser as a platform for game development
PDF
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
PPTX
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
PDF
Smalltalk for the Web & Beyond (ESUG 2025)
PPTX
Html5 Game Development with Canvas
Html5 (games)
Building a Better Web with HTML5 and CSS3
Writing Tools using WebKit
Analyzing Web App Performance using Chromium DevTool
Running HTML5 Mobile Web Games at 60fps
Korea linuxforum2014 html5game-sangseoklim
Html5 Canvas and Mobile Graphics
Ustream Techtalks: Google Chrome Developer Tools
Towards shipping Ozone/Wayland (BlinkOn 10)
Java Performance: What developers must know
Rapid and Reliable Developing with HTML5 & GWT
Chrome Dev Tools
GraphQL Bangkok Meetup 6.0
Building a game engine with jQuery
Building a Multithreaded Web-Based Game Engine Using HTML5/CSS3 and JavaScrip...
mloc.js 2014 - JavaScript and the browser as a platform for game development
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
Smalltalk for the Web & Beyond (ESUG 2025)
Html5 Game Development with Canvas
Ad

Recently uploaded (20)

PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
L1 - Introduction to python Backend.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Digital Strategies for Manufacturing Companies
PPTX
ai tools demonstartion for schools and inter college
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Introduction to Artificial Intelligence
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo POS Development Services by CandidRoot Solutions
Operating system designcfffgfgggggggvggggggggg
L1 - Introduction to python Backend.pptx
CHAPTER 2 - PM Management and IT Context
Digital Strategies for Manufacturing Companies
ai tools demonstartion for schools and inter college
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Essential Infomation Tech presentation.pptx
Introduction to Artificial Intelligence
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How to Migrate SBCGlobal Email to Yahoo Easily
How to Choose the Right IT Partner for Your Business in Malaysia
VVF-Customer-Presentation2025-Ver1.9.pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
Reimagine Home Health with the Power of Agentic AI​
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf

Zoomcharts @ DevClub.lv

Editor's Notes

  • #3: Have you built a page with charts? This will be about graphics and performance. If you have questions – ask right away.
  • #4: How many of you have worked with a charts library. Click – features.
  • #5: (click) web caught up
  • #6: How many of you have worked with a charts library. Click – features.
  • #7: Around 140 files of coffeescript GitHub just works Chrome has most robust dev tools.
  • #9: Very mathematical. Need to bring your own coordinates. Approx 20 functions
  • #10: Only two animations Affects all the objects
  • #11: Can be smart about what objects to paint Frame rate is only limited by number of objects visible. Changes are “free”.
  • #12: We like to build our own stuff Light usage – libs are fine Core tech – write your own Your use case is always special
  • #15: Just upscale the canvas. No way to detect touch zoom. (click) No HW accel beyond 2048
  • #16: Safari is – different (click) 100 cpu – input blocked (click) Browser lockups (click) Wierd fixes
  • #17: Approx 30% all render to update info popup on every frame Support basic stuff like &amp;lt;i&amp;gt; &amp;lt;b&amp;gt; &amp;lt;u&amp;gt; &amp;lt;br&amp;gt;
  • #18: (click) 1 day resulutuin (click) whats #1 support question (click) #2
  • #19: Little custom testing script. Approx 160 pages with charts. Test runs
  • #20: Working on automated visual diff. Once you have released something, it has to stay the same. Big releases can break things.
  • #21: Record pointer events Also record timing information for animations Check image Check events fired by chart
  • #23: We spend much of the time figuring out what went wrong.
  • #24: Inspect program execution step by step. Set breakpoints
  • #25: Can invoke manually by putting debugger in your code.
  • #26: Profiler – record what happenes behind the scenes. Flame chart – quick overview.
  • #27: Nice to have idle &amp;gt; 50%. Program time goes to DOM processing and rendering. Detailed drilldown on what consumes what. Number of calls would be nice, but not available.
  • #28: See what your frame rate is. Marks out possible issues for you. Avoid Dom queries that force re-flow. Like .width.
  • #29: Appeared a few years ago. Can do for both Android and IOS (click) A bit tricky to set up on Android, see link.
  • #31: (click) Benefits (click) Requirements Typescript? Dart? Flow?
  • #35: Customs script – better fine tuning.