Efficient Interactive Text Playback for Code Sharing and Tutorials

Slides:



Advertisements
Similar presentations
Section 6.2. Record data by magnetizing the binary code on the surface of a disk. Data area is reusable Allows for both sequential and direct access file.
Advertisements

CIMCO Integration Software Products
2.02F Publishing Animated Videos 2.02 Develop Computer Animations.
1 Introduction to Computer Science بسم الله الرحمن الرحيم MULTIMEDIA LEVEL -9 King Khalid University Kingdom of Saudi Arabia Ministry of Higher Education.
Google Bigtable A Distributed Storage System for Structured Data Hadi Salimi, Distributed Systems Laboratory, School of Computer Engineering, Iran University.
Chapter 4 Processor Technology and Architecture. Chapter goals Describe CPU instruction and execution cycles Explain how primitive CPU instructions are.
Video on the Web John H. Krantz Hanover College. Outline What is Video Acquiring with a Digital Camera Creating with ImageJ Editing with QuickTime Delivering.
7-Aug-15 Serialization and XML Pat Palmer What is serialization? “The process of converting an object (or a graph of objects) into a linear sequence.
The Internet & The World Wide Web Notes
Information Technology Ms. Abeer Helwa. Computer Generations First Generation (Vacuum Tubes) -They relied on the machine language to perform operations.
1 An Introduction to TI SmartView Emulator Software (Version 2.0) Jim Eiting Developmental Mathematics Department Collin County Community College August.
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
CIS679: RTP and RTCP r Review of Last Lecture r Streaming from Web Server r RTP and RTCP.
TERMS TO KNOW. Programming Language A vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Each language has.
By: Joel Rodriguez.  International student from Mexico  Delicias, Chihuahua Mexico  Spanish  Sports and Music.
Groovy WHAT IS IT? HOW DOES IT WORK? IS IT USEFUL?
Overview of SQL Server Alka Arora.
I. Pribela, M. Ivanović Neum, Content Automated assessment Testovid system Test generator Module generators Conclusion.
Data Formats CMSC 491 Hadoop-Based Distributed Computing Spring 2015 Adam Shook.
Avro Apache Course: Distributed class Student ID: AM Name: Azzaya Galbazar
INTRODUCTION TO FRONTPAGE. TOPICS TO BE DISCUSSED……….  Introduction Introduction  Features Features  Starting Front Page Starting Front Page  Components.
Computer Hardware and Software Chapter 1. Overview Brief History of Computers Hardware of a Computer Binary and Hexadecimal Numbers Compiling vs. Interpreting.
TOPIC 11 INTERNET AND THE WORLD WIDE WEB 1. OUTLINE 11.1 INTRODUCTION TO THE INTERNET 11.2 INTEGRATIVE MEDIA ON THE INTERNET 11.3 ISSUES OF INTEGRATIVE.
Testovid - an environment for testing almost any aspect of student assignments I. Pribela, S. Tošić, M. Ivanović, Z. Budimac Risan, September 2007.
2.02G Publishing Animated Videos 2.02 Develop Computer Animations.
Defense by Amit Saha March 25 th, 2004, Rice University ANTS : A Toolkit for Building and Dynamically Deploying Network Protocols David Wetherall, John.
BASS Application Sharing System Omer Boyaci September 10,
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
MULTIMEDIA TECHNOLOGY SMM 3001 MEDIA - VIDEO. In this chapter How digital video differs from conventional analog video How digital video differs from.
Operating Systems COMP 4850/CISG 5550 File Systems Files Dr. James Money.
Capabilities of Software. Object Linking & Embedding (OLE) OLE allows information to be shared between different programs For example, a spreadsheet created.
Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Twelfth Edition.
Audio Yu Feng CGDD Review 1. Set up 2. IOS sound – Core Audio – Short Sound – Long Sound – Control Sound – Background Sound 3.Cocos2d sound.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Project Two Adding Web Pages, Links, and Images Define and set a home page Add pages to a Web site Describe Dreamweaver's image accessibility features.
ElVis Improvements Summer 2008 Eric Zatz PPPL Summer Intern Mentor – Eliot Feibush August 11, 2008.
Computer Systems. Bits Computers represent information as patterns of bits A bit (binary digit) is either 0 or 1 –binary  “two states” true and false,
Virtual Navigation of Multimedia Maps A versatile map generator and viewer Virtual Navigation of Multimedia Maps A versatile map generator and viewer Robert.
Copyright © 2002 Pearson Education, Inc. Slide 3-1 Internet II A consortium of more than 180 universities, government agencies, and private businesses.
STORAGE DEVICES Introduction Comparision Storage Hierarchy Slide 1.
BMTS 242: Computer and Systems Lecture 2: Memory, and Software Yousef Alharbi Website
Apache Avro CMSC 491 Hadoop-Based Distributed Computing Spring 2016 Adam Shook.
Accomplish more with macros! Presenter: Joyce Bell Princeton University
Information Technology (IT). Information Technology – technology used to create, store, exchange, and use information in its various forms (business data,
Multimedia Systems Dr. Wissam Alkhadour.
Application and Desktop Sharing
Spencer MacBeth Supervisor - Dr. Ramon Lawrence
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
Module 11: File Structure
The Desktop Screen image displayed when a PC starts up A metaphor
RTP Payload format for Application and Desktop Sharing
GC101 Introduction to computers and programs
Process-to-Process Delivery, TCP and UDP protocols
VIDEO.
Types of geodatabases Introduction to GIS - Student notes
COMPSCI 111 / 111G An introduction to practical computing
                      Digital Audio 1.
2.02G Publishing Animated Videos
SEMINAR ON Optical Burst Switching
2.02F Publishing Animated Videos
MapReduce Simplied Data Processing on Large Clusters
Compiler Construction
Chapter 2: System Structures
Greg Bell Business Development Mgr Industrial & Security Markets
2.C Memory GCSE Computing Langley Park School for Boys.
Fundamentals of Python: First Programs
Outline Chapter 2 (cont) OS Design OS structure
COMPUTER FUNDAMENTALS i
Outline Introduction LSM-tree and LevelDB Architecture WiscKey.
Software Engineering Lecture #6
Presentation transcript:

Efficient Interactive Text Playback for Code Sharing and Tutorials Undergraduate Research Conference 2017 Eric Huang Ramon Lawrence Computer science

Software is written organically in a dynamic, fluid fashion Background Software is written organically in a dynamic, fluid fashion We read it linearly, top to bottom – why? Talk about writing code (organic) versus reading code (linear, top to bottom) [diagrams]

The modern solution to this problem: background The modern solution to this problem: Lead to coding videos as an alternative learning method [picture of bad quality tutorial]

The problem with videos: Motivation The problem with videos: File size Quality Immutability – Copy & Paste

“What if we stored a recording of the text itself, instead?” Motivation Core idea: “What if we stored a recording of the text itself, instead?” Benefits: Significantly smaller file size Perfect quality Can manipulate like other text

Compact storage by only recording timestamps and keystrokes design Compact storage by only recording timestamps and keystrokes Result: Filesize is bounded only by number of actions, not length Storage format? Markup (XML, JSON) – human readable, but high overhead. Requires complex/slow parsing. Binary – not human readable, but very compact. Cheaper parse. Possible storage ideas: [with short example pictures]

Protobuf: Reasons for Protobuf: Protobuf: Google protocol buffers Protobuf: “A binary record format designed for fast parsing and compact transfer” Reasons for Protobuf: Extremely fast parse: “20 to 100 times faster than XML” Compact size : “3 to 10 times smaller than XML” Parsing is easily susceptible to bugs Provides backwards compatibility Network ready – no intermediate serialization required Compact size [show numbers vs xml/json, emphasize why important for BITR]

Core components: BITR features: Reader – Custom GUI (Java) BITR: Binary Interactive Text Recording Core components: Reader – Custom GUI (Java) Writer – IntelliJ Plugin File format specification – Protobuf BITR features: Play/Pause Seek Fast Forward Copy & Paste Describe capabilities [play, pause, copy/paste, fastforward, rewind, seek, streaming capability]

Frame – a record containing one edit action BITr terminology Frame – a record containing one edit action Timestamp – milliseconds since start Offset – location of edit Erase flag – was it a delete? Payload – string

Timeline – a sequence of frames BITr terminology Timeline – a sequence of frames Forms a complete BITR file Describe playback sequence (loading frames and applying changes iteratively to the text)

BITR example User types “cat”

Bitr example: Speed control

Bitr example: seek

Bitr example: copy & paste

Experimental results Video: 49,707,974 bytes (47.4MB) BITR: 1,844 bytes (2KB)

Codebase familiarization Plagiarism detection Multicast streaming applications Codebase familiarization Plagiarism detection Multicast streaming Explore impact on how it affects someone learning a codebase Plagiarism detection [application to grading assignments and knowing if the user was legit] Expand to multicast streaming [live streams using BITR as the protocol]

Simultaneous multiple file support Edit cursor position, mouse cursor Conclusions and future work Simultaneous multiple file support Edit cursor position, mouse cursor Annotation support Special thanks to Dr. Ramon Lawrence for his continued support and mentorship throughout my undergraduate degree. Like an ide