Rethinking Online Code Editors for Supporting Time-based Web Documents



Similar documents
Developer Tutorial Version 1. 0 February 2015

Title: Front-end Web Design, Back-end Development, & Graphic Design Levi Gable Web Design Seattle WA

Using HTML5 Pack for ADOBE ILLUSTRATOR CS5

Lucy Zhang UI Developer Contact:

WEB DEVELOPMENT IA & IB (893 & 894)

Web Design Technology

SizmekFeatures. HTML5JSSyncFeature

Programming in HTML5 with JavaScript and CSS3

HtmlUnit: An Efficient Approach to Testing Web Applications

USING RUST TO BUILD THE NEXT GENERATION WEB BROWSER

Coding for Desktop and Mobile with HTML5 and Java EE 7

Platform support for UNIT4 Milestone 4

Front-End Performance Testing and Optimization

Web Foundations Series Internet Business Associate

How to Monitor and Identify Website Issues. 2013, SolarWinds Worldwide, LLC. All rights reserved. Share:

MASTERTAG DEVELOPER GUIDE

Unlocking the Java EE Platform with HTML 5

Mobile Performance Management Tools Prasanna Gawade, Infosys April 2014

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

WEB DEVELOPMENT COURSE (PHP/ MYSQL)

Assignment 5: Visualization

OPENTABLE GROUP SEARCH MODULE GETTING STARTED ADD RESERVATIONS TO YOUR WEBSITE

Overview. History HTML What is HTML5? New Features Features Removed Resources 10/8/2014

Study on Parallax Scrolling Web Page Conversion Module

Eclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead

Upgrade to Microsoft Web Applications

COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida

WP Popup Magic User Guide

Agile Web Application Testing

Building Web Applications

How To Use Mugeda Content

Web Site Design and Development Process

WEB AND APPLICATION DEVELOPMENT ENGINEER

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Reading an sent with Voltage Secur . Using the Voltage Secur Zero Download Messenger (ZDM)

Web Mapping Application Interface Design: Best Practices and Tools. Michael

Interactive Data Visualization for the Web Scott Murray

Web Components What s the Catch? TJ

Sizmek Features. Wallpaper. Build Guide

Data Visualization Frameworks: D3.js vs. Flot vs. Highcharts by Igor Zalutsky, JavaScript Developer at Altoros

Browser tools that make web development easier. Alan Seiden Consulting alanseiden.com

Essentials of HTML5 11/11/ Simply, the new version of HTML. 2. HTML = Hypertext Markup Language. 3. BUT it really isn t just HTML.

Web Designing with UI Designing

Project Plan Log Monitoring Compliance

Guidelines for the LSS for NemID interaction design and user selection

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

4/25/2016 C. M. Boyd, Practical Data Visualization with JavaScript Talk Handout

Final Report - HydrometDB Belize s Climatic Database Management System. Executive Summary

HTML5 Standard Banner

MAGENTO THEME SHOE STORE

GRAPHIC DESIGNER. 2. Creates digital motion graphics work using a variety of software such as Flash.

RFP# ADDENDUM No. 1 Questions and Answers

JavaScript Testing. Beginner's Guide. Liang Yuxian Eugene. Test and debug JavaScript the easy way PUBLISHING MUMBAI BIRMINGHAM. k I I.

PLAYER DEVELOPER GUIDE

Web App Development Session 1 - Getting Started. Presented by Charles Armour and Ryan Knee for Coder Dojo Pensacola

An Overview of HTML5 and Deciding When to Use It. Robby Robson, Ph.D. & Heather L. Jones, MCT Eduworks

Lesson Overview. Getting Started. The Internet WWW

Differences between HTML and HTML 5

Avaya Inventory Management System

Modern Web Development:

Create Cool Lumira Visualization Extensions with SAP Web IDE Dong Pan SAP PM and RIG Analytics Henry Kam Senior Product Manager, Developer Ecosystem

How To Write A Web Server In Javascript

Voluntary Product Accessibility Template Blackboard Learn Release 9.1 April 2014 (Published April 30, 2014)

Prerequisite: CGA 101, or written permission of instructor.

Next Generation Lab. A solution for remote characterization of analog integrated circuits

UX for Successful Products

The Internet, the Web, and Electronic Commerce

Web Design Competition College of Computing Science, Department of Information Systems. New Jersey Institute of Technology

Geography 167: Cartography (Summer 2014, Session A) Instructor Course Description Learning Objectives: Course Delivery Method: online course

Web Development I & II*

IBM Script Portlet for WebSphere Portal Release 1.1

WP Popup Magic User Guide

Apple Applications > Safari

Toward a community enhanced programming education

CSE 203 Web Programming 1. Prepared by: Asst. Prof. Dr. Maryam Eskandari

Facebook Twitter YouTube Google Plus Website . o Zooming and Panning. Panel. 3D commands. o Working with Canvas

Retool your HTML/JavaScript to go Mobile

Learning HTML5 Game Programming

Research on HTML5 in Web Development

Backbase Accessibility

Developing ASP.NET MVC 4 Web Applications MOC 20486

Voluntary Product Accessibility Template (VPAT)

Programming Fundamentals of Web Applications Course 10958A; 5 Days

Information Technology Career Cluster Web Development Course Number: Course Standard 1

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Getting Started with WPM

Outline. CIW Web Design Specialist. Course Content

Installation & Configuration Guide Professional Edition

Print to Interactive Roadmap. with Patrick McNeil

Transcription:

September 23rd São Paulo - Brazil Rethinking Online Code Editors for Supporting Time-based Web Documents Rodrigo Laiola Guimarães ()

What are online code editors? 2

What are online code editors? Authoring tools that allow developers to code and see the results promptly 2

What are online code editors? Authoring tools that allow developers to code and see the results promptly Bret Victor: Inventing on Principle and Learnable Programming > http://vimeo.com/36579366 2

What are online code editors? Authoring tools that allow developers to code and see the results promptly Bret Victor: Inventing on Principle and Learnable Programming > http://vimeo.com/36579366 There are a number of Web playgrounds for prototyping HTML, CSS and JavaScript JS Bin 2

In this work 3

In this work We go a step further by giving special attention to the temporal aspect (e.g. preserving presentation state between code changes) 3

In this work We go a step further by giving special attention to the temporal aspect (e.g. preserving presentation state between code changes) Our proof of concept has been developed using many open source libraries, and currently it works in modern Web browsers (e.g., Safari, Firefox and Chrome) 3

In this work We go a step further by giving special attention to the temporal aspect (e.g. preserving presentation state between code changes) Our proof of concept has been developed using many open source libraries, and currently it works in modern Web browsers (e.g., Safari, Firefox and Chrome) Main functionalities: immediate feedback, coding assistance, playback control and programmatic visualization 3

Demo Video 4

5

5

User Interface 6

User Interface 6

User Interface A CodeMirror: text editor in JS 6

User Interface A CodeMirror: text editor in JS B IFRAME 6

User Interface 1" A CodeMirror: text editor in JS B IFRAME 6

User Interface 1" 2" A CodeMirror: text editor in JS B IFRAME 6

User Interface 1" 2" 3" A CodeMirror: text editor in JS B IFRAME 6

User Interface 1" 2" 3" 4" A CodeMirror: text editor in JS B IFRAME 6

Infrastructure 7

Infrastructure changes)and)) event)updates) code)editor) web)server) sketch) <html>) )<head>) )) <style/>) )) <script/>) )</head>) )) <body/>) </html>) persistence) real%7me) events) database)server) back%end) front%end) %)code)changes) %)playback)calls) %)code)helpers)(!")) code)previewer)(local)) code)previewer)(remote)) 7

Infrastructure changes)and)) event)updates) code)editor) web)server) sketch) <html>) )<head>) )) <style/>) )) <script/>) )</head>) )) <body/>) </html>) persistence) real%7me) events) database)server) back%end) front%end) %)code)changes) %)playback)calls) %)code)helpers)(!")) code)previewer)(local)) code)previewer)(remote)) 7

Infrastructure changes)and)) event)updates) code)editor) web)server) sketch) <html>) )<head>) )) <style/>) )) <script/>) )</head>) )) <body/>) </html>) persistence) real%7me) events) database)server) back%end) front%end) %)code)changes) %)playback)calls) %)code)helpers)(!")) code)previewer)(local)) code)previewer)(remote)) 7

Infrastructure changes)and)) event)updates) code)editor) web)server) sketch) <html>) )<head>) )) <style/>) )) <script/>) )</head>) )) <body/>) </html>) persistence) real%7me) events) database)server) back%end) front%end) %)code)changes) %)playback)calls) %)code)helpers)(!")) code)previewer)(local)) code)previewer)(remote)) 7

Infrastructure changes)and)) event)updates) code)editor) web)server) sketch) <html>) )<head>) )) <style/>) )) <script/>) )</head>) )) <body/>) </html>) persistence) real%7me) events) database)server) back%end) front%end) %)code)changes) %)playback)calls) %)code)helpers)(!")) code)previewer)(local)) code)previewer)(remote)) 7

Implementation: Code Changes Document A Document B Diff Delta A/B Patch Document B' Document A Replace Document B' Document B 8

Implementation: Code Changes HTML Document A Document B Diff Delta A/B Patch Document B' Document A Replace Document B' Document B 8

Implementation: Code Changes HTML diffdom: A JavaScript diffing algorithm for DOM elements Document A Document B Diff Delta A/B Patch Document B' Document A Replace Document B' Document B 8

Implementation: Code Changes HTML diffdom: A JavaScript diffing algorithm for DOM elements Document A Document B Diff Delta A/B Patch Document B' CSS Document A Replace Document B' Document B 8

Implementation: Code Changes HTML diffdom: A JavaScript diffing algorithm for DOM elements Document A Document B Diff Delta A/B Patch Document B' CSS Document A Replace Document B' Document B JavaScript > still to be done! (very hard) 8

Implementation: Helpers 9

Implementation: Helpers Contextual helpers can facilitate the authoring process: a) color picker b) slider and c) angle picker 9

Implementation: Helpers Contextual helpers can facilitate the authoring process: a) color picker b) slider and c) angle picker Inlet: JavaScript plugin for CodeMirror 9

User Evaluation 10

User Evaluation 22 post-secondary students over 2 weeks (IFES) 10

User Evaluation 22 post-secondary students over 2 weeks (IFES) Exercises on how to use SVG graphics on the Web 10

User Evaluation 22 post-secondary students over 2 weeks (IFES) Exercises on how to use SVG graphics on the Web Results based on SUS framework and open-ended questions 10 9 8 Number of Scores 7 6 5 4 3 2 1 0 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 SUS Score 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 10

User Evaluation 22 post-secondary students over 2 weeks (IFES) Exercises on how to use SVG graphics on the Web Results based on SUS framework and open-ended questions 10 9 8 Number of Scores 7 6 5 4 3 2 1 0 0.0 5.0 10.0 15.0 20.0 25.0 30.0 35.0 40.0 45.0 50.0 55.0 SUS Score Mean SUS score = 90.0 / Learnability score = 84.7 60.0 65.0 70.0 75.0 80.0 85.0 90.0 95.0 100.0 10

Final Remarks 11

Final Remarks Valuable tool to teach concepts of time on Web documents using the Problem-Based Learning (PBL) methodology 11

Final Remarks Valuable tool to teach concepts of time on Web documents using the Problem-Based Learning (PBL) methodology Next steps: improve current implementation based on user evaluation 11

Final Remarks Valuable tool to teach concepts of time on Web documents using the Problem-Based Learning (PBL) methodology Next steps: improve current implementation based on user evaluation Add support code snippets in SMIL Timesheets and Time Style Sheets (TSS) 11

Final Remarks Valuable tool to teach concepts of time on Web documents using the Problem-Based Learning (PBL) methodology Next steps: improve current implementation based on user evaluation Add support code snippets in SMIL Timesheets and Time Style Sheets (TSS) We need a fresh new look into the standardization of time-based APIs on the Web 11

Final Remarks Valuable tool to teach concepts of time on Web documents using the Problem-Based Learning (PBL) methodology Next steps: improve current implementation based on user evaluation Add support code snippets in SMIL Timesheets and Time Style Sheets (TSS) We need a fresh new look into the standardization of time-based APIs on the Web Offer mechanisms to control and simulate the behavior of elements over time (e.g. temporal visualization) 11

sketchbook.laiola.com.br Thanks! Rodrigo Laiola Guimarães rodrigo@laiola.com.br 12