Jupyter notebook, Emacs/iPython and Vim/iPython integration

  • This link on how to spawn a qtconsole session from a Jupyter notebook. Awesome.
  • This link on collapsible headings in Jupyter notebook, also my post on Twitter (after multiple failed attempts using a rainbow colorscheme for my plots)
  • Emacs hosts EIN with orgmode integration here
  • John Kitchin has provided the unbelievably excellent Scimax for emacs, with a lot of ideas of using orgmode for capturing and reproducing research.  See also his ideas on exporting from orgmode to Jupyter
  • There’s also ob-ipython for working with ipython sessions within orgmode.  Note this is already in the process of moving to ob-jupyter.
    • Incidentally, this is a consistent problem with the emacs-package approach in research – the packages move on quickly and often break backwards compatibility (for instance, updates to read-input (changed to read-string) have broken this piece of code from 2015!)emacs-wtf
    • I also had beamer export from orgmode break sometime between 2012 and 2014, which broke export to PDF.
  • I’m quite happy with dragging-and-dropping images into org mode thanks to this piece of elisp, again from John Kitchin, which works well (better than than org-download, which fails silently).
  • For working remotely, always a good idea to avoid transferring data around unnecessarily, I really admire vim-cell-mode which sends delimited cells to an iPython session within tmux: add
    • let g:cellmode_tmux_windowname='ipy' to vimrc
    • rename tmux pane containing ipython session with Prefix-, to ipy
    • delimit cell to execute above and below  with ##
    • press C-g
  • Probably worth modifying tmux.conf to use default windows, or perhaps try using tmuxp – will have to wait for tmux to be upgraded on Jasmin (a common problem, still at 1.6)
  • There’s also Vimux for passing commands to other Tmux panes. Works excellently.

Keyboard Maestro

Big fan of @keyboardmaestro.  Some (cash) investment required but I can use it for all sorts of things most of which I could think about a bit harder but which currently fulfil a particular need, for example,

  • Keynote + Logitech presenter (which works OK on Powerpoint but emulates the wrong keys for Keynote) so ‘b’ can be remapped to blank screen if required (after the presentation is prepared, I’d suggest)
  • Emacs keybindings, which I realise I could just do in .emacs.d/settings/keys.el but I’m lazy.
  • Tmux – if you want to use the § key for the prefix, this won’t, as far as I can tell, work in iTerm.  So just set § to emulate C-a in iTerm?
  • Repetitive workflows in Word (in this case, formatting the selected text to ‘Normal’ or formatting pictures)
  • Global Finder hotkeys – Ctrl-Command-H takes me to my projects workspace, for instance
  • New Chrome tab? – Ctrl-Command-T from anywhere, including launching the app if not already live

It has a nice easy learning curve and the support is excellent.


Many thanks to the kind people at Kaleiodscope for their excellent diff/merge tool.

The UI is excellent – very logical and helpful.  I was able to resolve the changes between two directories very easily and – before I found Kaleidoscope – doing a diff between the contents of two directories did not appear that straightforward.

The answer on Stack Overflow results in a long file consisting sequentially of all the diffs between each file within that directory.

diff -ENwbur dir1/ dir2/ > dir1_dir2.dff

This can be rather long to sort through (another reason to use some sort of version control).

What Kaleidoscope allows you to do is first diff the directories themselves, so as to list which files differ, and then it’s simple to click on a file, which leads through to a diff between the two versions.

This makes diff/merge tools complete and really intuitive. I find myself wondering how it’ll do when I have to do another 3-way merge (I almost said I was looking forward to resolving svn conflicts…)