Live data from Hacker News

Introduction to Pluto.jl

juliafordatascience.com

71–80 of 117 posts

Re: Introduction to Pluto.jl

#71

Earlier quoted context omitted.

The whole notebook doesn't recompute only cells that are dependent on the cell that changed. This is extremely powerful because you never end up with stale cells that are showing incorrect values.

This is extremely counterproductive , because I want results you're calling "stale" to use as a reference or inspiration. I don't want to destroy old results just because I changed some parameter value to test an idea.

Then instead of reassigning new data to foo, just assign new data to foo2. You can still use the notebook to experiment, what you are doing is removing ambiguity.

Re: Introduction to Pluto.jl

#72
post #70

Earlier quoted context omitted.

These are usually small aggregates and summaries, so I just display them in notebook output. It does make it take a bit longer to scroll through the notebook to find something, but that's what being disciplined with organization is for.

Sorry, I'm not sure I'm following your argument. Are you saying your notebooks hold state that's easily reconstitutable, and so it's not actually such a big deal to regenerate your "precious state"?

No worries, apology accepted! You misunderstood what I wrote: parts of my state are small enough for me to print() them in a cell and use the output as reference.

Re: Introduction to Pluto.jl

#73
post #62

Earlier quoted context omitted.

This is extremely counterproductive , because I want results you're calling "stale" to use as a reference or inspiration. I don't want to destroy old results just because I changed some parameter value to test an idea.

If you’re so attached to that data, you should probably do something to save it other than let it sit in RAM or maybe an old plot in a random notebook.

I'm not sure what exactly you're trying to do: harangue me into using this half-baked notebook replacement, or just telling me how to do my job.

Re: Introduction to Pluto.jl

#74
post #31

Earlier quoted context omitted.

That is fine if you are working sequentially, but often tasks involve going back to the original data and doing some wrangling. data -> model(data) -> output(model) So if you go back to mess around with the data, your model and output could be or would be recomputed, which you would need to do eventually but not while making iterative tweaks. Another commenter suggested adding checkboxes which is a good idea, althoug…

I think the ideal user-friendly system would switch between automatic and manual recomputation depending on expected time of recomputation and expected time until the user triggers another recomputation (and clearly indicate which cells need recomputation to make them reflect the latest state of the system). If you’re editing a file path, for example, you don’t want the system to read or, worse, write that file after…

For the general case, I am pretty sure what you describe is the halting problem [1]. This does not mean that I believe some approximation is impossible (your “write to file” comment is particularly true). Just feeling the need to highlight that a clean, general solution is most likely not something that gets done in an afternoon.

[1]: https://en.wikipedia.org/wiki/Halting_problem

Re: Introduction to Pluto.jl

#75

Earlier quoted context omitted.

> I really wish the Julia ecosystem would stop assuming that you always interact with your computer through the Julia REPL and started supporting proper command line interfaces. What does it even mean? What is a CLI interface for a programming language if not a REPL ?

I also do not really get the complaint, but it is along the lines of people wanting to write `julia-pkg install Pluto` instead of `julia -e 'using Pkg; Pkg.add("Pluto")'`. It seems it is a big pet peeve for some people.

Thanks for the example.

As someone who has never used Julia... Wow, that looks exceptionally painful compared to most other modern languages.

Re: Introduction to Pluto.jl

#76

Earlier quoted context omitted.

Python has a decent command line argument parser in its standard library, and there are several even-better options in the 3rd party library ecosystem, e.g. https://pypi.org/project/click/ .

Julia has ArgParse.jl for 3rd party argument parsing. It seems pretty fully featured.

Good to know, thank you.

Re: Introduction to Pluto.jl

#77
> When you change a variable, that change gets propagated through all cells which reference that variable.

I've always thought this was the most annoying quirk of notebooks in general, so it's nice to see a different take.

Re: Introduction to Pluto.jl

#79
I like the idea of Pluto, because I cannot stand the non-deterministic cells of Jupyter notebooks anymore. Reading this page is like having sex with someone you love. Where has Pluto been all this time? I have finally found all what was missing for a complete life! There's even things that I didn't know I needed because I didn't even have the language to express them! This is my favorite page on the internet and Pluto is my favorite thing ever. I can see no downside to this, no defects, even with a conscious effort to do so.

Yet, trying Pluto, it seems to be outrageously slow and clunky. Is it expected? Sometimes it takes a few seconds to do something. I'm not talking about the initialization (which is still a shame, but that's a different issue). I'm talking about running individual cells with simple code. This is unusable as of today, at least on my 3-year old laptop.

Re: Introduction to Pluto.jl

#80

Earlier quoted context omitted.

Pluto notebooks are Julia scripts, usable at the command line. Edit: Pluto uses Julia's package manager; moreover, Manifest.toml can be used to pin all of your project's dependencies so the notebook is repeatable, from a code perspective.

That's good to know. But I was talking about the package manager and starting the Pluto server.

You can start pluto server from command line

> julia -e "using Pluto; Pluto.run()"

Also, package manager can be used from inside Pluto. To install somethin, you can just write in a cell

> using Pkg

> Pkg.add("Package Name")

Post reply on HN