non-linear editing of text-based screencasts · non-linear editing algorithm for text-based...

53
Non-Linear Editing of Text-Based Screencasts KAIST University of Minnesota KAIST Jungkook Park* Yeong Hoon Park* Alice Oh Presenter : Yeong Hoon Park 10/16/2018, UIST 2018

Upload: others

Post on 11-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing of Text-Based Screencasts

KAIST

University of Minnesota

KAIST

Jungkook Park*

Yeong Hoon Park*

Alice Oh

Presenter : Yeong Hoon Park

10/16/2018, UIST 2018

Page 2: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

2

Instructional Screencasts are Increasingly Popular

Page 3: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

aScreencast frames:

time

ab abc ax

Video format

records screen

aababcax

Image frames

(h.264, …)

Text-based screencast

records text changes

δ(0, 0, “a”) = aδ(1, 1, “b”) = abδ(2, 2, “c”) = abcδ(1, 3, “x”) = ax

Text edit operations

(OT, …)

*OT: Operational Transformation

Page 4: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

https://youtu.be/nYQeSQhOCVE

Page 5: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Text-based screencasts enable

rich interaction with the text-based content in screencasts.

Page 6: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

6

Videos Text-based screencasts

No non-linear editing tool available

Page 7: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Technical Challenge

Text operation sequence has a causal structure. Future

events are influenced by the past!

Ambiguity: Changes made in the past often create multiple

possibilities for diverging future timelines.

Resolution: Need some mechanism to resolve the ambiguity.

Page 8: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

8

...

Quick br

text operation

new operation

EDITEDORIGINAL

Quick brw

Quick brwn

Quick brwn fox

Quick brwo Quick brow Quick bro

Quick bro

Page 9: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

9

...

Quick br

text operation

new operation

EDITEDORIGINAL

Quick brw

Quick brwn

Quick brwn fox

Quick bro

Quick brwo Quick brow Quick bro

... which one did the user want?

Page 10: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

10

...

Quick br

text operation

new operation

screencast

content

EDITEDORIGINAL

Quick brw

Quick brwn

Quick brwn fox

Quick brwo Quick brow Quick bro

Quick bro

Because the tool does not understand the meaning of the

content, it cannot automatically choose one for the user.

“Semantic consistency” problem in collaborative editing

systems, merge conflict resolution in version control systems.

Our approach: let the user make their choice!

Page 11: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

11

...

Quick br

EDITEDORIGINAL

Quick brw

Quick brwn

Quick brwn fox

Quick brwo Quick brow Quick bro

Quick bro

Quick brown

Quick brown fox

Page 12: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

12

...

Quick br

Quick brow

Quick bro

Quick brown

Quick brown fox

EDITED

Page 13: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

https://youtu.be/Ijo90S0KZz8

Page 14: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Outline

14

Non-linear editing algorithm for text-based screencasts

An exploratory study demonstrating that users can successfully

edit a text-based screencast using our editor in various scenarios

A prototype editor that implements non-linear editing

functionality for text-based screencasts

Page 15: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing Algorithmfor text-based screencasts

15

DEFINITION

- A screencast is a sequence of text operations.

(we use OT as a unit of text operations)

a

time

ab abc ax= Screencast 𝐿 =δ(0, 0, “a”),δ(1, 1, “b”),δ(2, 2, “c”),δ(1, 3, “x”)

Page 16: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing Algorithmfor text-based screencasts

16

INPUT

- a screencast 𝐿𝑂- a range [𝑠, e] to re-record

- a re-recorded screencast 𝐿𝑁

OUTPUT

- a screencast 𝐿𝐿 ≔ 𝐿𝑂 : 𝑠 + 𝐿𝑁 + 𝑟𝑒𝑠𝑜𝑙𝑣𝑒(𝐿𝑂 𝑒: )

𝐿𝑂

𝐿𝑁

𝑠 eoriginal screencast

new screencast segment

Page 17: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing Algorithmfor text-based screencasts

17

INPUT

- a screencast 𝐿𝑂- a range [𝑠, e] to re-record

- a re-recorded screencast 𝐿𝑁

𝐿𝑂

OUTPUT

- a screencast 𝐿𝐿 ≔ 𝐿𝑂 : 𝑠 + 𝐿𝑁 + 𝑟𝑒𝑠𝑜𝑙𝑣𝑒(𝐿𝑂 𝑒: )

𝐿𝑁

𝑠

𝐿𝑂[𝑒: ]𝐿𝑂[𝑒: ]

e

𝐿𝑂[: 𝑠]“latter part”

Page 18: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing Algorithmfor text-based screencasts

18

INPUT

- a screencast 𝐿𝑂- a range [𝑠, e] to re-record

- a re-recorded screencast 𝐿𝑁

𝐿𝑂

OUTPUT

- a screencast 𝐿𝐿 ≔ 𝐿𝑂 : 𝑠 + 𝐿𝑁 + 𝑟𝑒𝑠𝑜𝑙𝑣𝑒(𝐿𝑂 𝑒: )

𝐿𝑁

𝐿𝑂[𝑒: ]𝐿𝑂[𝑒: ]

𝐿𝑂[: 𝑠]“latter part”

Page 19: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

𝐿𝑂[𝑒: ]

Non-Linear Editing Algorithmfor text-based screencasts

19

INPUT

- a screencast 𝐿𝑂- a range [𝑠, e] to re-record

- a re-recorded screencast 𝐿𝑁

𝐿𝑂

OUTPUT

- a screencast 𝐿𝐿 ≔ 𝐿𝑂 : 𝑠 + 𝐿𝑁 + 𝑟𝑒𝑠𝑜𝑙𝑣𝑒(𝐿𝑂 𝑒: )

𝐿𝑁𝐿𝑂[: 𝑠]

Transform the OTs.

In case of ambiguity, ask user.

𝐿𝑂[𝑒: ]𝐿𝑂[𝑒: ]

𝑟𝑒𝑠𝑜𝑙𝑣𝑒(𝐿𝑂′ 𝑒: )

Page 20: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

𝐿𝑂[: 𝑒] Transformation (w/o Ambiguity Resolution)

ORIGINAL 𝐿𝑂[𝑒: ]

HISTORICAL CONTEXT

EDITED

𝐿𝑂′ 𝑒:+ 𝐿𝑁𝐿𝑂[: 𝑠]

𝐿𝑂[𝑠: 𝑒]𝐿𝑂[: 𝑠] +

“former part” “removed part”

“former part” “new segment”

“latter part”

Page 21: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

𝐿𝑂[: 𝑒] Transformation (w/o Ambiguity Resolution)

EDITED

ORIGINAL

HISTORICAL CONTEXT

𝐿𝑂[𝑠: 𝑒]𝐿𝑂[: 𝑠] +

-1

𝐿𝑂[𝑠: 𝑒]+ + 𝐿𝑁𝐿𝑂[𝑠: 𝑒]𝐿𝑂[: 𝑠] +=

+ 𝐿𝑁𝐿𝑂[: 𝑠]

𝐿𝑂[𝑒: ]

𝐿𝑂′ 𝑒:

“latter part”“former part” “removed part”

“former part” “new segment”

Page 22: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

𝐿𝑂[: 𝑒] Transformation (w/o Ambiguity Resolution)

EDITED

ORIGINAL

HISTORICAL CONTEXT

𝐿𝑂[𝑠: 𝑒]𝐿𝑂[: 𝑠] +

Transform 𝐿𝑂[𝑒: ] with …

𝐿𝑂[𝑒: ]

𝐿𝑂′ 𝑒:

-1

𝐿𝑂[𝑠: 𝑒]+ + 𝐿𝑁𝐿𝑂[𝑠: 𝑒]𝐿𝑂[: 𝑠] +=

+ 𝐿𝑁𝐿𝑂[: 𝑠]

Page 23: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

23

a

EDITEDORIGINAL

ab

axy

𝐿𝑂[: 𝑒] Transformation (w/ Ambiguity Resolution)

“Ambiguous area” from xy

…This position overlaps with

the ambiguous area.

→ ambiguity occurs.

- Is there an ambiguity?

- If so, what are the possible transformations?

Page 24: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

axy

abxy axby axyb axb aby ab

Any combination of b and xy.

b can also replace any substring of xy.

24

a

EDITEDORIGINAL

ab

𝐿𝑂[: 𝑒] Transformation (w/ Ambiguity Resolution)

Page 25: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

25

a

EDITEDORIGINAL

axy

abcd

a b

axbyAmbiguous areas

cd overlaps with the

second ambiguous area.

(corresponds to y)

Any combination of cd and y.

cd can also replace y.

axbcdy axbcyd axbycd axbcd

𝐿𝑂[: 𝑒] Transformation (w/ Ambiguity Resolution)

Page 26: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

26

a

EDITEDORIGINAL

axy

abcd

a b

axbyAmbiguous areas

‘cd’ overlaps with the

second ambiguous area.

(corresponds to ‘y’)

axbcdy axbcyd axbycd axbcd

Any combination of ‘cd’ and ‘y’.

‘cd’ can also replace ‘y’.

Repeat until all OTs in 𝐿𝑂[: 𝑒] are transformed.

𝐿𝑂[: 𝑒] Transformation (w/ Ambiguity Resolution)

Page 27: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Outline

27

Non-linear editing algorithm for text-based screencasts

An exploratory study demonstrating that users can successfully

edit a text-based screencast using our editor in various scenarios

A prototype editor that implements non-linear editing

functionality for text-based screencasts

Page 28: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

28

Page 29: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

29

Time Range Selection

https://youtu.be/Y6UkmdvVqjs

Page 30: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

30

a

EDITEDORIGINAL

axy

ab

...

1

1

2

2

33

4

4

Page 31: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Outline

31

Non-linear editing algorithm for text-based screencasts

An exploratory study demonstrating that users can successfully

edit a text-based screencast using our editor in various scenarios

A prototype editor that implements non-linear editing

functionality for text-based screencasts

Page 32: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Exploratory User Studywith simulated real-world use cases

32

(i) Can users successfully edit a screencast in a diverse range

of use cases?

(ii) What editing patterns emerge when users carry out

different editing tasks?

(iii) How difficult is it for the users to perform ambiguity

resolution?

Page 33: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Exploratory User Studywith simulated real-world use cases

33

6 participants

Tool tutorial

10 minutes

Record a 10-minute

screencast

+ do 4 editing tasks

60 minutes

Semi-structured

interview

15 minutes

Page 34: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

34

t Task 1. Record 10-minute screencast (write a simple hash table with put/get methods then test cases.)

Page 35: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

35

t

Task 2. Find and correct 3 mistakes

Task 1. Record 10-minute screencast (write a simple hash table with put/get methods then test cases.)

Page 36: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Exploratory User Studywith simulated real-world use cases

36

t

Task 3. Add a remove method after implementing

put and get methods but before writing test cases

Task 2. Find and correct 3 mistakes

Task 1. Record 10-minute screencast (write a simple hash table with put/get methods then test cases.)

Page 37: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Exploratory User Studywith simulated real-world use cases

37

t

Task 3. Add a remove method after implementing

put and get methods but before writing test cases

Task 4. Rename one variable that is referenced at

least 3 times

Task 2. Find and correct 3 mistakes

Task 1. Record 10-minute screencast (write a simple hash table with put/get methods then test cases.)

Page 38: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Exploratory User Studywith simulated real-world use cases

38

t

Task 5. Write docstring for put and get methods

Task 3. Add a remove method after implementing

put and get methods but before writing test cases

Task 4. Rename one variable that is referenced at

least 3 times

Task 2. Find and correct 3 mistakes

Task 1. Record 10-minute screencast (write a simple hash table with put/get methods then test cases.)

Page 39: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

39

Result Highlights

All participants completed the tasks successfully.

Participants found the ambiguity resolution process difficult.

Page 40: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

40

54

208 11

37

5 27 23

0

20

40

60

80

100

Task 2 Task 3 Task 4 Task 5

# Non-Linear Edits(Ʃ 6 participants)

w/o Ambiguity w/ Ambiguity

18.56

47.79

21.04

14.79

0

20

40

60

Task 2 Task 3 Task 4 Task 5

Median Time Spend for One Ambiguity Resolution (s)

Avg. 31 edits / task / participant

49.7% of the edits introduced an ambiguity

Each ambiguity requires avg. 1.45 decisions

Median 19.1 seconds to resolve an ambiguity

Page 41: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

All participants completed the tasks successfully.

Participants found the ambiguity resolution process difficult.

41

Result Highlights

Page 42: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

42

“I don’t know what comes next.. with this one character diff.” (S2)

Difficulty of keeping track of all the changes from recording

Showing only the “Next Frame” is not enough

“I cannot be conscious of the whole changes from the beginning to

end when I'm editing.” (S4)

“It seems that I have a habit of unconsciously inserting characters

and removing them while I'm thinking.” (S3)

Page 43: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

43

Too much cognitive effort

“I didn’t give too much thought into ‘why’ or ‘how’ before every move

because it’s complicated. ...” (S6)

Some users shook the ‘from’ and ‘to’ handles until the Next Frame turned out as they desired

Page 44: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

44

Further Research Directions

- Give users much more context of what they are doing.

- Usability issues.

Reduce the cognitive burden of ambiguity resolution.

Need to improve interface design for ambiguity resolution.

- Context-aware suggestions?

Page 45: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

https://github.com/elicast-research/non-linear-edit

Page 46: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based

Non-Linear Editing of Text-Based Screencasts

KAIST

University of Minnesota

KAIST

Jungkook Park*

Yeong Hoon Park*

Alice Oh

https://github.com/elicast-research/non-linear-edit

Page 47: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 48: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 49: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 50: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 51: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 52: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based
Page 53: Non-Linear Editing of Text-Based Screencasts · Non-linear editing algorithm for text-based screencasts An exploratory study demonstrating that users can successfully edit a text-based