<div dir="ltr"><div class="gmail_default" style="font-size:small">oops.  Ignore me.  I just read the longer post about SimulationStudio.  Super cool.  No need to respond.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 18, 2021 at 1:18 PM Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small">Hi Christoph,</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">    very cool work.  Let me suggest another avenue for the simulation sandbox. Apologies if we've already discussed this.  MethodFinder is a super cool tool, but it has to be prevented from creating havok using a horrible hack.  A set of selectors are used to prevent MethodFinder from starting potentially dangerous computations.  This list isn't obvious, is never up-to-date, and can potentially exclude useful results.  A much better way of implementing MethodFinder seems to be to implement it using simulation and have it maintain the set of objects created so far in the execution, allowing them to be mutated, but aborting whenever an attempt is made to modify an object outside of the sandbox, etc.  This could be a much more robust way to architect the message finder, and performance might be adequate.  I think it's worth exploring.</div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 17, 2021 at 5:32 AM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de" target="_blank">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_4207403539177125148gmail-m_9136319476748093387divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Hi all!</p>
<p><br>
</p>
<p>After announcing SimulationStudio and Sandbox yesterday [3], today I'm happy to introduce you to two other repositories which I have been working at during the last months. Last week, I had the pleasure to present them during the German Squeak Winter Demos
 [4]. Drum roll, say hello to TelegramBot [1] & TelegramSmalltalkBot [2]! :-)</p>
<p><br>
</p>
<p><b>TelegramBot</b> is a small framework I built to make it possible to implement bots for the Telegram messenger [5]. It uses the official Telegram Bot REST API [6] and maps it to an object-oriented design in Squeak, providing support for different bot capabilities
 such as message sending, receiving, and editing. It also allows sending multi-media message types such as pictures (Forms), formatted messages (Texts), audio messages (AbstractSounds), and some others. Last but not least, it comprises a small API to host your
 bots in a background process of the image. For more information, check out the README.md of the repository in [1].</p>
<p><br>
</p>
<p><b>TelegramSmalltalkBot</b> is a second repository that implements a Telegram bot for evaluating Smalltalk expressions by using the TelegramBot framework from above. Do you know this situation when you wonder "how does XYZ work in Squeak" and cannot check
 it out because you do not have any PC or laptop at hand right now? This situation is history as of today, just send a message to the bot from wherever you are, just using your phone or even your watch! In a nutshell, TelegramSmalltalkBot is a simple REPL shell
 that utilizes the Squeak Compiler, but it's also packed with a number of convenient features that make remote access to your image much more pleasant. For example, the bot does not only answer plain text but also multi-media messages such as pictures or files
 depending on the results of your expressions. You can also use Workspace-like variable bindings or reply to older messages from the bot to bind the receiver of your message. For an exhaustive list of all features, visit the repository in [2] or just send /help
 to the bot. I also have uploaded a short video demo about it at [7].</p>
<p><br>
</p>
<p>Another important thing to note is that TelegramSmalltalkBot is able to evaluate every expression in a sandboxed execution environment by using the SimulationStudio library I announced yesterday [3]. While both projects have grown rather independently of
 each other, this usage fills an important gap for me and I think it is a relevant real-world use case of the Sandbox.</p>
<p><br>
</p>
<p><b>Please try it out!</b><b> :-)</b> All you need is a Telegram account for free and a client (Telegram is available cross-platform and can also be used from the web). I am hosting an instance of the bot myself on my raspberry pi and I feel confident enough
 about the isolation quality of my Sandbox that I dare to unlock public access to the bot for everyone. A small architecture diagram which I have shown at the Winter Demos is in the attachments (contains clickable links to the repositories), you can also find
 it in the wiki of [2].</p>
<p><br>
</p>
<p>Just search in the Telegram app for <b>@SqueakSmalltalkBot</b> or follow this link: <a href="https://t.me/SqueakSmalltalkBot" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk362361" style="font-weight:bold" target="_blank">https://t.me/SqueakSmalltalkBot</a> [8] (QR
 code is also in the attachments)<a href="https://t.me/SqueakSmalltalkBot" target="_blank"></a></p>
<p><br>
</p>
<p><b>I'm very much looking forward to your feedback!</b> If you experience any problems or have new ideas, please let me know via squeak-dev or GitHub issues! I'm already planning many new features for the bot - be sure to watch the repository if you are interested
 in them. :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<p><br>
</p>
<p><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">[</span><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">1</span><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">] </span><a href="https://github.com/LinqLover/TelegramBot" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk938251" style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px" target="_blank">https://github.com/LinqLover/TelegramBot</a><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px"></span></p>
<div id="gmail-m_4207403539177125148gmail-m_9136319476748093387Signature" style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">
<div id="gmail-m_4207403539177125148gmail-m_9136319476748093387divtagdefaultwrapper" dir="ltr" style="font-size:12pt">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif;margin:0px">
<font size="2" color="#808080"></font></div>
</div>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">
[2] <a href="https://github.com/LinqLover/TelegramSmalltalkBot" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk302257" target="_blank">https://github.com/LinqLover/TelegramSmalltalkBot</a></div>
<div><span style="font-size:12pt">[3] </span><a href="http://forum.world.st/ANN-SimulationStudio-and-sandboxed-execution-for-Squeak-td5127804.html" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk909071" style="font-size:12pt" target="_blank">http://forum.world.st/ANN-SimulationStudio-and-sandboxed-execution-for-Squeak-td5127804.html</a><br>
</div>
<p></p>
<p>[4] <a href="http://forum.world.st/Squeak-Winter-Demos-2021-03-06-3-p-m-6-p-m-CET-virtual-tp5126913.html" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk629643" target="_blank">http://forum.world.st/Squeak-Winter-Demos-2021-03-06-3-p-m-6-p-m-CET-virtual-tp5126913.html</a></p>
<div>[5] <a href="https://telegram.org" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk688112" target="_blank">https://telegram.org</a></div>
<div>[6] <a href="https://core.telegram.org/bots/api" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk55218" target="_blank">https://core.telegram.org/bots/api</a></div>
<div>[7] <a href="https://youtu.be/HZCeThLqQmg" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk347140" target="_blank">https://youtu.be/HZCeThLqQmg</a></div>
<div>[8] <a href="https://t.me/SqueakSmalltalkBot" id="gmail-m_4207403539177125148gmail-m_9136319476748093387LPlnk848090" target="_blank">https://t.me/SqueakSmalltalkBot</a></div>
</div>
</div>

<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="font-size:small;border-collapse:separate"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></span></div></div></div>