Visualizing Software Projects in JavaScript

Size: px
Start display at page:

Download "Visualizing Software Projects in JavaScript"

Transcription

1 Visualizing Software Projects in JavaScript Tim Disney Abstract Visualization techniques have been used to help programmers deepen their understanding of large software projects. However the existing visualization techniques have focused on static languages where type information can only be determined at compile-time. This paper describes a new visualization tool aimed at the dynamic language JavaScript. 1 Introduction Programming is hard. As observed by Brooks [2] over 20 years ago there is an essential complexity to software that makes it so. Software developers spend much of their time managing the increasing complexities of their projects. Though there may be, as Brooks argues, no Silver Bullet to completely do away with all the painful complexity, there are techniques to alleviate at least some portion of the difficulty in building and understanding software projects. One technique has been the use of visualization tools. A number of tools have been created to help visualize the structure and relationships between packages and classes [7, 9] and dependencies [4, 8] in software systems. Unfortunately these tools only work for static languages where the types in the system can be determined at compile-time. To the best of my knowledge there are no visualization tools for dynamic languages which create and mutate their objects at runtime. This paper presents a visualization tool for JavaScript, a dynamic language used primarily in web browsers. This tool visualizes the structure of objects in a JavaScript application by using a node and link style graph. By capturing snapshots of the object structure at different points in the program execution, the visualization can display changes to the object structure at different points in time. This visualization tool allows developers to gain a deeper understanding of the structure of their application. This tool shows how objects are related, gives insight into object importance, and displays how structures change over the course of a running program. During development of this tool I was even able to discover a bug in a library by using the visualization. This paper is structured as follows: section 2 gives an overview of JavaScript, section 3 describes how the visualization is created, section 4 describes the author s experiences using the tool, section 5 gives an overview of related work, section 6 describes possible future work and section 7 concludes. 1

2 2 Background JavaScript [3] is a dynamic language primarily used in client-side web applications. Once regarded as a toy scripting language its popularity has increased in recent years due to its use in complex web applications such as Gmail and Google Maps. JavaScript provides support for object oriented techniques but uses a prototypebased object system as opposed to the more traditional class-based system found in languages such as Java or C++. Objects in JavaScript are collections of mutable key/value properties roughly analogous to maps in Java or dictionaries in Python. The potential objects an application might use are not defined before instantiation, instead objects are instantiated and then mutated into their necessary form as the application executes. When an object is created at the top level of a script (i.e. not locally scoped inside a function) it is added as a property to a global object (named window in the browser environment). For example after the code in snippet 1 is executed the window object will contain three properties: myobj which is an object with properties foo and baz, myfun which is a function, and globalvariable which is the number 22. Each property can be referenced with the familiar dot notation (e.g. window.myobj.foo gives bar ). Snippet 1 Example JavaScript code var myobj = { foo: "bar", baz: }; function myfun(){ var localvariable = 5; globalvariable = 22; } The reason globalvariable is added to the global object is because it was not declared with the var keyword. Any variable used in a function that has not been declared with var is added to the global object. This is a source of potential bugs when developers forget to use var since variable names might clash causing unexpected updates. Since JavaScript does not have a module system to partition the namespace, it is standard practice for developers to use objects as a replacement. The Yahoo User Interface library (YUI) [12] is a good example of this. Every object used in YUI is contained in the top level YAHOO object which is added to the global object. So for example if developers wish to use the calendar widget, they reference YAHOO.widget.Calendar. This use of objects as replacement modules provides a good place to begin visualization. Since most of the interesting objects in the system are available 2

3 by traversing the global object, we can get an understanding of the project s structure by visualizing how these objects are related. 3 Method The visualization tool was written in JavaScript and runs in a web browser. The code is meant to be added to any JavaScript application that a user wishes to visualize. A user simply adds a script to their page and the visualization is displayed. Figure 1: Global object three levels deep with interface To accomplish the visualization two main processes occur. First a process runs to collect the salient data. It accomplices this by starting with the global object window and doing a depth-first search through each of its contained objects. As it walks each node (object) in the graph, it constructs a separate object with the data necessary to display the visualization. Essentially it is simplifying the object data so that it can be more easily translated into the visualization. As this process is walking the object graph, it also does some filtering of the data. By default each browser provides a number of functions at the top level which are usually not very interesting to the developer since they are the same in every project. By default these are ignored. The collector process also 3

4 does not traverse any DOM elements. These are the objects that represent the display elements in the browser window. Since the focus of the visualization is on the application and not the display, these are currently being ignored. It also ignores objects that have been previously visited to prevent creating circular references. This is a potential issue since it is sometimes useful to know that an object is referenced by multiple names. For example the jquery library [6] has two alias that can be used ($ and jquery) and it is useful to know that both exist. Only the first name discovered by the collector is currently being displayed. Array are another special case in the collector. Since arrays are often used to hold large amounts of data (e.g. 1000s of elements) which is difficult to visualize, the collector will truncate arrays if they exceeded a set maximum number of elements (currently set at 30). Figure 2: RGraph object four levels deep Once the simplified object has been created it is passed to a visualization library for display. The library being used is called the JavaScript InfoVis Toolkit (JIT) [1]. The specific visualization provided by JIT that is used is a radial tree inspired by the work done by Yee et al. [13]. The simplified object is transformed into a radial tree with each object represented as a node and lines between nodes representing contains relationships (see figure 1). Each node is 4

5 colored to represent its type (blue for functions, green for numbers, orange for strings, and white for standard objects). Interactivity is provided by allowing a user to recenter the graph by clicking on a node. The user is also given controls to select the starting object (by default window), maximum depth to traverse, size of the graph, and a toggle for node coloring. Since the data is collected at run-time, the visualization is able to collect the data multiple times and then display the changes between the graphs. There is a button in the interface to force collection to occur whenever a user clicks on it but the collection process can also be wired to any arbitrary events that can be triggered in the browser. Once the data has been collected the user can select a snapshot and the graph will morph into the new state recorded by that snapshot. 4 Results Figure 3: Clean Project While testing the visualization tool after it had been developed, I realized it would have been very useful during the development process. In particular I ran into difficulties trying to find a specific method on the JIT s RGraph object that would accomplish morphing the graph from one state to another. Though I eventually found the documentation for the necessary method, it was 5

6 not obvious where it was located. If, instead of pouring through the documentation, I had looked at the graph of RGraph (seen in figure 2) the method, RGraph.op.prototype.morph, would have been discovered much more rapidly. During development I also managed to discover a programming flaw in the JIT visualization library. It appears that the programmers of JIT forgot to use the var keyword when assigning to a variable called that. I noticed this while testing out the change morphing, the that variable showed up unexpectedly while moving from one change snapshot to another. Initially I thought that there was an error in my code but it quickly became obvious from the visualization that the values being stored in that had to do with the internals of JIT. Figure 4: Messy Project Use of a variable called that is actually a standard pattern in JavaScript development. It is commonly used to store a particular value of the this object in a closure. Because the var keyword was not used, the assignment to that was placed on the global object. This is a potential source of bugs since multiple closures could possibly be in conflict over the contents of that. One of the goals of this visualization was to see the difference between a messy project and a clean project. Though the definitions are a bit fuzzy the intuition behind the terms is that a messy project has lots of objects in the global namespace while a clean project has relatively few. The reason for the value judgement in the terms is that when many objects are in the same 6

7 namespace the chance for an unintentional conflict is greater resulting in subtle runtime bugs. Also with a clean project structure understandability and learning is facilitated. It is easier to find things when they have been grouped into hierarchies. To see if the visualization would work well for visualizing the difference between a messy and clean project I ran the tool on two different projects. One was a project I had worked on several years ago when I was first learning how to program in JavaScript. The other was the use of a calendar widget from YUI. Although the comparison is partially unfair since the functionality of the two projects is very different, it does provide an illustrative example. As can be seen in the calendaring widget example in figure 3 there are around half a dozen items in the top level with many more items under each of them. In contrast the old code base in figure 4 has many items in the top level making it very difficult to make out one from the other. Figure 5: YAHOO object four levels deep 7

8 5 Related Work There has been work on visualizing static languages. The commercial application SolidSX [7] runs on Java and.net projects. There are IDE solutions built into IntelliJ IDEA [4] and available for Eclipse in the Stan4j project [8]. Don Stewart has published visualizations of Haskell code in the Hackage code repository [9]. There has also been work done on visualizing large hierarchies of data such as directory structures by Teoh et al. [10, 11] and Kleiberg [5]. 6 Future Work Currently the tool only collects object data available in the global object. This allows us to see many of the interesting object in the system however it does miss any objects scoped as function local variables. It would be interesting to see if adding this data would provide additional insights into the program structure. Other potential work could include displaying all references to an object if more than one exists and user studies to determine how well this system works for other developers. 7 Conclusion This paper has presented a visualization tool for the dynamic language JavaScript. It provides deeper understanding of software projects, shows how objects are related, and gives insight into how object change over the course of a program. References [1] Nicolas Garcia Belmonte. The javascript infovis toolkit. available from [2] F.P. Brooks. No silver bullet. IEEE Computer, 20(4):10 19, [3] E. C. M. A. International. ECMA-262: ECMAScript Language Specification. ECMA (European Association for Standardizing Information and Communication Systems), Geneva, Switzerland, third edition, December [4] JetBrains. Intellij idea dependency analysis. available from dependency analysis.html, [5] E. Kleiberg, H. Van De Wetering, and J.J. Van Wijk. Botanical visualization of huge hierarchies. In Proceedings IEEE Symposium on Information Visualization (InfoVis 2001), pages Citeseer,

9 [6] John Resig. jquery library. available from [7] SolidSource. Solidsx. available from SolidSX-source-code-dependency-analysis.html, [8] STAN. stan4j - structural analysis for java. available from [9] Don Stewart. Visualising the haskell universe. available from visualising-the-haskell-universe/, [10] S.T. Teoh and K.L. Ma. RINGS: A technique for visualizing large hierarchies. Lecture Notes in Computer Science, 2528: , [11] Yue Wang, Soon Tee Teoh, and Kwan-liu Ma. Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery. Knowledge Creation Diffusion Utilization, [12] Yahoo. Yui library. available from [13] K.P. Yee, D. Fisher, R. Dhamija, and M. Hearst. Animated exploration of dynamic graphs with radial layout. In Proceedings of the IEEE Symposium on Information Visualization, volume 43. Citeseer,

Data Visualization in Ext Js 3.4

Data Visualization in Ext Js 3.4 White Paper Data Visualization in Ext Js 3.4 Ext JS is a client-side javascript framework for rapid development of cross-browser interactive Web applications using techniques such as Ajax, DHTML and DOM

More information

Visualizing MyAnimeList

Visualizing MyAnimeList Visualizing MyAnimeList Binh Tran Abstract MyAnimeList users use myanimelist.net to track the anime they watch. The users see a lot of simple visualizations on the website. There is not a lot of understanding

More information

Online Search Engine Advertising Data Visualization Tool

Online Search Engine Advertising Data Visualization Tool Online Search Engine Advertising Data Visualization Tool Project Proposal Yingsai Dong dysalbert@gmail.com Department of Computer Science University of British Columbia CPSC 547 Information Visualization

More information

Lecture 9 Chrome Extensions

Lecture 9 Chrome Extensions Lecture 9 Chrome Extensions 1 / 22 Agenda 1. Chrome Extensions 1. Manifest files 2. Content Scripts 3. Background Pages 4. Page Actions 5. Browser Actions 2 / 22 Chrome Extensions 3 / 22 What are browser

More information

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

How Programmers Use Internet Resources to Aid Programming

How Programmers Use Internet Resources to Aid Programming How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,

More information

Example. Represent this as XML

Example. Represent this as XML Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple

More information

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM

More information

Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery

Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery Eurographics/ IEEE-VGTC Symposium on Visualization (2006) Thomas Ertl, Ken Joy, and Beatriz Santos (Editors) Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery Yue Wang

More information

MASTERTAG DEVELOPER GUIDE

MASTERTAG DEVELOPER GUIDE MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...

More information

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)

So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we

More information

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00

Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

Hierarchy and Tree Visualization

Hierarchy and Tree Visualization Hierarchy and Tree Visualization Definition Hierarchies An ordering of groups in which larger groups encompass sets of smaller groups. Data repository in which cases are related to subcases Hierarchical

More information

Source Code Translation

Source Code Translation Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven

More information

Overview. In the beginning. Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript

Overview. In the beginning. Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript Overview In the beginning Static vs. Dynamic Content Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript AJAX Libraries and Frameworks

More information

Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella

Google Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella Google Web Toolkit Progetto di Applicazioni Software a.a. 2011/12 Massimo Mecella Introduction Ajax (Asynchronous JavaScript and XML) refers to a broad range of techniques Beyond the technical jargon,

More information

Building Web Applications

Building Web Applications Building Web Applications Mendel Rosenblum CS142 Lecture Notes - Building Web Applications Good web applications: Design + Implementation Some Design Goals: Intuitive to use Don't need to take a course

More information

TDAQ Analytics Dashboard

TDAQ Analytics Dashboard 14 October 2010 ATL-DAQ-SLIDE-2010-397 TDAQ Analytics Dashboard A real time analytics web application Outline Messages in the ATLAS TDAQ infrastructure Importance of analysis A dashboard approach Architecture

More information

Practical Android Projects Lucas Jordan Pieter Greyling

Practical Android Projects Lucas Jordan Pieter Greyling Practical Android Projects Lucas Jordan Pieter Greyling Apress s w«^* ; i - -i.. ; Contents at a Glance Contents --v About the Authors x About the Technical Reviewer xi PAcknowiedgments xii Preface xiii

More information

Visual Basic Programming. An Introduction

Visual Basic Programming. An Introduction Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides

More information

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014 CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections

More information

Power Tools for Pivotal Tracker

Power Tools for Pivotal Tracker Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development

More information

HTML5. Turn this page to see Quick Guide of CTTC

HTML5. Turn this page to see Quick Guide of CTTC Programming SharePoint 2013 Development Courses ASP.NET SQL TECHNOLGY TRAINING GUIDE Visual Studio PHP Programming Android App Programming HTML5 Jquery Your Training Partner in Cutting Edge Technologies

More information

YouTrack MPS case study

YouTrack MPS case study YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project

More information

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World

Chapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify

More information

Towards Software Configuration Management for Test-Driven Development

Towards Software Configuration Management for Test-Driven Development Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where

More information

Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator

Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun (cmjaun@us.ibm.com) Sudha Piddaparti (sudhap@us.ibm.com) Objective In this

More information

Software Visualization

Software Visualization Software Visualization CS 4460 Last Revision: November 2015 Software Visualization Definition The use of the crafts of typography, graphic design, animation, and cinematography with modern humancomputer

More information

Interactive Exploration of Decision Tree Results

Interactive Exploration of Decision Tree Results Interactive Exploration of Decision Tree Results 1 IRISA Campus de Beaulieu F35042 Rennes Cedex, France (email: pnguyenk,amorin@irisa.fr) 2 INRIA Futurs L.R.I., University Paris-Sud F91405 ORSAY Cedex,

More information

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION AGENDA 1. Overview of Magento 2.0 2. Features and benefits of Magento 2.0 over Magento 1.x 3. Why should we upgrade to Magento 2.0

More information

tools that make every developer a quality expert

tools that make every developer a quality expert tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX

More information

What s New in JReport 13.1

What s New in JReport 13.1 Highlights JReport 13.1 focuses on new geographical tools for data visualization, enhanced data analysis and presentation in dashboards and reports, as well as greater performance and scalability when

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

GUI and Web Programming

GUI and Web Programming GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program

More information

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

Meister Going Beyond Maven

Meister Going Beyond Maven Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities

More information

Design Patterns for Rapid Visualization Prototyping

Design Patterns for Rapid Visualization Prototyping Design Patterns for Rapid Visualization Prototyping Mark Giereth and Thomas Ertl Visualization and Interactive Systems Institute, University of Stuttgart {giereth,ertl}@vis.uni-stuttgart.de Abstract In

More information

One of the fundamental kinds of Web sites that SharePoint 2010 allows

One of the fundamental kinds of Web sites that SharePoint 2010 allows Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental

More information

QML and JavaScript for Native App Development

QML and JavaScript for Native App Development Esri Developer Summit March 8 11, 2016 Palm Springs, CA QML and JavaScript for Native App Development Michael Tims Lucas Danzinger Agenda Native apps. Why? Overview of Qt and QML How to use JavaScript

More information

Pattern Insight Clone Detection

Pattern Insight Clone Detection Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology

More information

Sonatype CLM for Maven. Sonatype CLM for Maven

Sonatype CLM for Maven. Sonatype CLM for Maven Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........

More information

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007 Hierarchical Data Visualization Ai Nakatani IAT 814 February 21, 2007 Introduction Hierarchical Data Directory structure Genealogy trees Biological taxonomy Business structure Project structure Challenges

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Introduction to D3.js Interactive Data Visualization in the Web Browser

Introduction to D3.js Interactive Data Visualization in the Web Browser Datalab Seminar Introduction to D3.js Interactive Data Visualization in the Web Browser Dr. Philipp Ackermann Sample Code: http://github.engineering.zhaw.ch/visualcomputinglab/cgdemos 2016 InIT/ZHAW Visual

More information

What good is a Web site without information?

What good is a Web site without information? Chapter 3 Adding Stuff to a Drupal Site 10 What good is a Web site without information? Drupal makes adding new information much easier to accomplish than it is to describe. Describing this step is severely

More information

Getting Started Guide with WIZ550web

Getting Started Guide with WIZ550web 1/21 WIZ550web is an embedded Web server module based on WIZnet s W5500 hardwired TCP/IP chip, Users can control & monitor the 16-configurable digital I/O and 4-ADC inputs on module via web pages. WIZ550web

More information

TeamCity A Professional Solution for Delivering Quality Software, on Time

TeamCity A Professional Solution for Delivering Quality Software, on Time TeamCity A Professional Solution for Delivering Quality Software, on Time Vaclav Pech Senior Software Developer JetBrains, Inc. About Us Vaclav Pech Professional software developer for 9 years IntelliJ

More information

An Introduction to KeyLines and Network Visualization

An Introduction to KeyLines and Network Visualization An Introduction to KeyLines and Network Visualization 1. What is KeyLines?... 2 2. Benefits of network visualization... 2 3. Benefits of KeyLines... 3 4. KeyLines architecture... 3 5. Uses of network visualization...

More information

SPELL Tabs Evaluation Version

SPELL Tabs Evaluation Version SPELL Tabs Evaluation Version Inline Navigation for SharePoint Pages SPELL Tabs v 0.9.2 Evaluation Version May 2013 Author: Christophe HUMBERT User Managed Solutions LLC Table of Contents About the SPELL

More information

JavaScript static security analysis made easy with JSPrime

JavaScript static security analysis made easy with JSPrime JavaScript static security analysis made easy with JSPrime Nishant Das Patnaik & Sarathi Sabyasachi Sahoo nishant.dp@gmail.com & sarathisahoo@gmail.com JavaScript is the lingua-franca of Web 2.0 and, recently,

More information

WHAT DEVELOPERS ARE TALKING ABOUT?

WHAT DEVELOPERS ARE TALKING ABOUT? WHAT DEVELOPERS ARE TALKING ABOUT? AN ANALYSIS OF STACK OVERFLOW DATA 1. Abstract We implemented a methodology to analyze the textual content of Stack Overflow discussions. We used latent Dirichlet allocation

More information

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.

CSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship. CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation

More information

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach

More information

Chase Mobile Checkout Canada User Guide

Chase Mobile Checkout Canada User Guide Chase Mobile Checkout Canada User Guide TM Trademark of Chase Paymentech, LLC, Chase Paymentech Solutions authorized user. Contents 1. INTRODUCTION... 3 1.1. OVERVIEW... 3 1.2. GET ADDITIONAL ASSISTANCE...

More information

Visual Analysis Tool for Bipartite Networks

Visual Analysis Tool for Bipartite Networks Visual Analysis Tool for Bipartite Networks Kazuo Misue Department of Computer Science, University of Tsukuba, 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract. To find hidden features

More information

PORTAL ADMINISTRATION

PORTAL ADMINISTRATION 1 Portal Administration User s Guide PORTAL ADMINISTRATION GUIDE Page 1 2 Portal Administration User s Guide Table of Contents Introduction...5 Core Portal Framework Concepts...5 Key Items...5 Layouts...5

More information

Ross University s Content Management System (CMS) Training Manual

Ross University s Content Management System (CMS) Training Manual Ross University s Content Management System (CMS) Training Manual Version 1.0 This is the Ross University Content Management System (CMS) training manual. This manual is intended for Ross University content

More information

Virtual Heart User Manual Username Password

Virtual Heart User Manual Username Password Virtual Heart User Manual Username Password These instructions are meant to help you use the Virtual Heart website. Please write down your username and password and store them in a safe place in case you

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP

More information

The Grid Monitor. Usage and installation manual. Oxana Smirnova

The Grid Monitor. Usage and installation manual. Oxana Smirnova NORDUGRID NORDUGRID-MANUAL-5 4/3/2014 The Grid Monitor Usage and installation manual Oxana Smirnova Abstract The LDAP-based ARC Grid Monitor is a Web client tool for the ARC Information System, allowing

More information

Embedded BI made easy

Embedded BI made easy June, 2015 1 Embedded BI made easy DashXML makes it easy for developers to embed highly customized reports and analytics into applications. DashXML is a fast and flexible framework that exposes Yellowfin

More information

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111

Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111 Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo

More information

English. Asema.com Portlets Programmers' Manual

English. Asema.com Portlets Programmers' Manual English Asema.com Portlets Programmers' Manual Asema.com Portlets : Programmers' Manual Asema Electronics Ltd Copyright 2011-2013 No part of this publication may be reproduced, published, stored in an

More information

A Web- based Approach to Music Library Management. Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012

A Web- based Approach to Music Library Management. Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012 A Web- based Approach to Music Library Management Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012 Abstract This application utilizes modern standards developing in web

More information

Visualisation in the Google Cloud

Visualisation in the Google Cloud Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores

More information

IBM BPM V8.5 Standard Consistent Document Managment

IBM BPM V8.5 Standard Consistent Document Managment IBM Software An IBM Proof of Technology IBM BPM V8.5 Standard Consistent Document Managment Lab Exercises Version 1.0 Author: Sebastian Carbajales An IBM Proof of Technology Catalog Number Copyright IBM

More information

Internationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg 2013. All rights reserved.

Internationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg 2013. All rights reserved. Internationalizing JavaScript Applications Norbert Lindenberg Norbert Lindenberg 2013. All rights reserved. Agenda Unicode support Collation Number and date/time formatting Localizable resources Message

More information

ECMAScript 3 rd Edition Compact Profile

ECMAScript 3 rd Edition Compact Profile Standard ECMA-327 June 2001 Standardizing Information and Communication Systems ECMAScript 3 rd Edition Compact Profile Phone: +41 22 849.60.00 - Fax: +41 22 849.60.01 - URL: http://www.ecma.ch - Internet:

More information

Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys

Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph Client: Brian Krzys June 17, 2014 Introduction Newmont Mining is a resource extraction company with a research and development

More information

Availability of the Program A free version is available of each (see individual programs for links).

Availability of the Program A free version is available of each (see individual programs for links). Choosing a Programming Platform Diane Hobenshield Tepylo, Lisa Floyd, and Steve Floyd (Computer Science and Mathematics teachers) The Tasks Working Group had many questions and concerns about choosing

More information

Treemap Visualisations

Treemap Visualisations Treemap Visualisations This exercise aims to be a getting started guide for building interactive Treemap visualisations using the D3 JavaScript library. While data visualisation has existed for many years

More information

Obelisk: Summoning Minions on a HPC Cluster

Obelisk: Summoning Minions on a HPC Cluster Obelisk: Summoning Minions on a HPC Cluster Abstract In scientific research, having the ability to perform rigorous calculations in a bearable amount of time is an invaluable asset. Fortunately, the growing

More information

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For

How To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For How-to Guide: MIT DLC Drupal Cloud Theme This guide will show you how to take your initial Drupal Cloud site... and turn it into something more like this, using the MIT DLC Drupal Cloud theme. See this

More information

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.

Eclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project. Eclipse with Mac OSX Java developers have quickly made Eclipse one of the most popular Java coding tools on Mac OS X. But although Eclipse is a comfortable tool to use every day once you know it, it is

More information

Jing Yang Spring 2010

Jing Yang Spring 2010 Information Visualization Jing Yang Spring 2010 1 InfoVis Programming 2 1 Outline Look at increasing higher-level tools 2D graphics API Graphicial User Interface (GUI) toolkits Visualization framework

More information

Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related

Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related Summary Xiangzhe Li Nowadays, there are more and more data everyday about everything. For instance, here are some of the astonishing

More information

Visualizing MongoDB Objects in Concept and Practice

Visualizing MongoDB Objects in Concept and Practice Washington DC 2013 Visualizing MongoDB Objects in Concept and Practice https://github.com/cvitter/ikanow.mongodc2013.presentation Introduction Do you have a MongoDB database full of BSON documents crying

More information

Develop highly interactive web charts with SAS

Develop highly interactive web charts with SAS ABSTRACT Paper 1807-2014 Develop highly interactive web charts with SAS Rajesh Inbasekaran, Naren Mudivarthy, Neetha Sindhu Kavi Associates LLC, Barrington IL Very often there is a need to present the

More information

Native, Hybrid or Mobile Web Application Development

Native, Hybrid or Mobile Web Application Development Native, Hybrid or Mobile Web Application Development Learn more about the three approaches to mobile application development and the pros and cons of each method. White Paper Develop a Mobile Application

More information

Doc ID: URCHINB-001 (3/30/05)

Doc ID: URCHINB-001 (3/30/05) Urchin 2005 Linux Web Host. All rights reserved. The content of this manual is furnished under license and may be used or copied only in accordance with this license. No part of this publication may be

More information

Visualizing an OrientDB Graph Database with KeyLines

Visualizing an OrientDB Graph Database with KeyLines Visualizing an OrientDB Graph Database with KeyLines Visualizing an OrientDB Graph Database with KeyLines 1! Introduction 2! What is a graph database? 2! What is OrientDB? 2! Why visualize OrientDB? 3!

More information

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT

ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT Dr. Mike Morrison, University of Wisconsin-Eau Claire, morriscm@uwec.edu Dr. Joline Morrison, University of Wisconsin-Eau Claire, morrisjp@uwec.edu

More information

Front-End Performance Testing and Optimization

Front-End Performance Testing and Optimization Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client

More information

Up and Running with LabVIEW Web Services

Up and Running with LabVIEW Web Services Up and Running with LabVIEW Web Services July 7, 2014 Jon McBee Bloomy Controls, Inc. LabVIEW Web Services were introduced in LabVIEW 8.6 and provide a standard way to interact with an application over

More information

A QUICK OVERVIEW OF THE OMNeT++ IDE

A QUICK OVERVIEW OF THE OMNeT++ IDE Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.

More information

An example. Visualization? An example. Scientific Visualization. This talk. Information Visualization & Visual Analytics. 30 items, 30 x 3 values

An example. Visualization? An example. Scientific Visualization. This talk. Information Visualization & Visual Analytics. 30 items, 30 x 3 values Information Visualization & Visual Analytics Jack van Wijk Technische Universiteit Eindhoven An example y 30 items, 30 x 3 values I-science for Astronomy, October 13-17, 2008 Lorentz center, Leiden x An

More information

Cloud Computing And Equal Access

Cloud Computing And Equal Access Cloud Computing And Equal Access T. V. Raman Google Research http://emacspeak.sf.net/raman November 13, 2008 Overview Web Applications UI Web-2.0 Patterns Web-API Conclusion Cloud Computing NCTI 2008 2

More information

Evaluating a new programming language

Evaluating a new programming language In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 stevencl@microsoft.com Keywords:

More information

Getting Started with GRUFF

Getting Started with GRUFF Getting Started with GRUFF Introduction Most articles in this book focus on interesting applications of Linked Open Data (LOD). But this chapter describes some simple steps on how to use a triple store,

More information

A Universal Visualization Platform

A Universal Visualization Platform A Universal Visualization Platform Georges G. Grinstein Alexander G. Gee University of Massachusetts Lowell Institute for Visualization and Perception Research {grinstein,agee}@cs.uml.edu Part I What functionality

More information

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript

JSClassFinder: A Tool to Detect Class-like Structures in JavaScript JSClassFinder: A Tool to Detect Class-like Structures in JavaScript Leonardo Humberto Silva 1, Daniel Hovadick 2, Marco Tulio Valente 2, Alexandre Bergel 3,Nicolas Anquetil 4, Anne Etien 4 1 Department

More information

10CS73:Web Programming

10CS73:Web Programming 10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server

More information

Kotlin for Android Developers

Kotlin for Android Developers Kotlin for Android Developers Learn Kotlin in an easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published

More information

Ruby on Rails Issue Tracker

Ruby on Rails Issue Tracker Ruby on Rails Issue Tracker J. Jared Rodriguez-Rivera NASA Kennedy Space Center Major: Software Development KSC-FO Summer Session 16 July 2014 Author Note J. Jared Rodriguez-Rivera A.A, A.S Computer Programming

More information

Introduction (Apps and the Android platform)

Introduction (Apps and the Android platform) Introduction (Apps and the Android platform) CE881: Mobile and Social Application Programming Simon Lucas & Spyros Samothrakis January 13, 2015 1 / 38 1 2 3 4 2 / 38 Course Structure 10 weeks Each week:

More information

Configuration Manager

Configuration Manager After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration

More information

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware Created by Doug Cutting and Mike Carafella in 2005. Cutting named the program after

More information