Hi
user
Admin Login:
Username:
Password:
Name:
Hop, Skip, Jump: Implementing a concurrent interpreter with Promises
--client
lca
--show
lca_2015
--room Case_Room_3 9407 --force
Next: 12 Cross-platform development in QML
show more...
Marks
Author(s):
Timothy Jones
Location
Case Room 3
Date
jan Wed 14
Days Raw Files
Start
15:40
First Raw Start
15:06
Duration
0:45:00
Offset
0:33:58
End
16:25
Last Raw End
16:30
Chapters
00:00
0:39:18
Total cuts_time
43 min.
http://lca2015.linux.org.au/schedule/30200/view_talk
raw-playlist
raw-mp4-playlist
encoded-files-playlist
host
public
tweet
mp4
svg
png
assets
release.pdf
Hop_Skip_Jump_Implementing_a_concurrent_interpreter_with_Promises.json
logs
Admin:
episode
episode list
cut list
raw files day
marks day
marks day
image_files
State:
---------
borked
edit
encode
push to queue
post
richard
review 1
email
review 2
make public
tweet
to-miror
conf
done
Locked:
clear this to unlock
Locked by:
user/process that locked.
Start:
initially scheduled time from master, adjusted to match reality
Duration:
length in hh:mm:ss
Name:
Video Title (shows in video search results)
Emails:
email(s) of the presenter(s)
Released:
has someone authorised pubication
Unknown
Yes
No
Normalise:
Channelcopy:
m=mono, 01=copy left to right, 10=right to left, 00=ignore.
Thumbnail:
filename.png
Description:
markdown
Grace is a relatively new programming language, developed to provide more options for educators introducing programming to students. We have built a non-blocking interpreter for Grace in JavaScript, using a Promise-like API to control asynchronous behaviour. The result is Hopper, an interpreter which can be used as a Node.js command-line tool or as a regular JavaScript library on either Node or the browser. The interpreter uses various techniques to avoid hanging the browser while it is executing, as well as preventing the stack from overflowing during task execution. This talk will discuss the challenges posed by implementing Hopper. It will investigate the Promises/A+ specification and how our implementation cannot be fully compatible with the spec while providing all of the necessary functionality, and our various attempts at developing our own extensions on top of a compliant system. In particular, we will look at the combination of language features from Grace that require these various extensions, including synchronous APIs, exceptions, and ensuring that 'finally' blocks execute at the appropriate time, as well as demonstrating how easy it is to build concurrent methods for Grace in Hopper. It will also cover the layout of the interpreter and the issue of attempting to support both Node.js and browsers with the same codebase (even in the presence of the browserify tool). Finally, it will consider the challenge of achieving performance in such a setting, where constantly jumping out of execution and deferring to the event loop compounds the more general issue of optimising an interpreter for a dynamic language.
Comment:
production notes
2015-01-14/15_06_02.dv
Apply:
15:06:02 - 15:46:54 ( 00:40:52 )
S:
15:06:02 -
E:
15:46:54
D:
00:40:52
show more...
vlc ~/Videos/veyepar/lca/lca_2015/dv/Case_Room_3/2015-01-14/15_06_02.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
15:06:02
seconds: 0.0
Wall: 15:06:02
Duration
00:40:52
15:46:54
seconds: 0.0
Wall: 15:06:02
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
2015-01-14/15_46_54.dv
Apply:
15:46:54 - 16:26:12 ( 00:39:18 )
S:
15:46:54 -
E:
16:26:12
D:
00:39:18
show more...
vlc ~/Videos/veyepar/lca/lca_2015/dv/Case_Room_3/2015-01-14/15_46_54.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
15:46:54
seconds: 0.0
Wall: 15:46:54
Duration
00:39:18
16:26:12
seconds: 0.0
Wall: 15:46:54
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
2015-01-14/16_26_13.dv
Apply:
16:26:13 - 16:30:15 ( 00:04:02 )
S:
16:26:13 -
E:
16:30:15
D:
00:04:02
show more...
vlc ~/Videos/veyepar/lca/lca_2015/dv/Case_Room_3/2015-01-14/16_26_13.dv :start-time=00.0 --audio-desync=0
Raw File
Cut List
16:26:13
seconds: 0.0
Wall: 16:26:13
Duration
00:04:02
16:30:15
seconds: 0.0
Wall: 16:26:13
Comments:
mp4
mp4.m3u
dv.m3u
Split:
Sequence:
:
delete
Rf filename:
root is .../show/dv/location/, example: 2013-03-13/13:13:30.dv
Sequence:
get this:
check and save to add this
2015-01-14/15_06_02.dv
2015-01-14/15_46_54.dv
2015-01-14/16_26_13.dv
Veyepar
Video Eyeball Processor and Review