[BLOG]: The story of Jupyter Everywhere#932
[BLOG]: The story of Jupyter Everywhere#932agriyakhetarpal wants to merge 32 commits intoQuansight:mainfrom
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I've requested reviews from everyone, despite this being a draft PR, as the main outline for the content is ready. |
|
|
||
| Popularised by platforms such as [Observable](https://observablehq.com/), Google Colaboratory, Kaggle Notebooks, and Deepnote, "Run" buttons next to code cells are a common feature in modern interactive computing environments. These buttons provide a convenient way for users to execute individual code cells with a single click, without needing to navigate to the toolbar or use keyboard shortcuts. | ||
|
|
||
| However, Jupyter does not provide this functionality out of the box. <!-- link to nine-year-old issue -->. |
There was a problem hiding this comment.
link to nine-year-old issue
Brutal 🤣
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
Co-authored-by: Michał Krassowski <5832902+krassowski@users.noreply.github.com>
| @@ -0,0 +1,235 @@ | |||
| --- | |||
| title: 'Jupyter Everywhere: empowering interactive computing for K-12 education' # not final | |||
There was a problem hiding this comment.
as @krassowski suggested in one of his previous suggestions that this is not something everyone might be aware of:
| title: 'Jupyter Everywhere: empowering interactive computing for K-12 education' # not final | |
| title: 'Jupyter Everywhere: empowering interactive computing for high school students' |
Co-Authored-By: Tania Allard <23552331+trallard@users.noreply.github.com>
peytondmurray
left a comment
There was a problem hiding this comment.
This looks great! A few small comments, but this is really close.
| - Uploading notebooks to a server for storage and sharing | ||
| - Generating sharing IDs based on a hash of the current session and the notebook state, and readable IDs as a mnemonic for sharing purposes via a database of aquatic animal names and adjectives to make it more fun and engaging for students. | ||
|
|
||
| <!-- Add diagram from Adam's architecture-overview.md on Slack --> |
There was a problem hiding this comment.
Similar to the section above, maybe this architecture diagram should go before the paragraph that discusses it?
|
|
||
| Later in the development process, we decided it would be more user-friendly to generate friendlier URLs for sharing, rather than the default UUID-based URLs that are not easy to remember or share verbally, which the sharing service initially generated. To achieve this, the sharing service implemented a system that produces human-readable IDs from combinations of aquatic animal names and adjectives, creating memorable, engaging URLs for sharing notebooks. This approach not only enhances the user experience but also adds a fun element to the sharing process, making it more appealing for students and educators alike. We integrated the sharing service's response to use these "readable IDs" in the interface by default. | ||
|
|
||
| <!-- add image of share dialog opened by clicking the "Share" button --> |
There was a problem hiding this comment.
A screen recording of the sharing process might be helpful here, though a static image would do just fine too.
|
|
||
| When a user opens a shared notebook link, they are presented with a read-only view of the notebook, where they can navigate through the cells, view outputs, and interact with any visualisations or widgets embedded in the notebook. However, they cannot modify the notebook's contents or execute any cells. | ||
|
|
||
| This was trickier to implement than we initially thought. At that time, JupyterLab did not expose a command for opening a notebook without a kernel attached. Fortunately, Jupyter is a swiss-army knife of extensibility, and we were able to override JupyterLab's default behaviour to allow opening a notebook in read-only mode without a kernel. This involved creating a custom notebook factory that would create a read-only notebook widget, and overriding the default kernel selection behaviour to prevent the user from selecting a kernel for the read-only notebook – by not instantiating a kernel at all. |
There was a problem hiding this comment.
Is it worth providing github permalinks to specific code sections here?
Co-Authored-By: Peyton Murray <peynmurray@gmail.com>
Co-Authored-By: Peyton Murray <peynmurray@gmail.com>
Co-Authored-By: Peyton Murray <peynmurray@gmail.com>
Co-Authored-By: Peyton Murray <peynmurray@gmail.com>
Co-Authored-By: Peyton Murray <peynmurray@gmail.com>
Co-authored-by: Pavithra Eswaramoorthy <pavithraes@outlook.com>
|
Hi all, what's the status of this? I'd really like to see this through. What still needs to be done, and how can I help get this across the finish line? cc @agriyakhetarpal |
|
Hi @peytondmurray, thanks for the ping! This is mostly complete barring some screenshots, and a few more headings I'd like to finish. I know the festive season is coming and I'm on PTO starting Christmas eve, too – I can target finishing this today :) |
Text styling
Non-text contents
Hi! This blog post describes our work on Jupyter Everywhere (@JupyterEverywhere), an application built on JupyterLite for K-12 education. The blog post is currently a draft and not final; I would appreciate any feedback you have. I am on PTO at the moment, and this PR is a way for me to hand it over to @krassowski and @peytondmurray to finish the remaining bits (I've added them as collaborators on my fork): adding images/screenshots everywhere, polishing the writing and enhancing any technical descriptions further, links to PRs about our upstream work adding content to incomplete sections, and any other improvements you see fit. Thank you!
The goal is to publish this sometime next week, and ideally before 3rd November, as we'd love for it to be highlighted at JupyterCon through @Skew-The-Script's keynote and tutorial session on the application. I've marked the publication date as 1st November.