# Announcing Elm Notebook, version 2

**URL:** <https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398>\
**Category:** Request Feedback\
**Created:** [October 17, 2023, 11:11pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398 "2023-10-17T23:11:20Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 17, 2023, 11:11pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/1 "2023-10-17T23:11:20Z")

</div>

# Elm Notebook V2

I’d like to announce a new version of Elm Notebook (see screenshot below), now available at [https://elm-notebook.org](https://elm-notebook.org) .

 ![Screenshot 2023-10-17 at 2.48.47 PM](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/5/5fc9218f52ce9d915f52aaf1569019c49b3a13dc.png)

Elm Notebook operates by talking to the Elm compiler. The [Welcome](https://elm-notebook2.lamdera.app/open/jxxcarlson-welcome) document in the _Public docs_ tab (sidebar, upper right) gives some operating instructions, and the [Packages](https://elm-notebook2.lamdera.app/open/packages) document talks about how to install and use packages. These links will open up the notebooks in guest mode, so you can experiment with but not create you own notebooks. But you can edit, run, and save cells however you wish. Changes to these documents will not be saved, so you can go wild with them.

There is more work to be done on Elm Notebook, but I though that that work would progress faster if I posted it now so as to benefit from your collective suggestions and bug reports.

One hope I have for Elm Notebook is for it to be used in teaching and learning, including studying (and experimenting) on your own. Here are some sample public notebooks towards that end:

- [Binary Trees](https://elm-notebook.org/open/jxxcarlson-binary-trees)
- [Collatz Conjecture](https://elm-notebook.org/open/jxxcarlson-collatz-conjecture)
- [Parser Recipes 1](https://elm-notebook.org/open/jxxcarlson-parser-recipes-1)
- [Parser Recipes 2](https://elm-notebook.org/open/jxxcarlson-parser-recipes-2)
- [Error Test](https://elm-notebook.org/open/jxxcarlson-error-test)
- [Rose Trees](https://elm-notebook.org/open/jxxcarlson-rose-trees)
- [The Point Type](https://elm-notebook.org/open/jxxcarlson-the-point-type)

If you just want to see if the notebooks work, click on the red _Run all cells_ button in the  
header of Elm Notebook. If you run into trouble, please let me know.

I hope that many of you will write your own notebooks and share them with others by making them public. Just click on the `private/public` button in the footer, right-hand side.

I would like to thank Evan Czaplicki and Mario Rogic for their help with this project. Also thanks to Martin Stewart, who helped me squash several rounds of bugs, oversights, and bad choices.

**Note.** I’ve changed the way error messages are handled (see image below).

 ![Screenshot 2023-10-19 at 8.18.15 PM](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/0/047f08ec19a2c27fa8a4cf28e768d5160e99fd12.png)

**PS.** I am thinking about additional features, e.g. being able to play with code that renders SVG or that runs small simulations. Version 1 of elm-notebook had these features, albeit in somewhat clunky form. My plan, however, is to get the strictly REPL part of version 2 perfected first.\_

---

<div class="post-metadata">

**Author:** ![sylbru](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/sylbru/32/3570_2.png) [@sylbru](https://discourse.elm-lang.org/u/sylbru)\
**Post date:** [October 18, 2023, 4:43pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/2 "2023-10-18T16:43:48Z")

</div>

Great job! Looking forward to see more. Are you able to reveal what is your main focus right now, like when you mention “getting the REPL part perfected”? Also do you have strong opinions on the UI or can we suggest or make changes?

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 18, 2023, 5:06pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/3 "2023-10-18T17:06:21Z")

</div>

Please do make suggestions!

Re main focus, I just want to get any bugs that surface, UI issues, etc. worked out before trying to implement new stuff — little min-apps to present graphics, do small simulations, and so forth

---

<div class="post-metadata">

**Author:** ![paulh](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/paulh/32/5022_2.png) [@paulh](https://discourse.elm-lang.org/u/paulh)\
**Post date:** [October 18, 2023, 11:08pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/4 "2023-10-18T23:08:48Z")

</div>

> [@jxxcarlson](#):
>
> [https://elm-notebook.org](https://elm-notebook.org)

After opening a cell, and hovering over a menu item on the far left, the tooltip is hidden.

 ![Screenshot 2023-10-19 at 00.05.50](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/5/5eb3997b997b1b205e481ea24410ffe29decc594.png)

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 23, 2023, 3:27pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/5 "2023-10-23T15:27:27Z")

</div>

Just wanted to say that this is still very much a work in progress. Especially regarding error messages, which need improving.

I welcome all suggestions, and I particularly welcome bug reports.

– Jim

---

<div class="post-metadata">

**Author:** ![perty](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/perty/32/4459_2.png) [@perty](https://discourse.elm-lang.org/u/perty)\
**Post date:** [October 26, 2023, 5:04am UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/6 "2023-10-26T05:04:31Z")

</div>

I tried the binary tree book. When I press clone, it says “Sorry can’t get that notebook”. The message does not explain anything really and does not suggest any course of action.

Since I’ve used similar things for Python, I think this is really exciting . Keep pushing !

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 26, 2023, 5:37am UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/7 "2023-10-26T05:37:17Z")

</div>

Hi @perty , thanks for the feedback and the encouragement. I suspect that you were signed in as “Guest.” Cloning won’t work in a guest account since such accounts can’t create or save notebooks. Could you try making an account and trying again?

(_I should hide “Clone” in Guest mode. It is misleading to have it visible for Guests._)

* * *

Here is a test I just did after signing in as “plato”:

1. I selected the _Binary Tree_ notebook in the public tab and then looked at the footer, lower right-hand corner of app. Here is what I saw:  
 ![Screenshot 2023-10-26 at 1.26.21 AM](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/3/3df855a8010cf19d359277efd16698e24567a4bb.png)

2. Pressed **Clone** , then got this:  

3. Now I look at the “My Docs” tab:

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 26, 2023, 5:54am UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/8 "2023-10-26T05:54:24Z")

</div>

I’ve put some directions on cloning notebooks in the `Welcome document`:

 ![Screenshot 2023-10-26 at 1.53.10 AM](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/2X/9/99520a6c60d70b1840b80bcce99947cdaaef58f4.png)

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 27, 2023, 2:19pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/9 "2023-10-27T14:19:58Z")

</div>

## New Features

_October 27, 2023_

I’ve added a number of new features:

1. **Sidebar on the left:** two existing buttons have been moved here and two new buttons have been added:

2. You can now put a directive like `@include jxxcarlson-parser-separatedby` in another notebook. This directive will cause all type, type alias definitions, and declarations in the notebook referenced by `jxxcarlson-parser-separatedby` to be loaded into the current notebook. In the example below, the functions `separatedBy` and `comma` are defined outside the current notebook.  

**Addendum.**. I’ve also added a _comment/uncomment_ button which makes it easy to comment or uncomment cell text. You will see this button when you open a cell to edit it.

` `

There can be more than on `@include` directive in a notebook, and these can appear anywhere. See, for example [this notebook](https://elm-notebook.org/open/jxxcarlson-include-notebook-example).

---

<div class="post-metadata">

**Author:** ![perty](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/perty/32/4459_2.png) [@perty](https://discourse.elm-lang.org/u/perty)\
**Post date:** [October 28, 2023, 2:33pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/10 "2023-10-28T14:33:47Z")

</div>

Nope. I created an account but still get the same error message “Sorry, couldn’t get that notebook (1)”

Also, I noted that when you’re a guest, there’s a label “Sign in as Guest” and a button “Sign out as guest”.

---

<div class="post-metadata">

**Author:** ![jxxcarlson](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/jxxcarlson/32/866_2.png) [@jxxcarlson](https://discourse.elm-lang.org/u/jxxcarlson)\
**Post date:** [October 28, 2023, 4:10pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/11 "2023-10-28T16:10:41Z")

</div>

Thanks for the update. I was able to duplicate the misbehavior with the binary trees notebook and have pushed what should be a fix. Could you let me know the results?

I will fix the guest problem as soon as I can … heading out now.

---

<div class="post-metadata">

**Author:** ![perty](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/perty/32/4459_2.png) [@perty](https://discourse.elm-lang.org/u/perty)\
**Post date:** [October 28, 2023, 6:37pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/12 "2023-10-28T18:37:11Z")

</div>

Clone worked now. But the sign-in, sign-up, sign-out deserves an overhaul.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [November 7, 2023, 6:37pm UTC](https://discourse.elm-lang.org/t/announcing-elm-notebook-version-2/9398/13 "2023-11-07T18:37:48Z")

</div>

Closed on November 7, 2023, 6:37pm UTC

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
