-
Notifications
You must be signed in to change notification settings - Fork 14
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
Add GESIS blog post #205
Conversation
Looks good to me 👍 |
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.
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.
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.
@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" |
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.
I like this title! Empowering users to manage their own environments is a major stopping block for a lot of people.
|
||
[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. |
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.
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
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.
@jnywong done! hope this looks ok to you. Am happy to make changes post publication too.
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. |
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.
@yuvipanda let me know where I can help with this 😄
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.
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.
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.
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!
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.
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!
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.
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!!
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! |
hugo doesn't seem to like that
Co-authored-by: Jenny Wong <[email protected]> Co-authored-by: Georgiana <[email protected]>
83d241c
to
e726e13
Compare
It's a GIF so I think this is ok.
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! |
I'm publishing this, but let's hold off on posting on social media / public slack until after the weekend. |
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 |
@arnim yep, but given it's a friday now, and monday is a holiday in the US, we'll probably post it tuesday? |
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 🎉 |
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.