# New Playground! - Blast

**URL:** <https://forum.dfinity.org/t/new-playground-blast/15708>\
**Category:** Developers\
**Created:** [October 1, 2022, 5:56pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708 "2022-10-01T17:56:20Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![infu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/infu/32/11321_2.png) [@infu](https://forum.dfinity.org/u/infu)\
**Post date:** [October 1, 2022, 5:56pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/1 "2022-10-01T17:56:20Z")

</div>

Check it out here  
[[https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/](https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/)]

I hope you have fun!

I will add some more blasts and announce in on Twitter in a few days.  
If you have ideas or code for presets they will be much appreciated.

I will add soon:

- more blasts
- sharing
- better canister interface inspection

---

<div class="post-metadata">

**Author:** ![amircryptola1](https://avatars.discourse-cdn.com/v4/letter/a/e495f1/32.png) [@amircryptola1](https://forum.dfinity.org/u/amircryptola1)\
**Post date:** [October 1, 2022, 7:35pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/2 "2022-10-01T19:35:06Z")

</div>

Cool thank you for sharing! Should definitely help with onboarding newcomers

---

<div class="post-metadata">

**Author:** ![infu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/infu/32/11321_2.png) [@infu](https://forum.dfinity.org/u/infu)\
**Post date:** [October 3, 2022, 10:57am UTC](https://forum.dfinity.org/t/new-playground-blast/15708/3 "2022-10-03T10:57:50Z")

</div>

Added canister inspection

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/2X/7/71810b9de037d5d791e8b5ebd61b8fd5fcdd4ee5.png)

Tries a different approach when explaining interfaces

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/2X/6/61451fe5a6df7a6f397676c795ff9f65b6aaa7fc.png)

Added table display

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/2X/a/aa7dffd4d23827b1cae2ea95274ccff232fe1e12.png)

---

<div class="post-metadata">

**Author:** ![infu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/infu/32/11321_2.png) [@infu](https://forum.dfinity.org/u/infu)\
**Post date:** [October 7, 2022, 6:07pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/4 "2022-10-07T18:07:40Z")

</div>

Added Motoko to the playground.

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/2X/3/380e27b838f37365dcbd3dc69d3154871281650b.png)  
[Internet Computer Content Validation Bootstrap](https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/41.6e5cfc8600203fe513231b96d154c662b0da74f016c27a6373d5ed83)  
You can deploy & redeploy test code.  
You can also hit “Make Immutable” and then share your blast.  
I think it will fit when someone wants to make a small contract for the purposes of proving airdrop fairness & drawing a random number, etc.

I am using [[GitHub - dfinity/node-motoko: Compile Motoko smart contracts in Node.js and the browser.](https://github.com/dfinity/node-motoko) ] which I believe is originally intended for the VS Studio Code addon? and the Motoko Playground.  
I very much appreciate that repository.

There is an issue I got, but figured out a temporary workaround [[Subsequent compilations of the same code result in different wasm · Issue #25 · dfinity/node-motoko · GitHub](https://github.com/dfinity/node-motoko/issues/25) ]  
One of the problems is having deterministic compilations.  
Which also includes finger-pointing Motoko compiler versions for older code.  
@rvanasa

If it’s outside of the scope of this package, I will fork it, but it doesn’t seem to be a lot of hassle to do.  
I will also need to prove that Blast’s front end isn’t cheating, which probably means I’ll give code to users to verify contracts on their own. Something using the node-motoko package.

---

<div class="post-metadata">

**Author:** ![infu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/infu/32/11321_2.png) [@infu](https://forum.dfinity.org/u/infu)\
**Post date:** [October 10, 2022, 10:38am UTC](https://forum.dfinity.org/t/new-playground-blast/15708/5 "2022-10-10T10:38:43Z")

</div>

Happy to announce that I’ve added inline Motoko (no need to install it in canisters)  
This example demonstrates stable nested @ZhenyaUsenko’s HashMap, probably something every new dev wants to do.

 ![image](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/2X/5/50d1839063113dbbbe86ab75924bf00c3fb142a3.png)  
Changed the editor from Codemirror to Monaco (used in VScode)  
Added installing packages  
Added Motoko syntax highlighting + compiler checks & errors

@rvanasa I ran into a problem (while using `run`). Adding more than 20 lines of code results in “Maximum call stack size exceeded” which somehow magically fixes after 3-4 retries. Can I increase the limit somehow?

My goal with these examples is to help the next Mark Zuckerberg make a web3 startup from his dorm room. I will be adding more, usually in response to discord #motoko questions. There are currently 3 pages (blasts) here [[https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/](https://jglts-daaaa-aaaai-qnpma-cai.ic0.app/)]

@claudio @rossberg @ggreif I hope you approve of what I am doing with your language. I will be happy to take any criticism.

Edit: I am wondering - are there plans to make classes stable? asking because the community is going towards rewriting all data structures to work on data instead of being inside the data - like the example above

---

<div class="post-metadata">

**Author:** ![rvanasa](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/rvanasa/32/23650_2.png) [@rvanasa](https://forum.dfinity.org/u/rvanasa)\
**Post date:** [October 10, 2022, 4:10pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/6 "2022-10-10T16:10:24Z")

</div>

It’s currently possible to compile and run WASI to get around the stack overflow issue ([example](https://github.com/dfinity/node-motoko/blob/main/examples/wasm.js)). My understanding is that this works for everything except actors / actor classes, so I’ll ask the team if there’s a way to add support for these so it could fully replace the interpreter in this situation.

---

<div class="post-metadata">

**Author:** ![rossberg](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/rossberg/32/795_2.png) [@rossberg](https://forum.dfinity.org/u/rossberg)\
**Post date:** [October 10, 2022, 4:29pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/7 "2022-10-10T16:29:36Z")

</div>

> [@infu](#):
>
> My goal with these examples is to help the next Mark Zuckerberg make a web3 startup from his dorm room. […]  
> @claudio @rossberg @ggreif I hope you approve of what I am doing with your language

Well, except for the strange goal – if there’s one thing the world doesn’t need, then it’s another sociopath with way too much unchecked power. ; )

---

<div class="post-metadata">

**Author:** ![infu](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/infu/32/11321_2.png) [@infu](https://forum.dfinity.org/u/infu)\
**Post date:** [October 10, 2022, 4:49pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/8 "2022-10-10T16:49:52Z")

</div>

Oh, I didn’t know that will solve it. Thanks, it’s enough!

It would be great if we can create an actor and call its functions (without installing), but I don’t need that right now.

---

<div class="post-metadata">

**Author:** ![claudio](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/claudio/32/322_2.png) [@claudio](https://forum.dfinity.org/u/claudio)\
**Post date:** [October 10, 2022, 7:37pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/9 "2022-10-10T19:37:48Z")

</div>

I don’t think the wasi compiled code will ever perform a GV, since GC is currently tied to IC messaging (unless @nomeata slipped that in somehow). I expect realistic examples will run out of memory.

---

<div class="post-metadata">

**Author:** ![claudio](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/claudio/32/322_2.png) [@claudio](https://forum.dfinity.org/u/claudio)\
**Post date:** [October 10, 2022, 7:43pm UTC](https://forum.dfinity.org/t/new-playground-blast/15708/10 "2022-10-10T19:43:47Z")

</div>

I’m not sure why the stack overflow occurs , but suspect it’s because js\_of\_ocaml can’t handle indirect tail calls, and the interpreter relies on them heavily.

[http://ocsigen.org/js\_of\_ocaml/latest/manual/tailcall](http://ocsigen.org/js_of_ocaml/latest/manual/tailcall)
