tag:blogger.com,1999:blog-8272979.post112617885283425359..comments2009-04-14T19:20:35.081-07:00Comments on TAKASHI'S WORKSPACE: UNDO!Takashihttp://www.blogger.com/profile/00275489652316753838noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-8272979.post-1129826188562271992005-10-20T09:36:00.000-07:002005-10-20T09:36:00.000-07:00Hi there,I have stumbled across your blog while se...Hi there,<BR/>I have stumbled across your blog while searching for info on squeak. I am a final year student working on my hons project which happens to be to develop etoys. Could you direct me to any website/literature that may help me on my way?? I would really appreciate it. Thanks kelKellynoreply@blogger.comtag:blogger.com,1999:blog-8272979.post-1128364853173403762005-10-03T11:40:00.000-07:002005-10-03T11:40:00.000-07:00I implemented undo once in a moderately complex vi...I implemented undo once in a moderately complex virtual-human design system. (<A HREF="http://tinyurl.com/dwj59" REL="nofollow">PeoplePutty</A>)<BR/><BR/>We basically created a recordable state object for every undo-capable module, and then recorded all the state objects. The trick was making the state object both complete and small.<BR/><BR/>I was never really happy with the results, partially because of regular poor performance, but also because of the just design difficulties arising from having a complex system with several different parts and categories of undo.<BR/><BR/>So,<BR/>hats off to you for tackling this !orionhttp://www.blogger.com/profile/13279965738021257236noreply@blogger.comtag:blogger.com,1999:blog-8272979.post-1126196776723953952005-09-08T09:26:00.000-07:002005-09-08T09:26:00.000-07:00Thanks Howard!I looked the Brie demo at NICT with ...Thanks Howard!<BR/><BR/>I looked the Brie demo at NICT with Julian. I was impressed the idea of using TeaMessage for playback mechanism.<BR/><BR/>Actually my idea note was for etoys (finally it becomes Tweak base), current etoys has just poor ability for undoing, so we (etoys' developers) had discussed what kind of undoing mechanism is needed for etoys at Glendale last week. So I was surprised that you had already made replaying demo in Croquet. New generation of etoys needs proper way of undo/redo/playback and even network sharing, there are a lot of similar issues of Croquet.<BR/><BR/>But I am just starting now, and there are many difficult issue for me, "gesture" model is a good suggestion that certainly I need it. If we have to care about network collaboration ??????????<BR/><BR/>First of all, I'm going to study the undo model of Emacs. It has same aspects than we expected in etoys in many ways, it has infinity undoing, besides you can undo even after you executes user script written in elisp. I'd like to know how Emacs could undo smoothly unless saving vast size of state.<BR/><BR/>- Takashitakhttp://www.blogger.com/profile/07863610630461049969noreply@blogger.comtag:blogger.com,1999:blog-8272979.post-1126190641444526752005-09-08T07:44:00.000-07:002005-09-08T07:44:00.000-07:00Some things to think about for Croquet:What is the...Some things to think about for Croquet:<BR/><BR/>What is the granularity of change? Is it uniform across a system, or do different applications have different granularity?<BR/><BR/>Conceptually, there's a message history that can be recorded. By definition, the current state can be reproduced by starting with any committed state and then replaying the messages since then. <BR/><BR/>In general, we only care about messages from one tea party to another, where the source and destination are on different hosts. For example, messages from your avatar to the party or from my avatar to the party, are the ones that actually correspond to "external input". But even some of these message are pretty fine-grained (e.g., pointerMove:). Brie has a "gesture" model, where there is distinction between operations that a user thinks of as a single gesture.<BR/><BR/>For some applications, it may be handy for a user to specify certain points of time to be of interest. I don't like to make users think about explicitly saving their work, but in those systems that do force users to explicitly "save" or "publish", this forms a natural granularity that the user has actively dicided as the states worth noting.<BR/><BR/>In general, a message or gesture is not reversable: not every action has an "inverse" action that will undo it. So the only general mechanism for going backwards through time (e.g., with a scroller) is to save the entire state whenever something of interest changes. (A plausible optimization is to not constantly be saving things during normal use, but wait until someone decides they need to go backwards. At that time, we can start with the most recent convenient checkpoint and replay the messages, with saves of state after each change.)<BR/><BR/>What about interactions between objects? Suppose we treat a whole tea party as a unit as described above, where for example, messages from an "outside" party are the the things defining our history for replay. Now, suppose you are replaying the history of a space. Can you be in the space? You're a different tea party! What about the messages that are sent to get the timeline slider to move? One model for this is the "3d portal" or "God's eye view". It's a model of a space, looking from outside. You could be in a place, holding a small 3d model of some place, and simultaneously sliding a timeline back and forth that controls the tea time shown by the 3d model. Then, at some point, you could decide to jump into that model and branch the timeline to create an alternative future from the point that the timeline was at when you jumped in.<BR/><BR/>But what about messages from the party controlled by the 3d model, outward to the party that you are now in? Those messages, if replayed, would effect your own past!<BR/><BR/>And what about having multiple tea parties in a scene? For example, an object in a space could be a proxy to another tea party. I think this is a generalization of the question of what happens to the avatars of folks who were in a place being replayed.Howard Stearnshttp://www.blogger.com/profile/04309276597565242929noreply@blogger.com