<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Hi David,<DIV><BR><DIV><DIV>On Jul 13, 2006, at 11:28 AM, David Corking wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV>(cross-post from beginners list)</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>I cc it to squeakland, as this is the preferred list to discuss Etoy-related questions.</DIV><BR><BLOCKQUOTE type="cite"><DIV><BR></DIV><DIV>On 7/11/06, Markus Gaelli &lt;<A href="mailto:gaelli@emergent.de">gaelli@emergent.de</A>&gt; wrote:</DIV> <BLOCKQUOTE type="cite"><DIV><BR></DIV><DIV>Anyone tried the Etoys-Version? Someone told me that it was not</DIV><DIV>working for him, but I did not investigate...</DIV><DIV><BR></DIV> </BLOCKQUOTE><DIV><A href="http://www.squeakland.org/project.jsp?http://www.emergent.de/pub/smalltalk/squeak/projects/reverse.pr">http://www.squeakland.org/project.jsp?http://www.emergent.de/pub/smalltalk/squeak/projects/reverse.pr</A></DIV><DIV><BR></DIV><DIV>Yes - it is fun and has a lovely interface.  (I am using Linux and</DIV><DIV>Firefox - and I have a squeakland-3.8-1.noarch.rpm from</DIV><DIV>www.squeakland.org)  It is a great demo of the power of tiles and</DIV><DIV>Etoys.</DIV><DIV><BR></DIV></BLOCKQUOTE><BR><DIV>Thank you for trying. Glad that it works and that you like it.  :-) </DIV></DIV><DIV><BR><BLOCKQUOTE type="cite"><DIV></DIV><DIV>I am brand new to smalltalk and Etoys, and to 'everything is an</DIV><DIV>object'.  So, I tried to teach myself something from Markus work.  My</DIV><DIV>learning anecdote is included as a p.s.</DIV><DIV><BR></DIV><DIV>My tentative conclusion - it feels like I have a long learning curve</DIV><DIV>ahead of me - a curve of building, breaking and repairing many Etoys,</DIV><DIV>and learning the underlying development tools, before I could</DIV><DIV>confidently assist a 12 year old who wants to make his imagination</DIV><DIV>come to life on his computer screen.  I intend to embark on that</DIV><DIV>learning curve.  I hope to be surprised later when my nephew takes the</DIV><DIV>odd 'message not understood' dialog in his stride, deletes (or loses)</DIV><DIV>some of his work, and starts again in the excitement of authoring his</DIV><DIV>own multimedia product.   Do my thoughts resonate with those of you</DIV><DIV>more experienced, or is it easier than it looks to introduce tile</DIV><DIV>scripting to kids?</DIV><DIV><BR></DIV><DIV>BTW - thanks Markus and best regards, David</DIV><DIV><BR></DIV><DIV>p.s. my anecdote :</DIV><DIV>to teach myself a  little from Markus's Reverse Game, I click around a</DIV><DIV>bit to try to work out <BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV>You stumbled exactly over the two main "tricks" here:</DIV><DIV><BR><BLOCKQUOTE type="cite"><DIV>1. why/how do all the buttons run the same</DIV><DIV>scripts? <BR></DIV></BLOCKQUOTE><BR><DIV>Etoys is a nice implementation of prototype systems as it stems back from "self".</DIV><DIV>That means, that you can create shallow copies of any morph using "siblings...".</DIV><DIV>So I created one cell, and then via red menu halo "Siblings..." -&gt; "Create multiple Siblings..." I created another 8 siblings of this one.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>A script done for one morph then also applies to all its siblings. If you change that script, all siblings change their behavior also, as they share the very same script.</DIV><BR><BLOCKQUOTE type="cite"><DIV>2. where is the HelperStack?</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This is the one behind the ReverseStack. (The one where you can only see the orange outline, I should have denoted it...)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>In Etoys you can only program visual objects. </DIV><DIV>Thus I used that HelperStack to put in the cell at the cursor of the ReverseStack (which always denotes the first cell) until the clicked cell is at the first position.</DIV><DIV>As the cells are always included at the last position of the HelperStack (using the default include: method) and afterwards included at the first position of the ReverseStack</DIV><DIV>(using the includeAtCursor: method) the cells get reversed.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>But I agree, as long as Etoys do not provide a visual debugger, where one could watch each step animated, it is hard to understand what is going on.</DIV><DIV>For a start you could drag (thus disable) the </DIV><DIV>"HelperStack tellAllContents: includeInReverseField"-tile out of its script to actually see the cells in the ReverseStack after pressing some cell.</DIV><BR><BLOCKQUOTE type="cite"><DIV><BR></DIV><DIV>In overenthusiastic clicking, I delete a ScriptStatusControl and break</DIV><DIV>the toy :( ('Message not understood' dialog whenever I click on a</DIV><DIV>number cell.)  I decide this is another learning opportunity.  A</DIV><DIV>couple of minutes clicking around and I haven't found out how to give</DIV><DIV>the broken script a new status control.  I googled aound a bit for</DIV><DIV>docs, but I know too little about Squeak to know what to ask Google.</DIV><DIV>Next I try to make a new tile script from scratch (monkey see - monkey</DIV><DIV>do)</DIV><DIV><BR></DIV><DIV>Oops! I accidentally click on a 'send message' (! bang) button, and</DIV><DIV>Squeak goes into a busy loop.  The screen is not updating at all, and</DIV><DIV>my processsor is at 100% for 3 or 4 minutes.  Finally, my processor</DIV><DIV>load goes back to normal, but still nothing is happening in the Squeak</DIV><DIV>window. <BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV>If you are not in the browser Ctrl-. could work to interrupt a process - otherwise it might be the best to just restart and reload... :-/</DIV><DIV><BR><BLOCKQUOTE type="cite"><DIV> I still don't know the answers to my first two questions.  I</DIV><DIV>have more sympathy with Chris Cunnington.</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>This project is intended to show (off ;-) what could be done with Etoys and really pushing its limits.</DIV><DIV>I guess it is less suited as a general intro, but - who knows?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Cheers,</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Markus</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR></DIV></DIV></BODY></HTML>