<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
<div><span style="font-size: 13.3333px">Hi Benoît --</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">> [...] I never seriously considered replacing Morphic altogether but we must at least recognize that Morphic could get a bit cleaner. [...]</span></div><div><span style="font-size: 13.3333px">> [...] Why can't we even *suggest* such a thing in Squeak without being attacked on the mailing list? [...]</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">What you might have experienced is a simple defense mechanism. ;-) You cannot expect the active community to be happy about you suggesting that nothing has happened in the past 10 years or so.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Some of us have the time and energy to keep on cleaning up and improving Squeak on a daily basis. We know about the dark and dusty corners. There is no "magic wand" but only hard work to be done.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Many onward decisions are not easy to be made and *require* people to stick around and stand behind them. One cannot just come along, yell around, delete some classes, and then disappear again.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Squeak's community and its ecosystem depend on honest contributions. At best, contributors have their own pet projects that motivate them to keep going and really figure out what's needed and what is not. And they are also able to realize when some area is just not their level of expertise to make substantial suggestions or improvements. Still, they should be encouraged to raise their concerns from time to time.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">This is Morphic and *so* cool: http://www.zogotounga.net/comp/squeak/rogue.htm</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">> [...] The 6.0 Squeak image I'm looking at right now has *** 512 ** Morph subclasses ! Do we need all that stuff? [...]</span></div><div><span style="font-size: 13.3333px">> Have you tried unloading EToys just for the fun of it? It should be a one click or a one-liner thing but it needs its own page of instructions on the wiki [...]</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Of course, we are also working on untangling the dependencies between EToys and the base system. Along the way, interesting ideas get even ported to become part of the base system.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">I may be wrong, but to me, it looks like that you are either looking for or claim to have a "magic wand" that can make huge changes in a short amount of time without leaving people and content (!) behind.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">https://raw.githubusercontent.com/squeak-smalltalk/squeak-app/squeak-trunk/release-notes/5.1</span></div><div><span style="font-size: 13.3333px">https://raw.githubusercontent.com/squeak-smalltalk/squeak-app/squeak-trunk/release-notes/5.2</span></div><div><span style="font-size: 13.3333px">https://raw.githubusercontent.com/squeak-smalltalk/squeak-app/squeak-trunk/release-notes/5.3</span></div><div><span style="font-size: 13.3333px">https://raw.githubusercontent.com/squeak-smalltalk/squeak-app/squeak-trunk/release-notes/6.0</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">> I get the idea of "basic Squeak" versus "Squeak with EVERYTHING it has to offer" but from a user perspective, [...]</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Well, you are obviously having a kind of narrow perspective here. A Squeak bundle has far from "everything" loaded in the beginning. You might have a personal bias towards not liking EToys or some other content in the system. Then you come up with an argument like "512 Morph subclasses is too many". However, that's besides the point and not helping to clean-up the system. It's not that users are confronted with that number all the time -- tools will usually only show a fraction of that. Fixating an argument on arbitrary metrics overshadows the actual challenge: what *is* there actually and do we need it? Furthermore: do *I* need it or can I simply unload it for my personal project.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Yes, we know about all these things. And we have been working on that for many years. You are not mentioning new facts here... even though your words are more evocative compared to what is usually discussed on the list.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">> [...] One could hear the complaints against Morphic from Cuis & Pharo and honestly recognize that there is/was a problem. [...]</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">My personal guess would be that those communities have a fundamentally different perspective on what a Smalltalk system should be. There are voices that want to "dumb it down" (yes, not simplification but ignorance) by treating such systems as mere IDEs or by focusing on "programming language + standard library". However, I think that Smalltalk systems can shine when treated as being more like operating systems, rich multimedia environments, ...hmm... something malleable that might actually be able to "augmenting human intellect" (-> Doug Engelbart). It's more about a healthy environment with liveness and for exploration.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">No, I don't think that we should grow a bigger community at all cost, following some fancy (short-living!) trends from other communities... Instead, we should look out for honest and long-lasting contributors that have real interest in understanding what is there and how to evolve it.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">This here might be an interesting read and worth your time:</span></div><div><span style="font-size: 13.3333px">https://dl.acm.org/doi/10.1145/3563835.3568733</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">For example, a community that disables the Morphic Halo feature by default does not understand or appreciate the benefits of direct manipulation at all. Here is a simple exercise: instead of picking out things that you do not like, try to make a list of things you do like (about Squeak). And then reflect again and discern "better" (or "worse") from "just different" to counter your personal learning bias.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">> I think we can say goodbye to portability. Backwards compatibility (from one Squeak version to another) is a totally different thing though.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">There are several projects that are still portable because they mostly rely on fundamental Smalltalk concepts and standard interfaces such as Collections, Streams, Exceptions, and Tests:</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">- https://github.com/theseion/Fuel (Max is awesome!!)</span></div><div><span style="font-size: 13.3333px">- https://github.com/Metacello/metacello</span></div><div><span style="font-size: 13.3333px">- https://github.com/dalehenrich/filetree</span></div><div><span style="font-size: 13.3333px">- https://github.com/hpi-swa/smalltalkCI</span></div><div><span style="font-size: 13.3333px">- https://github.com/pharo-vcs/tonel</span></div><div><span style="font-size: 13.3333px"> (kind of via: https://github.com/squeak-smalltalk/squeak-tonel)</span></div><div><span style="font-size: 13.3333px">- https://github.com/svenvc/ston</span></div><div><span style="font-size: 13.3333px"> (kind of via: https://github.com/squeak-smalltalk/squeak-ston)</span></div><div><span style="font-size: 13.3333px">- ...</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Therefore, I think that portability should have its place in a serious discussion about moving forward. :-) We must consider "Smalltalk as a whole" when looking for its place in the modern computing world.</span></div><div><span style="font-size: 13.3333px"><br></span></div><div><span style="font-size: 13.3333px">Best,</span></div><div><span style="font-size: 13.3333px">Marcel</span></div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 24.02.2023 17:35:18 schrieb Benoit St-Jean <bstjean@yahoo.com>:</p><div style="font-family:Arial,Helvetica,sans-serif">
<p><br>
</p>
<div class="moz-cite-prefix">On 2023-02-24 04:02, Marcel Taeumel via
Squeak-dev wrote:<br>
</div>
<blockquote type="cite" cite="mid:Mailbird-c1de9efd-eabc-4b6c-9715-f1bfa8107b27@hpi.de">
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><span style="font-family: Arial, Helvetica,
sans-serif">Well, common sense does. ;-) Unless we make this a
serious discussion considering Pros and Cons, such hasty
thoughts will get us nowhere. From what I have read so far, I
assume, that you have no substantial experience in writing
Morphic applications? I don't know. Sorry, if my conclusion
offended you. Your kind of shallow call just triggered
something... :-/</span></div>
</blockquote>
<p>Perhaps I wasn't/precise clear enough : I never seriously
considered replacing Morphic altogether but we must at least
recognize that Morphic could get a bit cleaner. And the Squeak
image too! The 6.0 Squeak image I'm looking at right now has ***
512 ** Morph subclasses ! Do we need all that stuff? I guess not.
If at least we could unload packages in a *clean* manner, it would
make things easier for everyone and facilitate building smaller
runtime images. <br>
</p>
<p>I get the idea of "basic Squeak" versus "Squeak with EVERYTHING
it has to offer" but from a user perspective, having 512
subclasses of Morph can be overwhelming. On the other hand, if
it's not in the image, how can a user easily find that a
particular morph is available and exists in a certain
repository/package? If Squeak comes loaded with EVERYTHING in the
image, we should at least provide an *easy* way to unload what we
don't need/want/use : that's not the case right now.</p>
<p>Have you tried unloading EToys just for the fun of it? It should
be a one click or a one-liner thing but it needs its own page of
instructions on the wiki (<a class="moz-txt-link-freetext" href="https://wiki.squeak.org/squeak/2848">https://wiki.squeak.org/squeak/2848</a>).
One could hear the complaints against Morphic from Cuis &
Pharo and honestly recognize that there is/was a problem. Why
can't we even *suggest* such a thing in Squeak without being
attacked on the mailing list?<br>
</p>
<p>And no, I'm not offended and your conclusion/assumption was
right: my Morphic experience is limited<br>
</p>
<p><br>
</p>
<blockquote type="cite" cite="mid:Mailbird-c1de9efd-eabc-4b6c-9715-f1bfa8107b27@hpi.de">
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr"><span style="font-family: Arial, Helvetica,
sans-serif">Maybe because us frequent users of Squeak/Morphic
have already realized that both Cuis and Pollock are just
different and not inherently better? Well, I don't know about
Pollock. Cuis has different goals, backwards compatibility may
not be among its most important ones.</span></div>
</blockquote>
<p><br>
</p>
<p>I think we can say goodbye to portability. Backwards
compatibility (from one Squeak version to another) is a totally
different thing though.<br>
</p>
<blockquote type="cite" cite="mid:Mailbird-c1de9efd-eabc-4b6c-9715-f1bfa8107b27@hpi.de">
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
<div><span style="font-family: Arial, Helvetica, sans-serif"><br>
</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif">It's
not that difficult to come up with something different. The
first weeks might be even fun. After that, you figure out
all the corner cases and start arguing about compatibility
and finding balance within the existing community. It is
hard work. It is easy to ignore this fact in the beginning.</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif"><br>
</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif">Best,</span></div>
<div><span style="font-family: Arial, Helvetica, sans-serif">Marcel</span></div>
<div>
<blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px;
margin-top:20px; margin-left:0px;padding-left:10px;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 24.02.2023
05:47:30 schrieb Benoit St-Jean via Squeak-dev
<a class="moz-txt-link-rfc2396E" href="mailto:squeak-dev@lists.squeakfoundation.org"><squeak-dev@lists.squeakfoundation.org></a>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<p>Nothing prevents us from replacing Morphic or
redesigning it!</p>
<p>If Juan was able to do it for Cuis and Sam Shuster was
able to design Pollock for VW, what's stopping us from
even considering that option?</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 2023-02-23 20:14, Stephen
Travis Pope wrote:<br>
</div>
<blockquote type="cite" cite="mid:6B46202C-5ECB-419F-B9C6-AF13646E0355@heaveneverywhere.com">
<div><br>
</div>
Sounds like yet another reason to drop morphic, if you
ask me, and go back to good-old MVC…
<div><br>
</div>
<div>stp<br>
<div> <br class="Apple-interchange-newline" style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">--------</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px">
<br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">Stephen Travis Pope Ojai,</span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important"> </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px;float: none;display: inline !important">California, USA</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;caret-color: rgb(0,
0, 0);color: rgb(0, 0, 0)"> </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;caret-color: rgb(0,
0, 0);color: rgb(0, 0, 0)"></span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: HelveticaNeue;font-size: 12px"></span><span style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)"></span><span style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-size: 16px"></span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0);font-family: "Times New
Roman";font-size: 18px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none"></span><span><img alt="pastedGraphic.tiff" src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net" moz-do-not-send="true"></img></span> <span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>
<a class="moz-txt-link-freetext" href="http://HeavenEverywhere.com" moz-do-not-send="true">http://HeavenEverywhere.com</a></span></span>
<div style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">
<a class="moz-txt-link-freetext" href="http://FASTLabInc.com" moz-do-not-send="true">http://FASTLabInc.com</a></span></span></div>
<div style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">
<a class="moz-txt-link-freetext" href="https://vimeo.com/user19434036/videos" moz-do-not-send="true">https://vimeo.com/user19434036/videos</a></span></span></div>
<div style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px">
</span></span><span style="font-size: 12px;font-family: HelveticaNeue"><a class="moz-txt-link-freetext" href="http://heaveneverywhere.com/Reflections" moz-do-not-send="true">http://heaveneverywhere.com/Reflections</a></span></div>
<div style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;font-size: 16px;caret-color: rgb(0, 0, 0);color: rgb(0, 0,
0)"><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>
</span></span><br style="caret-color: rgb(0, 0,
0);color: rgb(0, 0, 0);font-family: "Times
New Roman";font-size: 16px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none">
</div>
</div>
<div><br>
<blockquote type="cite">
<div>On Feb 23, 2023, at 1:54 PM, Vanessa
Freudenberg <a class="moz-txt-link-rfc2396E" href="mailto:vanessa@codefrau.net" moz-do-not-send="true"><vanessa@codefrau.net></a>
wrote:</div>
<br class="Apple-interchange-newline">
<div>
<div dir="ltr">
<div>Because Morphic is not
multi-thread-clean, you have to be really
careful how to write the do_something to be
reliably executed from a different process.
You have to coordinate with the UI process.
In which case it actually becomes simpler to
just stay in the UI process and use the
mechanisms available.</div>
<div><br>
</div>
<div>Vanessa</div>
<div><br>
</div>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Thu,
Feb 23, 2023 at 11:38 AM Stephen Travis
Pope <<a href="mailto:stephen@heaveneverywhere.com" moz-do-not-send="true" class="moz-txt-link-freetext">stephen@heaveneverywhere.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div><br>
</div>
I’ve been watching this thread and
wondering why nobody suggests the
simplest answer:
<div><br>
</div>
<div><span style="white-space:pre-wrap"> </span>[(Delay
forSeconds: 5) wait.</div>
<div><span style="white-space:pre-wrap"> </span>do_something]
fork.</div>
<div><br>
</div>
<div>stp<br>
<div> <br style="font-family: "Times New
Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">--------</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px">
<br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">Stephen
Travis Pope Ojai,</span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline"> </span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px;float: none;display: inline">California,
USA</span><br style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px">
<span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px">
</span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"></span><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-family: HelveticaNeue;font-size: 12px"></span><span style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"></span><span style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"></span><span style="font-family: "Times
New Roman";font-size: 18px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none"></span><span><span id="cid:186804025b35349b00c1"><pastedGraphic.tiff></span></span><span style="font-family: HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>
<a href="http://heaveneverywhere.com/" target="_blank" moz-do-not-send="true">http://HeavenEverywhere.com</a></span></span>
<div style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family:
HelveticaNeue"><span style="font-style: normal;font-size: 12px"> <a href="http://fastlabinc.com/" target="_blank" moz-do-not-send="true">http://FASTLabInc.com</a></span></span></div>
<div style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family:
HelveticaNeue"><span style="font-style: normal;font-size: 12px"> <a href="https://vimeo.com/user19434036/videos" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://vimeo.com/user19434036/videos</a></span></span></div>
<div style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family:
HelveticaNeue"><span style="font-style: normal;font-size: 12px"> </span></span><span style="font-size: 12px;font-family: HelveticaNeue"><a href="http://heaveneverywhere.com/Reflections" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://heaveneverywhere.com/Reflections</a></span></div>
<div style="font-family: "Times
New Roman";font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none;font-size: 16px"><span style="font-family:
HelveticaNeue"><span style="font-style: normal;font-size: 12px"><br>
</span></span><br style="font-family: "Times
New Roman";font-size: 16px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;text-decoration: none">
</div>
</div>
<div><br>
<blockquote type="cite">
<div>On Feb 22, 2023, at 11:16 AM,
karl ramberg <<a href="mailto:karlramberg@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">karlramberg@gmail.com</a>>
wrote:</div>
<br>
<div>
<div dir="ltr">
<div dir="ltr"><br>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed,
Feb 22, 2023 at 8:47 AM
Taeumel, Marcel via
Squeak-dev <<a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">squeak-dev@lists.squeakfoundation.org</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div>
<div dir="auto">(bm2
future: 1000)
doButtonAction.</div>
</div>
</blockquote>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div>
<div dir="auto"><br>
</div>
<div dir="auto">Also
works for objects that
are not or cannot be
in the world.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Uses
Morphic alarms when
when in UI process.</div>
</div>
</blockquote>
<div> </div>
<div>
<div>Ah, that's cool. I
never used #future: :-)</div>
<div><br>
</div>
<div>Best,</div>
<div>Karl</div>
<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div>
<div dir="auto"><br>
</div>
<div dir="auto">Best,</div>
<div dir="auto">Marcel</div>
<hr style="display:inline-block;width:98%">
<div id="m_-1050382433257594564m_7109622996527457199divRplyFwdMsg" dir="ltr"><span style="font-family:
Calibri, sans-serif"><b>From:</b>
Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">squeak-dev-bounces@lists.squeakfoundation.org</a>>
on behalf of Eduardo
Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">eduardoochs@gmail.com</a>><br>
<b>Sent:</b>
Wednesday, February
22, 2023 7:17:01 AM<br>
<b>To:</b> The
general-purpose
Squeak developers
list <<a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">squeak-dev@lists.squeakfoundation.org</a>><br>
<b>Subject:</b> Re:
[squeak-dev] How do
I "sleep 5"?</span>
<div> </div>
</div>
<div>
<div dir="ltr">
<div dir="ltr">Hi
Karl!<br>
Fantastic, thanks!
=)<br>
I added this to
the class in which
I'm putting most
of my stuff,<br>
<br>
!See class
methodsFor: 'as
yet unclassified'
stamp: 'Edrx
2/22/2023 02:54'!<br>
run: aBlock after:
ms<br>
| aButton |<br>
aButton :=
SimpleButtonMorph
new.<br>
aButton
openInWorld;<br>
hide;<br>
target:
aBlock;<br>
actionSelector:
#value;<br>
addAlarm:
#doButtonAction
after: ms.<br>
! !<br>
<br>
and now I can
simply run this<br>
<br>
See run: [ kf :=
self currentHand
keyboardFocus ]
after: 5000.<br>
<br>
to save into the
variable kf the
morph on which the
keyboard focus is<br>
after 5 seconds.
Neat! =)<br>
<br>
Cheers,<br>
Eduardo Ochs<br>
<a href="http://anggtwu.net/eev-squeak.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://anggtwu.net/eev-squeak.html</a><br>
</div>
<div><br>
</div>
<br>
<div>
<div dir="ltr">On
Wed, 22 Feb 2023
at 01:56, karl
ramberg <<a href="mailto:karlramberg@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">karlramberg@gmail.com</a>>
wrote:<br>
</div>
<blockquote style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>Hi,</div>
<div>A morph
has to be in
the world to
be able to
interact with
it; eg.
#openInWorld.<br>
</div>
<div><br>
</div>
<div>If you
don't want to
see the morph
you can send
it message
#hide. It
makes the
morph
invisible but
it's still in
the world and
can interact
with it.<br>
</div>
<div>To see
the morph
again send
#show.</div>
<div>To delete
the morph send
#delete. The
morph will be
garbage
collected.<br>
</div>
<div><br>
</div>
<div>Best,</div>
<div>Karl<br>
</div>
<div><br>
</div>
</div>
<br>
<div>
<div dir="ltr">On
Tue, Feb 21,
2023 at 11:57
PM Eduardo
Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">eduardoochs@gmail.com</a>>
wrote:<br>
</div>
<blockquote style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div dir="ltr">Hi
Vanessa!<br>
Thanks! =)
This works in
a workspace,<br>
<br>
"Create a
SimpleSwitchMorph
with label
'Toggle'<br>
and a
SimpleButtonMorph
with label
'Flash'.<br>
The
button will be
placed below
the switch."<br>
<br>
sm :=
SimpleSwitchMorph
new.<br>
sm
openInWorld.<br>
bm :=
SimpleButtonMorph
new.<br>
bm
openInWorld.<br>
bm position:
bm position +
(0@32).<br>
<br>
"Three ways
of toggling
the color of
the switch:"<br>
<br>
sm
toggleState.<br>
<br>
bl := [ sm
toggleState ].<br>
bl value.<br>
<br>
bm target:
bl.<br>
bm
actionSelector:
#value.<br>
bm
doButtonAction.<br>
<br>
"Two ways of
toggling the
switch after
1000ms:"<br>
<br>
sm addAlarm:
#toggleState
after: 1000.<br>
bm addAlarm:
#doButtonAction after: 1000.<br>
<br>
but this
doesn't:<br>
<br>
bm2 :=
SimpleButtonMorph
new.<br>
bm2 target:
bl.<br>
bm2
actionSelector:
#value.<br>
bm2
addAlarm:
#doButtonAction
after: 1000.<br>
<br>
What is the
right way to
add an alarm
to a morph
that is not
shown on<br>
the screen?
Also, can I
create a new
invisible
morph every
time that I<br>
want to run an
alarm? Are
they going to
be garbage
collected?<br>
<br>
Thanks in
advance!<br>
Eduardo
Ochs<br>
<a href="http://anggtwu.net/eev-squeak.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://anggtwu.net/eev-squeak.html</a><br>
</div>
<div dir="ltr"><br>
</div>
<br>
<div>
<div dir="ltr">On
Tue, 21 Feb
2023 at 02:16,
Vanessa
Freudenberg
<<a href="mailto:vanessa@codefrau.net" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">vanessa@codefrau.net</a>>
wrote:<br>
</div>
<blockquote style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div>The best
way to do this
in Morphic is
with "alarms":</div>
<div><br>
</div>
<div> self
addAlarm:
#changeKeyboardFocus
after: 5000.<br>
</div>
<div><br>
</div>
<div>which
would
execute the
morph's
changeKeyboardFocus
method 5
seconds later.</div>
<div><br>
</div>
<div>The way
of sleeping
you suggest is
possible too
but more
tricky,
since you
would have to
move your wait
code to an
extra process
to not block
the UI
process, but
then make sure
that the
actual work is
done in the UI
process again
(Morphic is
not
multithreaded,
although
Squeak is).</div>
<div><br>
</div>
<div>Vanessa</div>
<br>
<div>
<div dir="ltr">On
Mon, Feb 20,
2023 at 8:49
PM Eduardo
Ochs <<a href="mailto:eduardoochs@gmail.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">eduardoochs@gmail.com</a>>
wrote:<br>
</div>
<blockquote style="margin:0px
0px 0px
0.8ex;border-left:1px
solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi
list,<br>
<br>
a few days ago
I asked for
help on how to
send a
"synthetic"
keyboard<br>
event to a
morph, and
Karl Ramberg
gave me
exactly the
right hints in<br>
this thread:<br>
<br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/2023-February/223473.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.squeakfoundation.org/pipermail/squeak-dev/2023-February/223473.html</a><br>
<br>
My code is
ready except
for
documentation
and comments -
I'll work on<br>
that in the
next few days
and then post
the result
here and on
the<br>
wiki...<br>
<br>
...but there's
a feature that
I want to add
to it that -
again =( -<br>
needs
something that
I'm not being
able to
discover by
myself. How do<br>
I write a line
of code that
waits for 5
seconds, sort
of like
running<br>
"sleep 5" in a
shell, and
that doesn't
block the rest
of the system?<br>
If I have that
I'll be able
to run these
two lines in a
workspace,<br>
<br>
self
mySleep: 5000.<br>
kf := self
currentHand
keyboardFocus.<br>
<br>
switch the
keyboard focus
to something
else by
clicking on
it, and<br>
then the
variable kf
will be set to
this
"something
else"...<br>
<br>
Thanks in
advance!<br>
Eduardo Ochs<br>
<a href="http://anggtwu.net/eev-squeak.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://anggtwu.net/eev-squeak.html</a><br>
<div><br>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</blockquote>
</div>
<br>
</blockquote>
</div>
</div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
<br>
</blockquote>
</div>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
</div>
</blockquote>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
<pre class="moz-quote-pre" wrap=""></pre>
</blockquote>
</div></blockquote>
</div>