This document provides a summary of a presentation about visualizing large data sets with Wijmo Enterprise. The presentation covers an introduction to Wijmo, challenges of web development today, techniques for visualizing large datasets using Wijmo charts and grids, and includes live demos. Specifically, it discusses how to optimize charts for large datasets, use grids to visualize large amounts of data, handle the data layer with CollectionView, and visualize qualitative data with annotations and drill-down capabilities.
Inside Wijmo 5, a Large-scale JavaScript ProductChris Bannon
GrapeCity has been developing JavaScript products for over six years. The browser landscape has changed greatly since we started and we have learned a lot along the way. Today, we manage Wijmo 5, a suite of JavaScript UI controls, specializing in a high-performance datagrid and powerful charts. In this session, we will give you a look inside our project. We will go over the collections of tools, frameworks, languages and patterns that we have refined over the years. You walk away from this session with useful tips for managing large-scale JavaScript applications.
In this session we will talk about the Wijmo 5 control suite. What is it, what makes it unique, how does it help developers, how can you start using it today, how will it evolve?
Introduction
- what is Wijmo 5? (next-generation of HTML/JS Controls)
- modern browsers: EcmaScript 5/IE9
- no jQuery, no jQueryUI
- TypeScript: object-orientation, type-safety, productivity
- Interop (Angular 1.x, Knockout, more to come...)
Wijmo Infrastructure
- Events
- Control
- CollectionView (easier porting from Silverlight)
- Others (Globalization, HttpRequest, Animations, etc: no jQuery)
FlexGrid
- XAML vs Angular (easier porting from Silverlight)
- features, size, performance
- extensibility: extend class, add functionality
examples: filter, grouping, row details, etc
FlexChart
- multiple types
- features, size, performance
- extensibility: extend class, add functionality
examples: financial, ranges, analytics, etc
Others (time permitting...)
- Input, Gauges
- features, size, performance
In this session we will talk about the AngularJS application framework. What is it, why is it so successful, how does it help developers, how can you start using it today, how will it evolve?
Introduction
- a brief history of the evolution of HTML and JavaScript
- why do we need application frameworks?
Angular 1.x
- what is it?
- what are the main design goals?
- what makes it different from other frameworks?
- how does it work?
example: the simplest Angular application
- the power of custom directives
example: a simple validation directive
example: a simple Google Maps control directive
Angular 2.0
- what is it?
- how will it improve upon Angular 1.x?
- when will it become available?
- will it change everything?
Please join our live launch event for Wijmo 5, our brand new generation of JavaScript Controls! With the launch of Wijmo 5 we’ll introduce a new HTML5/JavaScript product that takes full advantage of all the latest and greatest web technologies without making compromises to support legacy browsers. This webcast will focus on the evolution of JavaScript controls, from jQueryUI-based widgets to Wijmo 5.
Learn to port desktop applications to HTML5 from an experienced web developer. We'll help you minimize the cost of learning new paradigms when you're migrating from MVVM, .NET and XAML to web.
You'll leave this 60-minute session understanding how to create nearly-identical XAML and HTML5 applications in a smooth transition!
A Smooth Transition to HTML5 Using MVVMChris Bannon
How difficult is it to port Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. We take advantage of tools like KnockoutJS and Wijmo to make the process even easier. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
Inside Wijmo 5, a Large-scale JavaScript ProductChris Bannon
GrapeCity has been developing JavaScript products for over six years. The browser landscape has changed greatly since we started and we have learned a lot along the way. Today, we manage Wijmo 5, a suite of JavaScript UI controls, specializing in a high-performance datagrid and powerful charts. In this session, we will give you a look inside our project. We will go over the collections of tools, frameworks, languages and patterns that we have refined over the years. You walk away from this session with useful tips for managing large-scale JavaScript applications.
In this session we will talk about the Wijmo 5 control suite. What is it, what makes it unique, how does it help developers, how can you start using it today, how will it evolve?
Introduction
- what is Wijmo 5? (next-generation of HTML/JS Controls)
- modern browsers: EcmaScript 5/IE9
- no jQuery, no jQueryUI
- TypeScript: object-orientation, type-safety, productivity
- Interop (Angular 1.x, Knockout, more to come...)
Wijmo Infrastructure
- Events
- Control
- CollectionView (easier porting from Silverlight)
- Others (Globalization, HttpRequest, Animations, etc: no jQuery)
FlexGrid
- XAML vs Angular (easier porting from Silverlight)
- features, size, performance
- extensibility: extend class, add functionality
examples: filter, grouping, row details, etc
FlexChart
- multiple types
- features, size, performance
- extensibility: extend class, add functionality
examples: financial, ranges, analytics, etc
Others (time permitting...)
- Input, Gauges
- features, size, performance
In this session we will talk about the AngularJS application framework. What is it, why is it so successful, how does it help developers, how can you start using it today, how will it evolve?
Introduction
- a brief history of the evolution of HTML and JavaScript
- why do we need application frameworks?
Angular 1.x
- what is it?
- what are the main design goals?
- what makes it different from other frameworks?
- how does it work?
example: the simplest Angular application
- the power of custom directives
example: a simple validation directive
example: a simple Google Maps control directive
Angular 2.0
- what is it?
- how will it improve upon Angular 1.x?
- when will it become available?
- will it change everything?
Please join our live launch event for Wijmo 5, our brand new generation of JavaScript Controls! With the launch of Wijmo 5 we’ll introduce a new HTML5/JavaScript product that takes full advantage of all the latest and greatest web technologies without making compromises to support legacy browsers. This webcast will focus on the evolution of JavaScript controls, from jQueryUI-based widgets to Wijmo 5.
Learn to port desktop applications to HTML5 from an experienced web developer. We'll help you minimize the cost of learning new paradigms when you're migrating from MVVM, .NET and XAML to web.
You'll leave this 60-minute session understanding how to create nearly-identical XAML and HTML5 applications in a smooth transition!
A Smooth Transition to HTML5 Using MVVMChris Bannon
How difficult is it to port Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. We take advantage of tools like KnockoutJS and Wijmo to make the process even easier. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
Go over key aspects of creating an Angular 2 SPA application, and learn how to use GrapeCity Wijmo 5 controls there, and what are the benefits that Wijmo 5 brings. Find out some technical details of Wijmo 5 for Angular 2 interop implementation.
This presentation talks about an Ekino (www.ekino.com) application made for Microsoft Techdays 2012 in Paris.
This application is based on many new technologies : HTML5, CSS3, IndexedDB, File API, D'n'D, SPA, IE10.
Building web applications using kendo ui and the mvvm patternAspenware
XAML developers love the Model-View View-Model (MVVM) pattern. Kendo UI is a JavaScript framework that enables this pattern for web based applications. It takes the client side coding model developers are familiar with and provides it to the web world. This talk will define the MVVM pattern and the benefits of using it. It will also show how you can use Kendo UI and ASP.NET to build responsive, robust applications that feel like desktop applications.
Lessons Learned:
-MVVM Pattern
-Kendo UI and why to use it
-How to wire up Kendo UI and ASP.NET
You know what iMEAN? Using MEAN stack for application dev on InformixKeshav Murthy
You know what iMEAN? Using MEAN stack for application dev on Informix. MongoDB, ExpressJS, AngularJS, NodeJS combine to form a MEAN stack for quick appdev. iMEAN is using the same stack to develop applications on Informix.
Details the basics of setting up a Sencha Touch & ExtJS MVC application.
Associated source code here:
https://github.com/aaronwhite/Sencha-Touch-MVC---Example-App
https://github.com/aaronwhite/ExtJS-MVC-Example-App
Are you having trouble with all the things happening in web technology lately? Frustrated with the rate of change? Hard to keep up? Then we have good news for you: a little while ago, we at Jayway did a tech radar on web technology and we would like to share it with you.
Some of the technologies we will cover are: ECMAScript 6, React, Angular, Ember, Isomorphic/Universal web applications, Unidirectional client data flow, Backend-as-a-Service, Meteor, and Static site generators.
We will also do a small comparison of the web tech radar we did 18 months ago, and draw conclusions from the differences and the current rate of change.
Finally, we'll give some advices for navigating in the ever changing landscape of new web technology.
This meetup will bring us back to basics with a bootstrapping session on building an all Javascript web application on a MEAN Stack:
• MongoDB - NoSQL DB
• ExpressJS - Server Application Framework
• AngularJS - Client Application Framework
• NodeJS - Application Platform
I'll cover the basics of getting bootstrapped with Node.js and building out a fully featured web application from backend-to-frontend. I'll highlight some of the advantages of an all javascript web application as well as show some development tips leveraging gruntJS based on Nate's presentation last meetup.
A supportive language is that which gives the optimal output. Asp.net provides that optimization by providing alternatives controls and one of the best is “Gridview”. We are more prior to Gridview rather than to tables as gridview makes our task easier. This book is a complete tutorial book of C# gridview where you can easily learn and play with gridview events and methods in a seamless manner.
Go over key aspects of creating an Angular 2 SPA application, and learn how to use GrapeCity Wijmo 5 controls there, and what are the benefits that Wijmo 5 brings. Find out some technical details of Wijmo 5 for Angular 2 interop implementation.
This presentation talks about an Ekino (www.ekino.com) application made for Microsoft Techdays 2012 in Paris.
This application is based on many new technologies : HTML5, CSS3, IndexedDB, File API, D'n'D, SPA, IE10.
Building web applications using kendo ui and the mvvm patternAspenware
XAML developers love the Model-View View-Model (MVVM) pattern. Kendo UI is a JavaScript framework that enables this pattern for web based applications. It takes the client side coding model developers are familiar with and provides it to the web world. This talk will define the MVVM pattern and the benefits of using it. It will also show how you can use Kendo UI and ASP.NET to build responsive, robust applications that feel like desktop applications.
Lessons Learned:
-MVVM Pattern
-Kendo UI and why to use it
-How to wire up Kendo UI and ASP.NET
You know what iMEAN? Using MEAN stack for application dev on InformixKeshav Murthy
You know what iMEAN? Using MEAN stack for application dev on Informix. MongoDB, ExpressJS, AngularJS, NodeJS combine to form a MEAN stack for quick appdev. iMEAN is using the same stack to develop applications on Informix.
Details the basics of setting up a Sencha Touch & ExtJS MVC application.
Associated source code here:
https://github.com/aaronwhite/Sencha-Touch-MVC---Example-App
https://github.com/aaronwhite/ExtJS-MVC-Example-App
Are you having trouble with all the things happening in web technology lately? Frustrated with the rate of change? Hard to keep up? Then we have good news for you: a little while ago, we at Jayway did a tech radar on web technology and we would like to share it with you.
Some of the technologies we will cover are: ECMAScript 6, React, Angular, Ember, Isomorphic/Universal web applications, Unidirectional client data flow, Backend-as-a-Service, Meteor, and Static site generators.
We will also do a small comparison of the web tech radar we did 18 months ago, and draw conclusions from the differences and the current rate of change.
Finally, we'll give some advices for navigating in the ever changing landscape of new web technology.
This meetup will bring us back to basics with a bootstrapping session on building an all Javascript web application on a MEAN Stack:
• MongoDB - NoSQL DB
• ExpressJS - Server Application Framework
• AngularJS - Client Application Framework
• NodeJS - Application Platform
I'll cover the basics of getting bootstrapped with Node.js and building out a fully featured web application from backend-to-frontend. I'll highlight some of the advantages of an all javascript web application as well as show some development tips leveraging gruntJS based on Nate's presentation last meetup.
A supportive language is that which gives the optimal output. Asp.net provides that optimization by providing alternatives controls and one of the best is “Gridview”. We are more prior to Gridview rather than to tables as gridview makes our task easier. This book is a complete tutorial book of C# gridview where you can easily learn and play with gridview events and methods in a seamless manner.
Watch full webinar here: https://buff.ly/2mHGaLA
What started to evolve as the most agile and real-time enterprise data fabric, data virtualization is proving to go beyond its initial promise and is becoming one of the most important enterprise big data fabrics.
Attend this session to learn:
• What data virtualization really is
• How it differs from other enterprise data integration technologies
• Why data virtualization is finding enterprise-wide deployment inside some of the largest organizations
Excalibur: best practices for virtual desktop operations leveraging Citrix Di...Citrix
Project Avalon Excalibur delivers a powerful new unified architecture for simple, streamlined deployment of Windows apps and desktops across multiple server and desktop OS platforms. But we haven't stopped there. A successful deployment requires tools to monitor virtual desktops and applications. This session will cover streamlining of support functions, new analytics for performance management and capacity planning and best practices for aligning IT admin roles.
BI Team @ LinkedIn hosted a user group meeting for MicroStrategy customers in bay area. Presentation includes information about LinkedIn, concepts of metadata driven model for business dashboards, customizations using SDK, JSP and JQUERY.
Overview of the paper "Cloud Types for Eventual Consistency" by Burckhardt et al. presented at Oregon State University for "Software Evolution for Mobility" class on Oct 10th 2013. Presentation time: 20 min
]project-open[ Reporting & Indicators Options: This tutorial explains a number of different ways to extract information from ]project-open[ as a kind of “report”
Analyzing petabytes of smartmeter data using Cloud Bigtable, Cloud Dataflow, ...Edwin Poot
The Energy Industry is in transition due to the exponential growth of data being generated by the ever increasing number of connected devices which comprise the Smart Grid. Learn how Energyworx uses GCP to collect and ingest this IoT data with ease and is helping her customers uncover hidden value from this data, allowing them to create new business models and concepts.
Weekly #105: AutoViz and Auto_ViML Visualization and Machine LearningBill Liu
https://learn.xnextcon.com/event/eventdetails/W20040310
I will describe what is available in terms of Open Source and Proprietary tools for automating Data Science tasks and introduce 2 new tools: one to visualize any sized data set with one click, another: to try multiple ML models and techniques with a single call. I will provide the Github Repos for both for free in the talk.
IBM Rational HATS Customized Amazing Features by Royal CyberRoyal Cyber Inc.
IBM Rational HATS is inarguably the best tool for presenting old green screen applications in modernized manner rapidly and efficiently. HATS modernized version can be prepared for various output mediums without making changes or migrating anything from the existing backend applications.
Similar to Visualizing large data sets with wijmo enterprise webinar (20)
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
2. Visualizing Large Data Sets With Wijmo Enterprise
Approaches and Experiences
Ross Dederer
Wijmo
3. About Me
Ross Dederer
Wijmo
Pittsburgh, PA
Developer Relations
Have background in complex Reporting software
ActiveReports
3
4. What I will talk about/Agenda
Introduction of Wijmo and a history of the product.
Web Development focuses and challenges today
How to visually optimize a chart for large dataset
How to use a grid control to visual large amounts of data.
Live Demos
4
6. What is Wijmo 5?
JavaScript UI Controls
Zero dependencies
Specialize in data grids and charts
Includes the famous FlexGrid control
Focus on performance
Small core controls and extensible
Offer additional features as optional extensions
6
7. What Makes Wijmo 5 Special?
True Controls (Control Classes like in .NET)
Not Widgets
Control
//Initialize
var myFlexGrid = new wijmo.grid.FlexGrid('#myFlexGrid');
//Show Row Headers
myFlexGrid.headersVisibility = wijmo.grid.HeadersVisibility.All;
Widget
//Initialize
$('#mywijgrid').wijgrid();
//Show Row Headers
$('#mywijgrid').wijgrid('option', 'showRowHeader', true);
7
10. Data
Qualitative vs Quantitative Data
What are organizations focusing on, challenges ( From SAS 2013 )
Data on the Web
Tricks to avoid timeouts
What do you do with all of that data when you get it?
Mobile vs Desktop
How do we visualize all this data
10
11. Data Visualization
Data Visualization is the presentation of data in a graphical format.
Help your end users see things that aren’t obvious looking at RAW data.
This can be accomplished via
Charts – more visual, take the #’s out of it.
Grids – Doesn’t need to be as confusing as a spreadsheet.
Interactivity
Tool Tips
Annotation Layer
11
12. Performance on the web
Feature
Why is it important? Greg Linden
Google Dev* ( 2015 ) Critical Rendering Path
Optimizing Content Efficiency
Rendering Performance
Minimize HTTP Requests
Utilize Client more
How quickly can users get access to data***
Still considered performance?
12
Amazon
100 ms Delay = -1% in revune
Bing
1.5 s Delay = -1.6% decrease in satisfaction
Google
10 s vs 30 s seach = 25% fewer searches
Results (2014): Speed is critical
*Greg Linden
13. Web Development Today – Screen Size
Today ( Layout )
Desktop Screens
Tablet screens
Mobile Device Screens
Future
Apple Watch
Google Glass
Oculus Rift (?)
13
18. Handling the Data Layer - CollectionView
Several Classes implements the Wijmo CollectionView
iCollectionView: current record management, custom sorting, filtering, grouping
iEditableCollectionView: methods for editing, adding, and removing items
iPagedCollectionView: provides paging for navigation through large numbers of items
MVVM
Performance
Demo
18
20. FlexChart
One Flexible API
Many Extensibility points
Defined by ChartType
Column and Bar
Scatter
Line and LineSymbols
Area
Spline and SplineSymbols
SplineArea
Stacking
Dynamic Charts
Uses ICollectionView internally changes are updated
automatically
20
21. FinancialChart
Extension of FlexChart
Analytics also extension
Chart Types
Heikin-Ashi
Line Break
Renko
Kagi
ColumnVolumne
Other volume charts
Other Features
21
22. Stacking and Multiple Chart Types
More than one series
Stacked or Stacked 100 percent
X amount of charts in one
single chart view
Add a FlexChart Control and
then add X number of series and
define their chart types
Composite Charts
Convert many charts into one
Utilize labels
22
23. Using Composite for Responsive FlexCharts
Above – Composite Charts in response to
smaller screen size. Legend has been
enabled
Left – View on Large Displays
23
24. Logarithmic Data / Dataset
How do we deal with Outliers?
How do scale the Axis?
In terms 1, 10, 100, 1,000?...
Wijmo Globalization
24
DataSet:
$scope.countries = [
{ country: 'Luxembourg', pop: 558514, gdp: 62395 },
{ country: 'Norway', pop: 5156463, gdp: 500244 }, …
29. Analytics - Module
Wijmo.chart.analytics
Function Series
Trend Lines
Simple
Weighted
Exponential
Triangular Types
Supports all trend lines that Microsoft Excel supports
29
30. Annotations
Annotation Layer
Display data points on top of the
Chart surface
Has built in shapes
Can provide qualitative data
30
31. Drill-Down
Present Data in digestible chunks
Widely used in Reports and Dashboards
Use bread crumbs ( can define aggregate )
Use Styling
31
34. Grids and Tables – FlexGrid
Grids allow us to present entire dataset to end user
Make FlexGrid control responsive
CollectionView
iCollectionView
Class keeps track of changes made to data.
Virtual Scrolling
Too load or not too load
Performance
34
35. Grouping and GroupPanel
Group Data Sets
Drag and Drop UI
Dialog (Excel-like) for custom grouping
Grouping using itemFormatter
Can eliminate scrolling
Live Demo
Group Panel
Custom Grouping
35
36. ItemFormatter
ItemFormatter - FlexGrid and Chart
Provide native editors
Wijmo input control handles most data input cases
Optimized for Mobile and Desktop
Custom innerHTML Cells for chart and grid
API – getCellData()/setCellData()
36
37. Scrolling
Large data sets are ultimately going to lead to the user having to scroll down
through the page
Tricks to avoid scrolling
How do you load over a million rows into a table in < few seconds
Only DOM elements that are needed for viewport + buffer
Is scrolling the same on Desktop and Mobile
No, will show In demo
Live Demo using Chrome Emulator
37
38. Filtering/Searching – Responsiveness
Searching vs Filtering
Filtering – searching data quickly
Not sure what your looking for
One single search box – multiple criteria
Demo this
Live Demos
38
Large/Desktop
Screen
Tablet
Mobile
39. DetailRow
Extension of FlexGrid
FlexGridDetailProvider
class
Rich API, highly
customizable
Can have one or more
detail rows visible
Aware of its context
39
43. Resources
Searching – One single search box for all, multiple searches – TR asked for it
Filtering too much IU?
Get rid of custom cells
43
Editor's Notes
Welcome everyone, thank you all for attending the Visualizing Large Data Sets with Wijmo Enterprise webcast. This session will be recorded and put on our website wijmo.com
My Name is Ross Dederer. I work in developer relations here at Grapecity, specifically for the Wijmo product. Before I joined Developer Relations, I worked on the support team for one of our reporting solutions so I have a background in reporting as well . I am joined by Chris Bannon the Product Manager for Wijmo. Chris will be joining us today to answer any questions you guys have during the presentation. Chris gave a webcast on Inside Wijmo5, earlier in the month, I encourage you to check it out if you haven’t already. His video like this one will be available on Wijmo.com
So this webcast will be about 45 minutes long, during that time, I have some slides and some demos online to share with you all. Whatever time is left at the end I will reserve for discussion or Q&A.
To begin, let me outline what we are going to be covering << this afternoon>>.
First I want to introduce Wijmo Enterprise and give a brief history of how the product got where it is today. This is mainly for those who have never seen Wijmo before or maybe you have but its been a few months since you looked at it and you aren’t familiar with some of our new offerings. As always. Check the website regularly for updates and additional content like this webcast.
After I have introduced Wijmo Enterprise, I want to spent some time talking about where web development is today and what areas I have seen developers focusing on and some of the challenges they are to facing. In my discussions, I have found that it comes down to the fact that data is getting larger and more complex, performance is playing a more important role, and the adaptation of the ‘mobile web’ which is creating this responsive design buzz around the web world..
In order to introduce FlexGrid and FlexChart, I am going to need to introduce everyone to our CollectionView which is our powerful MVVM data layer.
Forthly, I want to talk about how we can visually optimize a chart for displaying large complex data. Wijmo Enterprise handles this with our FlexChart control.
Lastly, I want to show you how you can optimize our FlexGrid control to display data in a meaningful way that is user friendly.
For each of these controls, I will introduce it, spend a few slides talking about some relevant features when it comes to creating performant, responsive, data visualization controls, and then show how you can use these features to greatly enhance the behavior and usability of your data driven web-application powered by Wijmo Enterprise.
So What is Wijmo Enterprise?
Let me introduce the flagship product in WE, Wijmo5.
Collection of JavaScript User Interface controls.
When we talk about performance, loading as little as possible at every step is key and Wijmo 5 is great because it has zero dependencies unlike w3.
Grapecity and ComponentOne have been focusing on Data Grids and Charts for over 25 years across almost all of the platforms. Included in the offering of Wijmo5 is the FlexGrid if you have used it before. A few years ago Microsoft was including it as a control in visual studio in the VB days.
Focus on Performance from day1, focusing on small, lightweight, extensible controls, which I will be demoing.
So what makes wijmo5 so unique and what is the biggest difference between Wijmo3 and Wijmo5? Well, it’s the way you interact with the controls. Lets discuss it.
DEMO: www.wijmo.com
In 2011 ECMAScript5 was release. Talking about ECMASCRIPT is the topic for an entirely different talk but let me point out the major differences and the most important features that it provides us.
Go over the code on the screen
Advantages of Controls -> Re usability etc
Wijmo 5 is modular. The core is required, everything else is optional.
Modules are small (less than 100k minified).
The core contains general-purpose classes such as Event and CollectionView and globalization.
FlexGrid is our data grid, with the same object model as the XAML version.
FlexChart is our chart component, with support for multiple data types.
Input contains controls such as ComboBox, InputDate, InputTime, InputNumber, etc.
All controls are MVVM-compatible with object modes similar to their XAML counterparts.
All this makes creating HTML5 applications as easy as creating Silverlight applications.
And it also makes porting Silverlight applications much easier.
Now that we have an understanding of Wijmo’s aritecture, lets talk about web development today.
www.Wijmo.com
Before we can begin talking about how to visualize data is important to understand a few things about data. In most web applications, the data object boils down to two different types Quantitative vs Qualitative data:
Quantitative data - Numerical data that shows the who, what, when and where.
Qualitative data - Non-numerical data that demonstrates the why or how.
For those of us who have used Google Analytics, it provides a lot of qualitative data such has who has come to your site, how they got there, and what they did when they did get there. What it doesn’t tell you is why? Well, we can use things like bounce rate and other things to answer those questions but what challenges in general does representing data have:
Displaying meaningful results as fast as possible
Dealing with outliers
Changing the interactivity based on device
As well as some other optimization such as grouping
----
So what do we do with the data once we get it? We need to visualize it somehow
Data Visualization is defined as the presentation of data in a graphical format. This is great because humans are NOT the best at looking at RAW data and seeing the “bigger picture”, no pun intended. When I say RAW I am referring to a JSON string or something like that.
We visualize this generally using Grids and Charts
Visualizing data isn’t always the complete solution, interacting with the data is equally as important as visualizing itI will introduce some features of the controls that really allow to make our data very interactive. . If you want to take your application to the next level, you can add some analytics to your grids and charts as well, which I will show. This is an importance concept because you can put the power in the hands of the end user and don’t need a developer to hand every use case.
SO
WE have talked a bit about data, and visualizing it. Lets talk about performance.
In the web, performance is a feature of a great application. We all know and understand how important performance is. We all can agree that the speed at which your application performs is never fast enough..
Performance and bounce rate have a lot in common. Bouncing rate is an important factor that every webmaster should take into account. Bounce Rate is the percentage of visitors to a particular website who navigate away from the site after viewing only one page. Basically, in terms of UI design, if someone looks at your homepage on a mobile device and leaves right away, you probably need to do some work on your mobile layout and design, which I will be getting into more with Grids.
So why is performance so important. Lets talk about some research by Greg Linden, who currently works for google and is a self described internet relic, and has over 32 years experience .
Greg did a presentation on Big Data and shared his significance of site speed in terms of revenue. In his work at amazon, Linden talked about how a 100 milisecond delay could lead to revenues of the online company dropping by 1%. Last year alone Amazons estimated reveunue was 74.5billion so that’s about 750 million dollars a year.
Bing did some testing to see what would happen if their sites responded 1.5 seconds slower. They noticed a 5% drop in User Satisfaction, Revenue per user, and number of clicks. They also tested it at 500ms and noticed a 1% drop.
A huge indicator of how performant a website is is not only with how long it takes to load data but MORE importantly is how it takes your end users to access that data.
Of course, how long it takes for users to find relevant data depends greatly on the layout of the web application, so lets now talk about Screen Sizes and layouts before we talk about how to make these controls responsive.
Source: https://developers.google.com/web/fundamentals/performance/
Case Studies http://sixrevisions.com/web-development/why-website-speed-is-important/
Lets take a look at Web Development today with regards to device screen sizes.
Today, we are generally dealing with mobile, tablet, and desktop web applications. Due to the growing number of mobile devices out there, the old idea of have two separate websites for mobile and desktop is getting too expensive and difficult to maintain. Many Web App Developers are choosing to write one application that responsive. That is, that looks and feels natural no matter that size or input method from the user. This is due to the idea that in a few years there will potentially be many more challenges for website layouts.
Responsive design can prove itself a significant advantage in the market in terms of multi-device functionality, making future fixes easy, and appealing to a much widest audience of users
Today, designers are using layout configurations to move div elements around the page but I want to take this concept and add an additional layer to it, and that is making the controls themselves responsive and not just their height and width.
Lets take a look at two examples that demonstrate what I am explaining.
Responsive layout is not enough and he is why it is not enough
You get CollectionView with Wijmo 5.
The wijmo 5 data binding interface is the CollectionView. It is a collection of several classes that separate the visual aspect of the controls into a data layer. To start using the collectionView start by declaring it and passing a regular array as a data source.
iCollectionView: Enables collections to have the functionalities of current record management, custom sorting, filtering, and grouping. It provides a powerful MVVM model.
Its kind of hard to describe this In words so lets just look at an online demo
DEMO http://demos.componentone.com/wijmo/5/PureJS/CollectionViewIntro/CollectionViewIntro/
FlexChart- included in Wijmo 5, many extensibility points, including Financial Charrts
The FlexChart is included in Wijmo5, This is the base class for our charts. It contains one flexible API that is defined by a chart type at either the control level or the series level if you are working with composite charts.
In the next few slides we will discuss how you can utilize the features such as stacking series on top of one another to address one or all of our main concerns about programming in the web space today.
The Chart can be dynamic as well.
As I said earlier, the flexchart is the base class and one of the key features Wijmo Enterprise offers in its extensibility points. Well in our 2015v2 release we released a few extensibility points for the chart and I would like show one of those next, its called the Financial Chart
DEMO http://demos.componentone.com/wijmo/5/PureJS/FlexChartIntro/FlexChartIntro/
The Finance chart is very industry specific but since its an extension of the FlexChart, its very easy to pick up and learn. It is included in our Wijmo Enterprise offering.
LIST CHART TYPES
IMHO, the hardest part is understanding the differences between all of the different types. Luckily. We have plenty of blogs on the site, from entry level 101 too more advanced concepts.
For todays discussion we will keep it on the 101 to mid tier side.
I mentioned we added a few extensibility points, well another one is the Analytics module which I will discuss in depth in a few slides.
Other Features
Markers
Range Selector
Trend Lines
Stacking series can be very useful when display a wide range of information. When data is stacked like it is in the picture above, it is much easier for the human eye to understand the differences between the two.
This is important because a good graphical display is pleasing to the eye and therefore can have the effect of impressing the viewer and encourage them to read more of a page or site. Speaking of keeping people on your site once they get there, its important that they can find their information very quickly, as we discussed before.
So, If a mobile user visits your website, we all understand that screen space cannot be wasted. How do we fix this?
Perhaps excluding data points or series is not an option. By using the idea of Composite charts which we have pictured to below, you can load multiple charts for a desktop user in the view port but as the screen sizes scale down, you can begin transfer charts into series and loading all series into one chart. You could use this in a layout shifter and actually combine elements at the control level using Wijmo APIs.
So here is a graphical display of the concept that I explained on the last slide.
Note that we removed the chart title and added some legends. Since we are talking about screen space lets talk about Outliers in Datasets.
Lets imagine a scenario where we are plotting large datasets that may have outliers. Lets take a basic bubble chart and improve it by changing the axes scales.
Lets assume we are starting with a dataset containing population, and per-capita income for about 200 countries. Once we have our dataset, we can easily calculate GDP and add a datapoint.
So once we have our dataset, lets add a flexchart to it, we start by adding a dataset and the chart type, the name of the property for the x axis. So if we run this we should see the following chart.
So it looks like the chart rendered correctly but is it very clear?. Well, as we can see there are some outliers here that make the dataset almost un readable. The only thing you can truly gather from this data set is that there’s a few countries that are way outside the norm. Also, The chart would be clearer if it showed GDP in billions and population in millions. So no, the chart isn’t very readable.
So how do we make this chart more readable. Well, as we talked about before. The solution is going to be found in the Wijmo base class under globalization. Basically, this involves changing the format property for the axes. Wijmo’s Globalization class supports scale modifiers in format strings.
We can see our X Axis is much more readable now. We wont do anything with the Y Axis at the moment as we want to convert that to a logarithmic scale. Why? Well, we still have outliers however, ( US CHINA AND INDIA ). Many types of data sets have this type of pattern including economic and demographic data where the data tends to cluster around the average and outliers then force the bulk of the data to bunch.
There are two simple ways to address this so lets discuss
We can set Min and Max properties to exclude outliers, which would mean that the cluster gets spread over a larger portion of the chart thus making it more readable.
Two problems in our example:
You would be leaving out the US, and that isn’t cool, but more generally, we would be deliberately excluding the largest GDP and population countries.
Using this algorithm would exclude the initial cluster but that would end up revealing more clusters and we would keep sacrificing accuracy for clarity.
A better approach in this case is to change the axes to a logarithmic scale. With logarithmic axes, the distance between tick marks is a multiple of the log base, rather than a constant value. Because of this, logarithmic axes naturally compress the scale as values grow towards the maximum.
To enable logarithmic scale in the FlexChart, we set the logBase property on the Y axis to a value such as 2, 5, or 10. Once we do this, each tick mark represents a distance 2, 5, or 10 times larger than the previous one.
Lets take a look at how this will render
So we have discussed some cool properties and features of the FlexChart that you as a developer can implement to really maximize the value and screen space of your charts.
One of the nice things about the chart, is that when it comes analyzing data, you can enable certain features that lets your users take control. For example, your end users can do analysis, add annotations, and drill down through data all without needed a programmer. So lets talk about who we can use some of the modules for analysis and visualizing qualitative data.
In my experience in charting, trendlines tend to come up in discussions a lot, probably for a good reason. So its important that we spend some time talking about it.
The Analytics module for FlexChart is made available via Wijmo.chart.analytics
Trend Lines are used to represent trends in data to examine the problems of prediction. Currently the FlexChart supports all of the trendlines that Microsoft Excel Supports
This is very powerful because it tries to normalize your dataset. It can also provide your end users will a really quick way to analyze a data set.
Live Demo http://demos.componentone.com/wijmo/5/Angular/FlexChartAnalytics/FlexChartAnalytics/#/trendline
In addition to adding additional series, we can add an annotations layer.
So this is basically the idea of taking other data sets and adding another interactive layer on top of the chart surface that help with you data analysis.
This idea is best demoed
Live Demo http://demos.componentone.com/wijmo/5/Angular/FlexChartAnnotation/FlexChartAnnotation/
http://demos.componentone.com/wijmo/5/Angular/EditableAnnotationLayer/EditableAnnotationLayer/
By adding additional layers or elements to our page we were able to add more complexity to your chart. Lets now shift into displaying less data but in a more meaningful way. Like Grouping in Grids, charts have this concept of Drilling down, which allows you to present data in digestible chucks. This is widely used in reporting.
We can take this a step future and add toolips and breadcrumbs to really help give the user context.
Live Demo
http://demos.componentone.com/wijmo/5/Angular/FlexChartGroup/FlexChartGroup/
Live Demo – Weather Chart - http://demos.componentone.com/wijmo/5/PureJS/WeatherChart/WeatherChart/
Live Demo – Stock Chart
http://demos.componentone.com/wijmo/5/Angular/StockChart/StockChart/
Included in Wijmo is our Flagship control, the FlexGrid.
Grids and Charts are a key part to data visualization.
Charts are great for taking a large amount of data points and ‘truncating’ all of those data points down to a single 400x400px chart.
Grids allow us to present the entire dataset to the user and have them do operations on that dataset. Our end users should be able to sort, edit possibly, filter data, very easily
Wijmo Enterprise utilizes some tricks that will greatly increase your application performance scrolling
The key to all grids and a performant application is a solid data layer. We have already covered the collectionVIew
Demo: http://demos.componentone.com/wijmo/5/PureJS/FlexGridIntro/FlexGridIntro/
Grouping data or Grouped Data is a statistical term used in data analysis. The theory is that you take a Raw dataset and create a separate table that consists of the frequencies of any given item. In our examples we will be grouping data based on some field in our collectionview and instead of displaying the frequency, we will simply display the underlying data.
Not only is grouping important from a data viz standpoint but also from a responsive design angle.
FlexGrid provides a few ways of doing this:
The group panel control allows you to add a drag and drop grouping UI to any FlexGrid Control.
This is included in an additional module so all we need to do is include wijmo.grid.grouppanel.js, add an element to hold the grouping ui and create the control when the page loads.
The other option is to do grouping via a dialog which would be more mobile friendly
Live Demo
http://demos.componentone.com/wijmo/5/Angular/GroupPanel/GroupPanel/
http://demos.componentone.com/wijmo/5/Angular/SortingGroupingUI/SortingGroupingUI/
Once we have a data layer in place, the first thing we do is visualize the entire dataset in a grid. Once we do that, we realize that we need to scroll around to see all of the information.
By default, all scrolling in the FlexGrid is virtualized. Only the DOM elements needed to render the cells visible in the Viewport are created. Of course we buffer it a bit so there it appears smooth.
Live Demo
SHOWCASE MOBILE SCROLLING
http://demos.componentone.com/wijmo/5/Angular/Benchmark/Benchmark/#/flexgrid
Searching - Searching and filtering a similar. When you do a search, you obviously know what you are looking for. The trick is to have one single input box that searches the entire dataset
Filtering can be important if you are looking for something in particular but your not sure exactly what. For example, you know something happened over a given date range
Lets look at the three ways you can filter data on the FlexGrid. The image on the top is the excel-like dialog. This is opened when a user clicks on a icon in the header row of a column and you have your traditional Excel Like filter box with combo box options
The picture below is a input box directly in the column headers in additional to a combo box. This might not help the desktop users out to much but this layout is great when working on larger touch only devices. The user can click in the input box and get a keyboard open or select an option from the combo box. This is easier because you don’t need to try and touch that little icon in the column header but its worth noting that you can increase the size of the hit box. This second method seems more fluid though on mobile.
The third option is just a text box that filters that data on a predefined field. Not you can have a combox box above it to select when field you want to filter on and then have a text box that will actually fitler some data.
In additional to filtering and freezing and following the same concepts of data grouping lets talk about the DetailRow extension.
http://demos.componentone.com/wijmo/5/Angular/Explorer/Explorer/#/grid/intro
Live Demo
http://demos.componentone.com/wijmo/5/Angular/FlexGridFilter/FlexGridFilter/
http://demos.componentone.com/wijmo/5/Angular/HeaderFilters/HeaderFilters/
http://demos.componentone.com/wijmo/5/Angular/FlexGridIntro/FlexGridIntro/
The detail rows are implemented using the FlexGridDetailProvider class. The FlexGridDetailProvider class has a createDetailCell function that creates HTML elements to show the details for any row. The content of the detail cells is completely customizable.
In addition to the createDetailCell function, the FlexGridDetailProvider class has other properties that allow you to customize when the detail rows are displayed, their dimensions, etc.
Very similar concept to grouping its just the data can behave in a different manor