

Twiddla does Replays now.  Thanks for the inspiration, Etherpad - jasonkester
http://www.twiddla.com/Replay.aspx?sessionID=76878

======
jasonkester
I got inspired after watching that Etherpad replay demo last night, so this
morning I rebuilt Twiddla's replay viewer from scratch and threw it live.

It's still pretty rough, but I think it will make a good addition to the
service. Thanks, HN, for the inspiration!

Here'a another good one, by the way:
[http://www.twiddla.com/Replay.aspx?sessionID=75448&delay...](http://www.twiddla.com/Replay.aspx?sessionID=75448&delay=100)

edit: that one is cartoonishly NSFW in places, but then that has always been a
typical use case for Twiddla. Drawing "appendages" onto things.

~~~
tdavis
I've never seen my perceived view of marriage so succinctly summed up with
stick figures.

------
sam_in_nyc
Very well done. It seems to me that Etherpad is a subset of Twiddla. I love
Twiddla man.. it's just an amazing tool that pushes browsers to the limits. I
can't imagine how much time and effort had to go into it.

Bug: Mine died for several hundred frames. Kept getting the same JS error.
This might help you out: <http://imgur.com/A82D>

~~~
jasonkester
That's gold. Gotta love the difference between Reddit and HN. "Meh." vs.
"Awesome, even though it broke. Here's a stack trace."

~~~
gruseom
@jason: No kidding.

@sam: Will you be my user too, and send me stack traces when I fuck up? :)

------
teej
Looks great! One thing -

The decay on the "name tag" for a particular stroke seems too long. I can't
see what they just drew because their name is in the way. The effect is more
pronounced on lightning speed.

~~~
jasonkester
Indeed. This is running on the same codebase as Twiddla itself, and those
little tags are timed for real people using the thing in real time. You're
right that it's a bit overwhelming to have 50 of them onscreen at once. I'll
be sure to dial that back.

~~~
wastedbrains
great that was my only complaint on an otherwise very nice looking feature.

~~~
jasonkester
Fixed. They now fade out immediately instead of hanging around for a whole
second. It's a little easier on the eyes now, and you can actually see what's
being drawn without it being lost behind a wall of stickies.

~~~
ralph
Still seems to be too many of them at 2009-02-27 12:40:10 +0000. Also,
playback gradually slows done here on Firefox 3. I gave up after about 1160 on
Michelle's replay.

~~~
jasonkester
Yeah, Firefox has a somewhat undeserved reputation for being fast. They may
have a fast javascript engine, but it's more than made up for by their
amazingly slow rendering engine. I might simply sniff on the browser and turn
those notes off for FF.

------
swombat
That's some fast turnaround. Well done!

~~~
mrkurt
Sorry, I accidentally downmodded you (didn't mean to click there). You can go
ahead and hit me too, if you want. :)

~~~
simplegeek
Worry not, I adjusted the score ;)

------
zhyder
Man Jason, you're starting to worry me :).

I didn't believe there was enough utility in a record/playback feature (and am
still not completely convinced). But looks like people here find it useful.

------
IChrisI
It could use a "go to frame" feature, but otherwise that's quite cool!

~~~
jasonkester
Sure could. That's what stopped from building this in the past. I wanted to be
able to go forward and backward and hop around to any frame. Turns out, that's
a much bigger problem than just playing it forward. Essentially we'd need a
perfectly functioning Undo counterparts to every commend we issue.

Now that it's built, I'm not so worried about the lack of a rewind button. If
I get another free morning, maybe I'll look into it.

~~~
ricree
It's probably not the best way to go about it, but couldn't you implement that
by just cutting the delay to zero and drawing from the beginning until the
requested frame? It probably wouldn't work well if you wanted to step through
the page backwards, but for just cutting to a specific frame it seems like it
aught to do the job with minimal extra coding.

~~~
jasonkester
That's essentially how we do snapshots now. You can look backwards until you
find something that clears the screen or loads a new page, and save some work
by just drawing from there. So yeah, jumping to a frame isn't too hard. You
just run the risk of melting something if you try using that technique to
reverse the playback.

------
polvi
That is amazing! Made my fan start screaming, but well worth it!

------
kg
Really cool stuff! How does the client/server stuff work? Is this a comet
based application that gives it the snappy refresh rates? Great work!

~~~
jasonkester
This replay tool simply loads up a big batch of actions and plays them from
the client. Once the page is out the door, we never hear back from it.

Twiddla itself uses good old-fashioned polling, along with a crazy fast
message dispatcher on the server.

I'm still not sold on Comet. It's cool in principle, but you essentially need
to build your own webserver if you want to do it. Personally, I'd rather
simply handle 2000 tiny requests per second than try to juggle 2000
simultaneous open connections. Naturally, there's a bit more lag with polling,
but in Twiddla's case it's hard to notice.

------
davi
reminds me of old days of Mac programming, when PICT format could store &
replay Quickdraw commands

