Enhancing the Web With End-User Programming Tak Yeon Lee, Ben Bederson

advertisement
Enhancing the Web
With End-User Programming
Tak Yeon Lee, Ben Bederson
Outline
Problem
Inefficiencies on the Web
Challenge
Building extension is very hard
Our goal
Expressive and Easy Programming Env.
- Improves a wide range of tasks
- No programming skills required
Snapshot
ANY WEBSITE
Inefficiencies on the Web
1. Missing relevant information
“Is it a good value?”
 Kelly’s Blue book
“Is the model reliable?”
 Auto forums
“I want to see the pictures.”
 Detail page
“How far is this place?”
 Google Map
2. Removing unwanted information
AD
AD
2. Removing unwanted information
3. Repetitive Operations
“I want to download all PDFs named as
[first author]-[title]-[year].pdf ”
10.1.1.154.444.pdf
Howe-TheRiseOfCrowdsourcing-2006.pdf
Kittur-08-001.pdf
Kittur-CrowdsourcingUserStudies-2008.pdf
60947(1).pdf
Brabham-CrowdsourcingAsAModelFor-2008.pdf
Alonso2008.pdf
Alonso-CrowdsourcingForRelevanceEvaluation-2008.pdf
4. Finding a needle in a haystack
Grading Procedure
1. Finding mistakes
Takes 4-8 hours
to grade 70 students
2. Add comments
3. Calculate the total points
4. Submit to grade server
Summary of
Potential Mistakes
Grading with an extension
MyDouble.zero
2. Click to add
predefined comment
MyDouble.zero
1. Click to scroll to the
code line of the mistake
“Previously it took several hours, but now I
can finish in 40 minutes.”
- Lecturer
“Three times faster than before, at least!”
3. Setting partial
-Grading
TA
credit
MyDouble.zero
4. Report total score
to another server
Browser Extensions
add new features and personalize experience.
Over 50,000 on Chrome Web Store
AdBlock
Photo Zoom
Print All
>15 million users
>2 million users
E-mails in a folder
Building an extension requires
• Programming knowledge (HTML, CSS, and Ajax)
• Time and effort of development
• The grading example took >40 hours
OUR GOAL IS TO BUILD
Expressive and Easy programming env.
The toolkit should support tasks like...
•
•
•
•
Automating repetitive jobs
Integrating data from multiple sources
Custom filtering
Information Summary
We defined a domain language model having
Pick, Change, Add operations
as generic functionalities of the extensions.
Pick Change Add model
Pick
extract information from web pages or elements.
<A> tags
The rise of
crowdsourcing.pdf
Crowdsourcing user
studies...
Crowdsourcing as a model
...
URLs
http://sistemashumano.com...
http://dl.acm.org/citation.cfm
?id=1357127
http://con.sagepub.com/...
Pick Change Add model
Change
manipulates dataset.
[b]
3
[a]
1
• Arithmetic operations
• +, -, /, %, ...
• sum, avg, count, ...
2
3
• String manipulation
[a] * [b]
3
6
9
• concatenate, split, find, replace, ...
• Filter
• Sort
Pick Change Add model
Change
manipulates dataset.
[b]
-
[a]
I
• Arithmetic operations
• +, -, /, %, ...
• sum, avg, count, ...
am a
boy
• String manipulation
Join [a] with [b]
I-am a-boy
• join, split, find, replace, ...
• Filter
• Sort
Pick Change Add model
Change
manipulates dataset.
[a]
a.jpg
[b]
png
• Arithmetic operations
• +, -, /, %, ...
• sum, avg, count, ...
b.gif
c.png
• String manipulation
Filter [a] having [b]
c.png
• join, split, find, replace, ...
• Filter
• Sort
Pick Change Add model
Change
manipulates dataset.
[a]
Toronto
• Arithmetic operations
• +, -, /, %, ...
• sum, avg, count, ...
Seoul
Paris
• String manipulation
Sort [a]
Paris
Seoul
Toronto
• join, split, find, replace, ...
• Filter
• Sort
Pick Change Add model
Add
modify the original web pages.
• Create new elements
• image, text, button, ...
• Modify element’s style
• Show / Hide, changing color, fonts, ...
• Triggering events
• click, ...
• Type text
Pick Change Add model
e.g. Removing AD banners
[1]. Pick ad banner elements
[2]. Hide [1]
AD
AD
Pick Change Add model
e.g. Downloading files with custom name pattern
[1]. Pick title text
The rise of crowdsourcing.pdf
[2]. Merge [1] with
name pattern “.pdf”
Crowdsourcing user studies with Mechanical Turk.pdf
[3]. Pick download links
Crowdsourcing as a model for.pdf
[4]. Add [2] to ‘download’
attribute of [3]
Crowdsourcing for relevance evaluation.pdf
OUR GOAL IS TO BUILD
Expressive and Easy programming env.
• Requires no programming knowledge
• Programming-by-Example techniques
• Telling computer what I want, without worrying
how to do.
Programming-by-Example technique
INPUT
PROGRAM
OUTPUT
Traditional Programming
Programming-by-Example
?
1, 2, 3
int sum=0;
for(int v in input)
{
sum=sum+v;
}
return sum;
?
!
6
Programming-by-Example technique
Programs with multiple inputs
e.g. Adding suffix to strings
[1]
[2]
Paris
Input
.jpg
NewYork
Seoul
Tokyo
Merge [1] with [2]
Paris.jpg
Output
NewYork.jpg
Seoul.jpg
Tokyo.jpg
Programming-by-Example technique
Multi-step programming
e.g. Counting items of [1] that exist in [2]
[1]
[2]
Paris, France
Korea
Istanbul, Turkey
Japan
Seoul, Korea
Osaka, Japan
Filter [1] exist in [2]
[3]
Seoul, Korea
Tokyo, Japan
Count [3]
2
Programming-by-Example technique
Multi-step programming
e.g. Counting items of [1] that exist in [2]
[1]
[2]
London, UK
UK
LA, US
Canada
Beizing, China
China
Toronto, Canada
Filter [1] exist in [2]
[3] London, UK
Beizing, China
Toronto, Canada
Count [3]
3
Demo time
Conclusion
A new opportunity for end-users to personalise the web by
creating their own extensions.
Programming-by-Example techniques
with Pick, Change, Add model
Future work includes
• Usability Tune up
• Evaluation of the system’s learnability
Please email us if you have an idea for extensions
Tak Yeon Lee <tylee@umd.edu>
Download