Live data from Hacker News

Pluto.jl – a reactive, lightweight, simple notebook

github.com

11–20 of 63 posts

Re: Pluto.jl – a reactive, lightweight, simple notebook

#11
post #2

Sounds like they fixed a bunch of things that are broken about Jupyter notebooks. I still don't understand why anyone would want to do work in their browser though.

TL;DR: Working in a notebook in a browser is a terrible way to write a program but a fantastic way to explore data.

Even though notebooks are a common cause of headache in my world (I work on ML deployment), I think they're an incredibly valuable tool, and the familiar, visual interface of the browser plays a big part.

It clicked for me when I took a statistical genetics class taught by a team member of Hail.is (open source genomic analysis library). Coming from a dev background, I found working in a browser to be a clunky, awful experience—until I saw the way my classmates, most of whom were scientists by focus, used it. My instinct is to think of code in terms of the architecture of a program, but for them, code blocks were like buttons on a calculator. The speed at which they could iterate, and their ability to jump around, really drove home the value of the browser interface.

Would I want to write an API in one? Absolutely not. But for tinkering with genomic data? They're ideal in many ways.

Jeremy Howard of fast.ai talks about this a lot: https://twitter.com/jeremyphoward/status/1072555920029376512

Re: Pluto.jl – a reactive, lightweight, simple notebook

#13
post #2

Sounds like they fixed a bunch of things that are broken about Jupyter notebooks. I still don't understand why anyone would want to do work in their browser though.

As sibling says, it is a very good way to explore data and also iterate on design for script and document them.

Two examples from a previous work experience (remote sensing) :

(1) A colleague where creating SSH tunnel to create and explore data with the Jupyter process was on the calculation server. He was able to launch heavy calculation, fast-feedback loop for satellite images and shapefiles, manipulate the results and write the explanation next to each cell. As you would use a real notebook in fact. I had the same workflow and when I realized that the script will be used more than once, I moved the code to python script with command-line arguments support (just plug-in `argparse` to the script) and moved the text to comment the script.

(2) Teaching, we held seminar about different API and tools and used jupyter notebooks to teach everyone. The fast feedback loop was essential for anything with figures, plots, images, etc.

Pluto.jl while not yet perfect for me address a lot of broken things that made using Jupyter notebook driving me crazy (I had to broke my cells in a way that I can rerun everything when needed to update the global space, it was aweful).

Re: Pluto.jl – a reactive, lightweight, simple notebook

#15
post #2

Sounds like they fixed a bunch of things that are broken about Jupyter notebooks. I still don't understand why anyone would want to do work in their browser though.

As sibling says, it is a very good way to explore data and also iterate on design for script and document them. Two examples from a previous work experience (remote sensing) : (1) A colleague where creating SSH tunnel to create and explore data with the Jupyter process was on the calculation server. He was able to launch heavy calculation, fast-feedback loop for satellite images and shapefiles, manipulate the results…

I understand the value of notebooks, but I'd rather use them in a dedicated environment, like VScode or Rstudio.

Re: Pluto.jl – a reactive, lightweight, simple notebook

#16
Pluto.jl appears to be a Julia centric notebook alternative to Jupyter and its multi-language Kernels, including IJulia [1]. I imagine there are many trade-offs between the two but the primary one I see is the runtime size/Python-dependencies of Jupyter versus the reach of the platform.

There is also a great deal of overlap between IDEs and Notebook platforms.

[1] https://github.com/JuliaLang/IJulia.jl

Edit: "pure Julia" => "Julia centric" based on jakobnissen's comment

Re: Pluto.jl – a reactive, lightweight, simple notebook

#17
post #2

Sounds like they fixed a bunch of things that are broken about Jupyter notebooks. I still don't understand why anyone would want to do work in their browser though.

>I still don't understand why anyone would want to do work in their browser though.

One of our colleagues had around thirty students who had to prepare their final year pojects in machine learning. We deployed our internal platform and gave them access so they wouldn't lose an academic year, as they were in a zone that was hit really hard with COVID-19.

They are mostly on Windows, are not comfortable with the CLI, have never used Git, they don't do Docker, have poor connectivity [4kB/s], don't have access to powerful machines, found it difficult to handle dependencies, and needed to work on +200GB datasets. They also were split into groups of two or three, and needed to be able to share the work with each other, and with their supervisor (our colleague).

So, one reason to use a browser based solution is to de-couple the user's computer from the dependencies, internals, or infra the work happens on, and simplify collaboration. This, or the main tool you rely on does not play nice with other tools, even if you're proficient.

We started to push for remote work in late 2018, and we started really going after it in 2019 because commute was draining our colleagues' energy. It really bothered us to see them arrive at work completely washed out, or see them worry about transportation at the end of the day, so we made remote work a priority. But they mainly trained models with notebooks, and there was a need to be able to do actual work as a team, so we built the tooling around our workflow and we've had to add in missing features to accomodate our colleagues who needed the notebook.

Re: Pluto.jl – a reactive, lightweight, simple notebook

#18
post #14

I've been using Pluto for several weeks and I absolutely love it for quickly iterating on plots and making small UIs for interactively showing off results. It's altogether a much better experience than Jupyter for me.

wonder if you have tried it on large datasets given ur background.

Does it work well with large-datasets given its reactive nature?

Re: Pluto.jl – a reactive, lightweight, simple notebook

#19
post #16

Pluto.jl appears to be a Julia centric notebook alternative to Jupyter and its multi-language Kernels, including IJulia [1]. I imagine there are many trade-offs between the two but the primary one I see is the runtime size/Python-dependencies of Jupyter versus the reach of the platform. There is also a great deal of overlap between IDEs and Notebook platforms. [1] https://github.com/JuliaLang/IJulia.jl Edit: "pure Ju…

Not quite. Pluto is also built on JavaScript (of course, since it's a browser notebook).

The main advantages of Pluto is that

* The sources files are executable Julia files with minimal metadata, so it plays nice with Git. Also, the code of the source files is ordered to reflect the execution order of the cells, to keep the source code and the notebook in sync.

* It attempts to remove all global state. If you change a cell, and dependent cells will change as well (similar to Excel). This makes bugs less likely.

Re: Pluto.jl – a reactive, lightweight, simple notebook

#20
post #15

Earlier quoted context omitted.

As sibling says, it is a very good way to explore data and also iterate on design for script and document them. Two examples from a previous work experience (remote sensing) : (1) A colleague where creating SSH tunnel to create and explore data with the Jupyter process was on the calculation server. He was able to launch heavy calculation, fast-feedback loop for satellite images and shapefiles, manipulate the results…

I understand the value of notebooks, but I'd rather use them in a dedicated environment, like VScode or Rstudio.

FWIW, I thought I remembered hearing that the maintainers of the Julia extension in VSCode are working on getting embedded Pluto notebooks working.
Post reply on HN