-
Notifications
You must be signed in to change notification settings - Fork 63
[BLOG]: The story of Jupyter Everywhere #932
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
[BLOG]: The story of Jupyter Everywhere #932
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
link to nine-year-old issue
Brutal 🤣
Co-authored-by: Michał Krassowski <[email protected]>
Co-authored-by: Michał Krassowski <[email protected]>
Co-authored-by: Michał Krassowski <[email protected]>
| @@ -0,0 +1,235 @@ | |||
| --- | |||
| title: 'Jupyter Everywhere: empowering interactive computing for K-12 education' # not final | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 <[email protected]>
peytondmurray
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth providing github permalinks to specific code sections here?
Co-Authored-By: Peyton Murray <[email protected]>
Co-Authored-By: Peyton Murray <[email protected]>
Co-Authored-By: Peyton Murray <[email protected]>
Co-Authored-By: Peyton Murray <[email protected]>
Co-Authored-By: Peyton Murray <[email protected]>
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.