GitHub and Jupyter IPython Notebooks
github.com
github.com
There is just so much innovation and hard work coming out of this group, which is quite tiny. Any time I've raised an issue, even if it turned out to be my own dumb fault, gets the immediate attention and support of a core developer.
If you want to communicate with programmers there really isn't a better platform out there. The old 'write code, run code, save results, write latex, gen document, find error, repeat, opps code is out of sync with results....' is pining for the fjords.
If you run a private GitLab server, you could have a look at my patch which adds similar functionality to GitLab (in a rather ad-hoc way): https://gist.github.com/martijnvermaat/6926070
Looks like there's at least one project doing that. https://github.com/aaren/notedown
And there's the emacs-specific project https://github.com/tkf/emacs-ipython-notebook
[1] EDIT: I mean, not right now anyway. I've got a feeling that statement could seem a bit dated later in my life...
I tend to write prototype code in the notebook then copy/paste it into a package as I become satisfied that the code is correct.
It would be good to be able to transparently edit a .ipynb in a text editor - I've been meaning to wrap notedown in a vim plugin but haven't had time. This still leaves the version control problem though.
Note that I recently enabled the reverse (editing markdown in the browser as if it was a notebook), enabled by setting the following in ~/.ipython/profile_default/ipython_notebook_config.py (or similar):
c.NotebookApp.contents_manager_class = 'notedown.NotedownContentsManager'
This is useful for more interactive work, e.g. iterating on plots, whilst still having everything stored in markdown. See [1] for more info.Really there's no solution for extending Github except wait for them to integrate hooks. It would be nice if they made this more generic, and created a file render hook, that would allowed devs to render whatever types of files they want into Github Markdown.
Super neat.
[1] https://github.com/ipython/ipython/wiki/IPython-kernels-for-...
I am guessing that the Juypter notebook format might get traction with other projects besides Jetbeans.
https://github.com/rcompton/ml_cheat_sheet/blob/master/super...
This is a more general problem overall, but potentially something like magnet URIs and bittorrent could really help with part of the problem. (I don't really believe git as a system nor GitHub as a platform to be the appropriate place to solve this either).
It's a shame that Github's large file storage (LFS) mechanism isn't publicly released yet, because I am sure that will appease your problems. (This is assuming your datasets don't fit into a csv (note that the current hard limit for github files is 100MB, and a 100MB CSV file is a lot of data)).
There's also a weird data rabbit hole. Is the code that generates the simulation data enough, without the underlying data that code uses? Some of that is either protected or proprietary, so even with the code, it's utterly useless.
I was thinking more along the lines of data that you'd want to graph or preset for analysis, as in a notebook or a paper. I would (hopefully) assume that your simulation data would be generated and used in such a way that it wouldn't need to be stored permanently. At least, when I was doing simulation based analysis, I wasn't necessarily concerned about any individual run, but rather a combination of a bunch of simulations (all of which were ephemeral).
Nor, to be blunt, should they.
My particular simulation work is rather interested both in individual runs (and indeed, individuals within those runs) as well as summarization.
Beyond that, what use is there to putting just the "summary" data online, when the underlying data made that still exists as "you're just going to have to trust me". Being able to replicate my figure code doesn't get people very far.
Surely, it does not help with private or mutable data, but how would magnet URIs and bittorrent help? If it is private, it cannot be shared with bittorrent either and sharing mutable data via bittorrent is not its primary use case.
Bittorrent might help with big data, where big means 100MB+ in the case of Github. There are other approaches for big files in git (git annex, Github's LFS, git-bigfiles, etc).
The last cell here has my use https://github.com/rcompton/ml_cheat_sheet/blob/master/super...
http://nbviewer.ipython.org/github/stevetjoa/stanford-mir/bl...
https://github.com/stevetjoa/stanford-mir/blob/master/notebo...
look at this demo: https://github.com/IRkernel/IRkernel/blob/master/Demo.ipynb
If you want one to edit, try here: https://cloud.sagemath.com
From https://www.gnu.org/software/screen/manual/html_node/Default...:
C-a c
C-a C-c
(screen)
Create a new window with a shell and switch to that window. See Screen Command.
Edit: d'oh. I had to reread the original comment. You already know this, but by adding 'C-c' I don't have to release the Ctrl button.You can add this to tmux.conf to get screen-like behavior:
# New Window
bind C-c new-window