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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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...
edit: that one is cartoonishly NSFW in places, but then that has always been a typical use case for Twiddla. Drawing "appendages" onto things.