Skip to content
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

Add GESIS blog post #205

Merged
merged 31 commits into from
Jan 12, 2024
Merged

Add GESIS blog post #205

merged 31 commits into from
Jan 12, 2024

Conversation

yuvipanda
Copy link
Member

@yuvipanda yuvipanda commented Jan 4, 2024

As part of 2i2c-org/infrastructure#3286, we wanted to write a blog post describing
all the work done upstream in various communities as a result of the GESIS grant. This is that blog post.

The content is complete, although this definitely needs a better title.

@yuvipanda yuvipanda marked this pull request as draft January 4, 2024 01:01
@arnim
Copy link
Contributor

arnim commented Jan 9, 2024

Looks good to me 👍

@yuvipanda yuvipanda changed the title [Not ready for feedback yet] Add initial draft of GESIS blog post Add initial draft of GESIS blog post Jan 12, 2024
@yuvipanda yuvipanda marked this pull request as ready for review January 12, 2024 01:35
Copy link
Contributor

@consideRatio consideRatio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me this felt like a amazing text, I think because it is: capturing a large body of work, reducing it to key aspects, and composing it to a readable narrative connected to the larger software ecosystem and use cases.

Copy link
Member

@jnywong jnywong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuvipanda, you have written a great blog post that successfully communicates the motivation, design and execution of an amazing body of work 👍

---
# Documentation: https://wowchemy.com/docs/managing-content/

title: "Integrating BinderHub with JupyterHub: Empowering users to manage their own environments"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this title! Empowering users to manage their own environments is a major stopping block for a lot of people.

content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved

[mybinder.org](https://mybinder.org) is a very popular service that allows end users to specify and share the environment (languages, packages, etc) required for their notebooks to run correctly by place [configuration files](https://repo2docker.readthedocs.io/en/latest/config_files.html#config-files) they are already familiar with (like `requirements.txt` or `environment.yml`) along with their notebooks. While not without its own set of challenges, this is extremely powerful because it puts control of the *environment* in the hands of the people who write the code that has to run in the environment. They can customize the environment to fit the needs of their code, instead of having to fit their code into the environment that admins have made available.

But, mybinder.org (and the [BinderHub](https://github.com/jupyterhub/binderhub/) software that powers it) is built for *sharing* your work after you are done with it, *not* for actively doing work. [JupyterHub](https://jupyter.org/hub) is more commonly used for this, but doesn't currently have the ability for users to easily build their own environments. Admins who are *running* the JupyterHub can make [multiple environments](https://z2jh.jupyter.org/en/stable/jupyterhub/customizing/user-environment.html#using-multiple-profiles-to-let-users-select-their-environment) available for users to choose from, but this still puts admins in the critical path for environment customization.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you give one brief example of why Binder is not appropriate for actively doing work to motivate the need for JupyterHub?

e.g. non-persistent file storage

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jnywong done! hope this looks ok to you. Am happy to make changes post publication too.

content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
This is not complete of course, and there is a lot of future work to be done.

1. mybinder.org also helps you distribute your *content*, not just the environment for your code to run in. Since JupyterHub usually comes with a persistent home directory for the user, [nbgitpuller](https://github.com/jupyterhub/nbgitpuller/) is commonly used for this purpose instead. We should explore ways to integrate nbgitpuller (and other ways to distribute content) in the future.
2. More thorough documentation for how you can recreate what is in the demo for yourself in your own JupyterHub installation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuvipanda let me know where I can help with this 😄

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recalling an excellent conversation with @yuvipanda at his place in Oakland, I wish to imagine that nbgitpuller link and binder link are really the same thing. These links incorporate a target hub url and a content source with an environment specification and a landing location. When clicked, users are brought to the target hub url with the specified environment, inside the content, and at the landing location. Whether the experience is "binder like" or "JupyterHub like" is determined by the whether the target hub provides ephemeral or persistent storage.

It may not be appropriate to highlight in this post but I feel that Yuvi's view that BinderHub = JupyterHub (with a storage boolean flipped to ephemeral instead of persistent) needs to be conveyed more widely.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I agree it would be useful to convey that more widely. Not sure what's the appropriate medium though - not this blog post I think. I'm glad that conversation was useful, @colliand!

Copy link
Member

@GeorgianaElena GeorgianaElena left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I absolutely love how easily it reads <3 even though there is so much information! I believe it's amazingly structured and I appreciated a lot the focus it puts on the collaboration of multiple parties. I also like how the most important technical decisions were clearly motivated and the role of multiple iterations explained.

Thank you for writing this great blog post @yuvipanda!

content/blog/2024/jupyterhub-binderhub-gesis/index.md Outdated Show resolved Hide resolved
Copy link
Contributor

@damianavila damianavila left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick overview of the whole blog post. I really like how it is structured and it is easy to read and consume. @yuvipanda did great work at the time to explain the different components and also mentioned some pieces we worked on but they did not succeed.
Lovely to see all the work done in retrospective!!

@jmunroe
Copy link
Contributor

jmunroe commented Jan 12, 2024

Great content here, @yuvipanda. I love how it ties to together all of the many projects that interconnected to make JupyterHub support Binder-like images a reality. It provides good attribution to the many others involved but also clearly demonstrates the positive and essential role 2i2c has in enabling these kind of changes.

One of the claims we use when pitching and selling 2i2c as a potential partner is to present 2i2c as a bridge between the needs of open science with the possibilities of open source. This blog post is perfect evidence for that claim. Nice work!

@colliand colliand self-requested a review January 12, 2024 17:52
@yuvipanda yuvipanda changed the title Add initial draft of GESIS blog post Add GESIS blog post Jan 12, 2024
@yuvipanda
Copy link
Member Author

Thank you so so much for all your feedback, everyone :) I always struggle to see if my blog posts are in any way 'good enough' so all the external validation is very nice :)

I've made changes incorporating everyone's feedback and suggestions. I'm going to post this later today so our funders can use it in their report, but totally open to making changes post publication too.

THANK YOU!

@yuvipanda yuvipanda merged commit 021f82c into main Jan 12, 2024
1 of 2 checks passed
@yuvipanda
Copy link
Member Author

I'm publishing this, but let's hold off on posting on social media / public slack until after the weekend.

@arnim
Copy link
Contributor

arnim commented Jan 12, 2024

Probably best if 2i2c breaks it on social media.

@gesis_org, @NFDI4DS, and @CESSDA_Data are handles partner institutions could pick up easily. #reproducibility #OpenScience #OpenSource

@yuvipanda
Copy link
Member Author

@arnim yep, but given it's a friday now, and monday is a holiday in the US, we'll probably post it tuesday?

@arnim
Copy link
Contributor

arnim commented Jan 13, 2024

TUE makes a lot of sense ;)

Most importantly: Thank you all for making this possible, and in particular thank you @yuvipanda for tying everything so nicely and beautifully together 🎉

@damianavila damianavila deleted the gesis-blog-post branch January 16, 2024 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Status: Done 🎉
Development

Successfully merging this pull request may close these issues.

8 participants