mscolnick | 7 months ago | on: Learnpython.ai – The Interactive Python Learning Platform
mscolnick's comments
mscolnick | 8 months ago | on: Ranking Alternatives to Streamlit
mscolnick | 1 year ago | on: Notebooks as reusable Python programs
marimo edit notebook.mdmscolnick | 1 year ago | on: Notebooks as reusable Python programs
mscolnick | 1 year ago | on: Notebooks as reusable Python programs
choice = mo.ui.dropdown(['train', 'split')
data = load(choice.value)
processed = process(data)
visualize(processed)
This way, you can toggle between just more than two if needed. If you need to see both at once, you'd want to refactor the processing and visualizing step into functions, and then just duplicate the finals cell(s).
marimo has a multi-column mode, so you can view them side-by-side
mscolnick | 1 year ago | on: Notebooks as reusable Python programs
We plan to add more stores like Redis, S3-bucket, or an external server, since you may not always want to commit this file, but like you said want others to avoid the computation.
mscolnick | 1 year ago | on: Notebooks as reusable Python programs
This is not quite true. Outputs are not stored...in the Python file*. marimo does store outputs in the `/__marimo__` folder with settings enabled.
> writing the boiler plate to let the reader load the results.
Therea are some primitives to do this for you, such as mo.persistent_cache. This can be an annotation or 'with' block. It intelligently knows when either the source code or inputs change.
The plan is to take this one step further than storing just the output. Because marimo knows the dependencies of each cell, in a future version, it will store each output AND let you know which are stale based on code changes. This is being built by Dylan (from the blog) and inspired by Nix.
mscolnick | 1 year ago | on: Show HN: Online Python Compiler with Libraries
mscolnick | 1 year ago | on: Optimizing Jupyter Notebooks for LLMs
mscolnick | 1 year ago | on: Show HN: WASM-powered codespaces for Python notebooks on GitHub
mscolnick | 1 year ago | on: Show HN: WASM-powered codespaces for Python notebooks on GitHub
mscolnick | 1 year ago | on: Show HN: WASM-powered codespaces for Python notebooks on GitHub
These are two separate features:
1) marimo.app + github.com/path/to/nb.ipynb does run on marimo.app infra. this is what the Show HN was about
2) separately, you can use the marimo CLI to export assets to deploy to GitHub page: `marimo export html-wasm notebook.py -o output_dir --mode run` which can then can be uploaded to GH pages. This does not find all the data in your repo, so you would need to stick any data you was to access in a /public folder for your site. More docs here: https://docs.marimo.io/guides/exporting/?h=marimo+export+htm...
mscolnick | 1 year ago | on: Zasper: A Modern and Efficient Alternative to JupyterLab, Built in Go
Pure-python also helps to work with existing tools out of the box: formatting, linting, pytest, importing notebooks as modules, composition, PEP 723 inline metadata
mscolnick | 1 year ago | on: Jupyter Notebooks as E2E Tests
mscolnick | 1 year ago | on: Bento: Jupyter Notebooks at Meta
mscolnick | 1 year ago | on: Package reproducibility in Python notebooks using uv isolated environments
We would also like to auto-detect a pyproject.toml, and use that when desired.
mscolnick | 1 year ago | on: Sandbox Python notebooks with uv and marimo
This increases reproducibility and helps prevent environment pollution. If your notebook has inline script metadata, marimo will automatically install the enumerated packages before running the notebook; if it doesn't, marimo will prompt you to install the missing packages on notebook startup.
mscolnick | 1 year ago | on: Mermaid: Diagramming and Charting Tool
It is a great tool for diagrams
mscolnick | 1 year ago | on: Build Marimo Plugins with Anywidget
For reference, we did a Show HN for marimo earlier this year (https://news.ycombinator.com/item?id=38971966).
mscolnick | 1 year ago | on: Lessons learned reinventing the Python notebook
If you are making things public, you likely care about more than just a password, which you'll want to push into an auth gateway with oauth support, authZ, rate-limiting, etc.