My first experience with notebook 2.0

One thing I had on my bucket list, but never really tried to implement is a visualization based on the hyperbolic geometry following the idea of Lamping & Rao’s classic “hyperbolic browser” (Xerox PARC, 1995, video or paper).

  • I started out from scratch and was really excited after just a few prompts to have Hyperbolic Tree Viewer - Part 1 come to live. It felt the Observable notebook harness gives the LLM a really good environment to turn ideas into working code very quickly.

  • Then @lao commented on the notebook and that interaction sparking the community vibes (from the earlier observable times) and his extensions covering ideas for layout, scalability and label placement Hyperbolic Tree Viewer Remix were deeply gratifying.
    Not only was the interaction with one of the contributors I have admired for so many notebooks very motivating and rewarding. In addition he came up with so many great ideas and improvements! :star_struck:

  • At the same time, I was adding functionality mainly with respect to interactivity and data-driven extensions Hyperbolic Tree Viewer - v2 and felt very motivated to merge both improvements leading to Hyperbolic tree viewer-v3. I am really happy with the results demonstrating useful functionality with this tree visualization. I do find however, it came at the expense of ending up with pretty cluttered code (didn’t try much refactoring).

    :backhand_index_pointing_right: General Feedback

    I really like the experience how it came together.
    For me the platform has great value when the following two aspects are central to it:

  1. Collaboration and match-making of like-minded people and people with shared interests. The ease and low-barrier of discovering content and connecting with peers is for me a top criteria choosing a platform/ community and I hope designing and further push toward how technology and design can facilitate collaboration remains a top priority
  2. Having an efficient coding agent is truly a booster for ideas to come to live. While LLMs even in their basic form are great coding agents, I felt like the integration with the agent here gets me quicker to the visualization results I envisioned than e.g. Cursor. Almost any prompted idea was leading to the desired result in one shot. At most it took two or three.
  • For me notebook 2.0 does and should provide a space where connecting to the community and getting inspired by the community should be top priority.
    “Connecting with humans and get teleported by agents”

    :backhand_index_pointing_right: Specific Feedback

  • While finding the agent icon on the bottom right sight was “possible”, it took me a bit to understand hitting the same icon in red brings me back

  • I have added something to a notebook, which I want to discard - I want to revert to the published version. How can I do that?

  • How do I put a notebook in an existing or new collection?

  • When the agent works a little window with scroll bars is populated line by line. I am not sure if I got anything content wise from that display - I felt the opposite. While I am not able to read the lines moving in the little window - doesn’t it slow down the response?

  • I like the way the result are cells with code and comments in the code. At first, the main implementation cell just got bigger and bigger leaving me with the reflection, if this doesn’t lead to cluttering the context too much and coming to the token limit too early by using a cell with almost the whole code and a ton of commentaries. So I tried different ways how to split code and commentaries into different cells - so just relevant cells which are effected are put in the context window. Was my observation right that I have to actively manage the code and comment blocks at some point? If yes, maybe there are some general default paths to take which could to provided by the platform

  • When @lao chimed in with a comment I used the comment start a little discussion. I got a bit carried away by the excitement thinking later - are the comments the place to start a short discussion/ exchange? Maybe you could offer two things: comments as is AND some choice to start a thread/ discussion somewhere to be more 1 on 1 , which could be interesting for the public - or too specific for everyone

  • The path I chose was almost agent-only. I admit - and I am not sure if it’s a good thing - I did basically everything by just prompting. nor did I delve into the implementation afterwards.

Thanks for the great overall experience - I am excited to be part of it!:heart_eyes:

Incredible feedback, thank you so much! We were just talking internally about how grateful we are for the quality and sophistication of feedback we get here. “Connecting with humans and get teleported by agents” is well-articulated. Hard to balance both intelligences these days lol.

And I was just showing off your notebook to people. Great idea, great collaboration. This paper by Ben Shneiderman et al., on the history of treemaps, introduced me to hyperbolic trees.

Version history is being saved but isn’t exposed yet. You have to go to the old UI (just prepend old. to observablehq.com in the URL) and do it the old way (history sidebar etc).

Same answer, gotta go to Old! I do this constantly, very annoying. Workin’ on it! Only way in New right now is: when viewing a collection, click “New” in upper right to create a new notebook within that collection.

Doesn’t affect speed of response. I agree I rarely look at it. Would be better if it showed diff. I mean, in general, we are amidst an existential reckoning on how and when it matters for humans to look at code, and so far we’re very much erring on the side of showing the code. You should know what code you’re running! Sorta. More or less. Especially in security-minded cases.

Certainly in my experience. We could probably prompt it to clean up after itself better.

Sure, try it! We want more comments! But at some point, yeah, you want Markdown, code, etc, it starts to feel like a mini notebook. I want notebook “replies” to notebooks…

You and the whole world! :sweat_smile:

One more question:

Will you provide at one point a feature to export the code via the menu (as in the old notebooks) ?
(why am I asking? I have some ideas to extend the visualization to possibly handle millions of data points. If that works the use cases I envision would be more as a stand alone app which has access to local files instead of files being uploaded)

And one more framing of Observable which comes to my mind :wink:

  • Connecting with people - to share and expand on ideas, goals, purpose and direction
  • and connecting with AI - to accelerate implementation, documentation and understanding

Definitely! We will provide download options using the open file format defined in Notebook Kit. James King maintains an unofficial tool you can use today. There’s also already an observable download command but it uses the old API because it predates the launch of New Observable and so doesn’t support all the new features yet.