Skip to content

Pluto-based notebooks for scientific programming

License

Notifications You must be signed in to change notification settings

bmandracchia/JIVEbook.jl

 
 

Repository files navigation

JIVEbook

JIVEbook is a Notebook platform for scientific programing in Julia using the JIVE framework. JIVEbook is based on Pluto.jl.

JIVEbook notebooks are:

  • lightweight - JIVEbook is based on the package Pluto. Both are written in pure Julia and is easy to install.
  • simple - no hidden workspace state; friendly UI.

Input

A JIVEbook notebook is made up of small blocks of Julia code (cells) and together they form a notebook.

Notebook cells can contain arbitrary Julia code, and you can use external libraries. There are no code rewrites or wrappers, Neptune just looks at your code once before evaluation.

Output

Like in Pluto, notebooks are saved as pure Julia files (sample), which you can then import as if you had been programming in a regular editor all along. You can also export your notebook with cell outputs as attractive HTML and PDF documents. By reordering cells and hiding code, you have full control over how you tell your story (except for the reactivity, which is only available in Pluto). Notebooks are intended to be fully compatible with Pluto.

Interactivity

Your programming environment becomes interactive by splitting your code into multiple cells! Changing one cell instantly shows effects on all other cells, giving you a fast and fun way to experiment with your model.

In the example below, changing the parameter A and running the first cell will directly re-evaluate the second cell and display the new plot.

plotting screencap


Built-in package manager

Pluto uses syntax analysis to understand which packages are being used in a notebook, and it automatically manages a package environment for your notebook. You no longer need to install packages, you can directly import any registered package like Plots or DataFrames and use it.

To ensure reproducibility, the information to exactly reproduce the package environment is stored in your notebook file. When someone else opens your notebook with Pluto, the exact same package environment will be used, and packages will work on their computer, automatically! more info

package manager screencap


HTML interaction

Lastly, here's one more feature: Pluto notebooks have a @bind macro to create a live bond between an HTML object and a Julia variable. Combined with reactivity, this is a very powerful tool!

@bind macro screencap


You don't need to know HTML to use it! The PlutoUI package contains basic inputs like sliders and buttons. Pluto's interactivity is very easy to use, you will learn more from the featured notebooks inside Pluto!

But for those who want to dive deeper - you can use HTML, JavaScript and CSS to write your own widgets! Custom update events can be fired by dispatching a new CustomEvent("input"), making it compatible with the viewof operator of observablehq. Have a look at the JavaScript featured notebook inside Pluto!


Installation

Run Julia, enter ] to bring up Julia's package manager, and add the JIVEbook package:

julia> ]
(v1.7) pkg> add JIVEbook

Press Ctrl+C to return to the julia> prompt.

Usage

To run JIVEbook, run the following commands in your Julia REPL:

julia> import JIVEbook
julia> JIVEbook.run()

JIVEbook will open in your browser, and you can get started!

License

JIVEbook.jl is open source and built by gluing together other open source software:

If you want to reference JIVEbook.jl in scientific writing, you can use our DOI:

About

Pluto-based notebooks for scientific programming

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 44.3%
  • Julia 41.6%
  • CSS 13.7%
  • HTML 0.4%