José announces Livebook - a web application for writing interactive and collaborative code notebooks

Lots to like here …

  • live collaboration out of the box – sweet.
  • it’s nucking futs how quickly and effortlessly you cranked out the ML example. One of the most compelling showcases for Elixir’s expressiveness and pattern matching I’ve seen
  • I’ve always liked self-contained, portable, forkable, version-controllable documentation archives. Could see this revolutionizing API and package documentation, which is how I intend to use it right away.

Nice work.


kobi

2 Likes

It’s really sweet to see all of these pieces (Axon, Livebook, Liveview, Nx, …) working together so well. It will be great fun to watch how other pieces fit in and help to build up the ecosystem.

One of the things José mentioned was the use of Livebook to inspect and interact with running Elixir systems. I think there are some real opportunities here, in terms of building dashboards, runtime inspectors, etc. For example, how about creating a 21st century version of Observer?

One complaint I’ve seen about Jupyter Notebooks is that they aren’t very accessible for blind users. Because Livebook is a new project, built out of webbish components, there’s an opportunity to “do things right”. So, I’d encourage everyone to think about (and test) whether the platform works with screen readers.

-r

4 Likes

Screw that, I want a «I dont need a routable ssh path to prod» way to run ad hoc code.

Combine this with MFA escalation and audit logging you are looking at a superb way to do runtime debugging on prod.

Edit: Ok dont screw that, I want both :joy: although livedashboard is already like an off brand good enough observer for me.

There are a couple of potential chart options - ggity, plotex and contex (disclaimer - I’m the primary author of contex).

I couldn’t get LiveBook going properly on my Windows laptop (something weird about the way chocolatey installs and links to Erlang executables preventing spin up of the execution environment by the looks of things, but ran out of time to troubleshoot).

Anyway, from a code inspection it looks like a small enhancement to the output rendering would be required to support any of the chart libs as they all render to SVG which appears not to be supported as yet.

Images are another story. A great native image reading/writing and processing lib would massively simplify my stack but I don’t underestimate how fiddly this would be.

[Edit: included quote to provide context for response]

2 Likes

Yeah. Erlang distribution over websockets would be fantastic. Authenticate, then open a websocket, then you’re in.

Thanks José and everyone else who is involved in making this possible! I was hoping for this to happen and now it does. Soon there will be no reason for me to use other programming languages then my favorite one :grinning:.

1 Like

This will turn Elixir into an exciting version of Smalltalk. Indeed it’s still possible today with Pharo, but Erlang has a much better history with concurrency, so in fact, it will allow to bring these niceties from ST to Elixir.

1 Like

I saw somewhere some discussions about Distributed Erlang using websockets. It’d be nice to see the advance of Lumen in this regard.

Yes, was my first thoughts as well. I’ve already tried it out and what can be done is you can write the blog article in a livebook and post it as a markdown file with a link to dl the livebook.

I am feeling my inner Steve Balmer getting excited for this.

What I want to know is when Elixir 1.12, with ‘mix install’ included, will be released?

Woo! developers! developers! developers!

In the episode #039 of ThinkingElixir @wojtekmach said that first, the OTP 24 has to be released and then Elixir 1.12. Also the Elixir release cycle is now around 9 months and version 1.11 was released on 6th of October 2020. That plus 9 months equals 6th July 2021. :slight_smile:
Anyway, unless you’re running some serious stuff, I wouldn’t be afraid to use 1.12-rc. #yolo :smiley:

TL;DR: New releases every May and November.

Our release cycle was 9 months only last year. Given the situation with Covid, we thought it was a good opportunity to slow things down and give it a try.

In any case, we felt 9 months was definitely too long, so we are going back to our usual 6 months interval. The 9 months also helped us align with Erlang/OTP, so we can release new minor versions and make sure they are compatible with the latest and greatest Erlang/OTP. So our plan is to release a new RC once Erlang/OTP 24.0-rc3 is out and release final shortly after Erlang/OTP 24.0.

17 Likes

Thanks for clarification José. :+1: We’re looking forward to 1.12 final.

1 Like

Thanks for the info guys:) I will try the YOLO approach🤟

3 Likes

This is amazing! Will this be developed into something that supports multiple authenticated user accounts each with their own notebooks?

I have a sample app running without execution runtime support here: https://livebook.onrender.com/
Password: password1234

1 Like

I played around it a bit and it was instructive!

I put a Phoenix app inside the Livebook and I tweaked the session mechanism so i could write controllers and templates inside the Livebook.

Not replacing VScode yet :stuck_out_tongue:

4 Likes

While reading the discussion Is there a complete Elixir AST reference?, it struck me that Livebook could be a really powerful tool for generating and maintaining documentation (with executable examples!) for this sort of thing.

That said, there are some convenience features that might be useful for this and similar use cases. For example, it would be nice to have automated generation of a Table of Contents, as seen in Wikipedia.

-r

I wanted something similar - Something like IO.inspect() for images. To have an exploratory image manipulation setup for my libvips wrapper library.

Since livebook already supports ANSI escape sequences, as proof-of-concept I was able to patch livebook to support image escape sequence (the choice of escape sequence is questionable since this is a proprietary escape sequence). This also works in normal iterm2 terminal. It should work with iex as well, but for some reason it’s not working as of now.

Looks like Livebook team is already working on this, Now I’m interested in their approach to support images.

3 Likes

Ha, I patched it to render SVGs and then found out the “widget” work is already underway. I’m pretty excited to see this!

2 Likes

Did anyone manage to use Livebook with Ecto in standalone mode? (without any mix project / connected node) What’s your experience like so far?