[IPython-dev] Jupyterhub-based CMS?

Nicholas Bollweg nick.bollweg at gmail.com
Fri Oct 24 10:34:04 EDT 2014


A thing I have wanted since finding out about both projects is notebooks as
a fundamental building block of content in Apache Allura
<https://allura.apache.org/>. You may know Allura's primary commercial
install and main contributor, sourceforge <http://sf.net>. It is,
unsurprisingly, Apache licensed.

Allura's focus is providing open source tools for teams building open
source, so it is based on users, groups, and projects, and code. Into each
project, its admins can add any number of tools: tickets, wikis, blogs,
forums, git/hg/svn repos, subprojects, chat. Every project immediately has
search and an API. It has configurable usage analytics.  It can import
project data from a large number of other project management tools. Text is
markdown all over, and has nice features like ticket linking, etc. Writing
new tools is pretty easy: here's a template
<http://sourceforge.net/projects/skelallura/> I made a while ago.

Allura is written in TurboGears, which is kind of showing its age, but it
uses classical MVC patterns, Jinja2, etc. so it wouldn't be that much
different than tornado: presumably, jupyter would be run as a second
server, anyway. It has customizable themes, but there are not many
<https://opensourceprojects.eu/> real re-skins in the wild. Some branded,
scientist-focused design love here would be amazing.

Here are some specific integration ideas (and challenges):

   - I would see notebooks supplanting the wiki and blog tools (which are
   already markdown-based), as well as providing an entirely novel, multiuser
   compute environment with any number of kernels, as handled by jupyterhub.
   - Since a lot more assumptions would be in place, it would be much more
   reasonable to have an "app store" approach to automating package management
   for both the installed packages available to the current kernel, as well as
   what is installed in the notebook javascript environment.
   - While runtime notebooks could be persisted to MongoDB, files, or
   whatever long-term, pure notebooks, or better still notebooks + data + a
   snapshot of the container, could be stored in repos. This would be a boon
   for, say, setting up assingments: click on a link, you are using a live
   machine that is an exact copy of what a TA set up.
   - A light wrapper around something like runipy
   <https://github.com/paulgb/runipy>, conda-launch
   <https://github.com/conda/conda-launch>, etc. would make building
   reusable data workflows lovely.
   - Things like nbconvert --slides and live_reveal
   <https://github.com/damianavila/live_reveal/tree/master/livereveal>
   would make crafting talks more discoverable and reusable than any previous
   solution, and could be nicely configured to ensure that a whole project has
   a consistent theme for slides which can be regenerated at any time.
   - Thinking about directories of notebooks, one could imagine compiling a
   whole e-book or mobile app... just by hitting a URL.

I'd love to get involved with an effort like this, and might even be able
to get the day job interested if we thought we could get some funding to do
it... there are 100 ways one could spin this, either as an LMS, a data
integration environment, research platform, communication hub, or some
other goal.

On Fri, Oct 24, 2014 at 9:13 AM, Doug Blank <doug.blank at gmail.com> wrote:

> Devs,
>
> If you were going to build a full web application (with components like
> comments, index, sitemap, search, etc) for, say, an on-line journal, blog,
> or course website, that was based on jupyterhub and notebooks what would
> you write it in?
>
> Many of those functions exist in full content-management systems (CMS)
> like Drupal or Wordpress. There is also support for building a CMS from
> tools like Django (which is written in Python).
>
> Jupyterhub is written in Tornado. As far as I see, there aren't drop-in
> CMS-like components for Torando.
>
> So, would you try to integrate jupyterhub into an existing CMS? Or build
> one from tools like Django + Torando? Or create a new project especially
> for jupyterhub? Or is there another option?
>
> -Doug
>
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20141024/ae2b123f/attachment.html>


More information about the IPython-dev mailing list