<!-- 
.. title: A hierarchical toolchain
.. slug: toolchain
.. date: 2016-04-16 15:34:47 UTC
.. tags: linux, presentations
.. category: 
.. link: 
.. description:
.. type: text
-->

I'm an experimental physicist by education. But since quite some time, I do not frequently perform experiments myself. Instead, I'm essentially acting as a consultant. I help to design experiments, to interpret and analyze them. And mostly, I advice my colleagues how to publish the data they got from their experiments or computations. Which often means that I have to analyze data, process images, create graphs, and write text myself, but always in close collaboration with others.

This interactive and iterative process takes time. Since my order book is already filled for the rest of this year, it is important for me to do that efficiently for being able to process each request within a reasonable time frame. In particular, I want to have the same workflow everywhere, whether I'm using the desktop at the office or at home or my netbook at a conference in Nice (basically ruling out all proprietary software). 

The following list provides an overview of the applications I've chosen to use for these tasks in a loose hierarchical order (my second choice is given in parentheses). The one-liner below each entry briefly summarizes my personal reasons for the first choice. If I feel inclined to do so, I will elaborate on them in separate, subsequent posts.  

[Operating system](http://pdes-net.org/cobra/posts/arch.html): 		[Archlinux](https://www.archlinux.org/) ([Debian Testing](https://www.debian.org/releases/stretch/))  
Transparent, simple, up to date. And tons of packages. 
  
[Shell](http://pdes-net.org/cobra/posts/learn-to-love-the-cli.html): 	[fish](https://fishshell.com/)  ([bash](https://www.gnu.org/software/bash/), [zsh](http://www.zsh.org/))  
 Feature complete with minimal configuration.
  
[Remote shell](http://pdes-net.org/cobra/posts/enough-is-not-enough.html):		[mosh](https://mosh.mit.edu/) + [tmux](https://tmux.github.io/)  
  An ssh replacement. Stays connected.
  
[Shell extensions](http://pdes-net.org/cobra/posts/install-a-python-based-blog.html): [virtualenv](https://virtualenv.pypa.io/en/latest/) + [virtualfish](https://github.com/adambrenecki/virtualfish) ([virtualenvwrapper](https://virtualenvwrapper.readthedocs.org/en/latest/))  
  Easiest way to separate different python-based projects (like this blog).
  
[CL Calculator](http://pdes-net.org/cobra/posts/conversion.html): 		[calc](http://www.isthe.com/chongo/tech/comp/calc/) + [units](https://www.gnu.org/software/units/)  
  Easiest way to calculate almost everything on the CL.
  
[CL Editor](http://pdes-net.org/cobra/posts/terminal.html): 			[vim](http://www.vim.org/)  
  Easiest way to edit almost everything on the CL.
  
[CL File manager](http://pdes-net.org/cobra/posts/terminal.html): 		[autojump](https://github.com/wting/autojump) + [ranger](http://ranger.nongnu.org/) ([mc](https://www.midnight-commander.org/))  
  Super-fast file system navigation and management.
  
[Backup](http://pdes-net.org/cobra/posts/attic.html): 					[attic](https://attic-backup.org/) ([obnam](http://obnam.org/))  
  Fast, scrictable, deduplicating. 
  
[Notes, Journal, Tasks](http://pdes-net.org/cobra/posts/notes-and-more.html): 		[zim](http://zim-wiki.org/)  
  My notes for my cloud.
  
Cloud storage: [ownCloud](https://owncloud.org/)  
  My cloud with all current projects.
  
Reference management: [Mendeley](https://www.mendeley.com/) ([JabRef](http://jabref.sourceforge.net/))  
  Full text search in all pdfs, bibTeX export.
  
Browser: [Chromium](https://www.chromium.org/Home) ([Firefox](https://www.mozilla.org/en-US/firefox/new/)) in a [sandbox](https://firejail.wordpress.com/)  
  Fast, stable, consistent UI, all extensions I need.
  
[Data analysis](http://pdes-net.org/cobra/posts/old-habits.html): 		[ȷupyter](http://jupyter.org/) with [numpy](http://www.numpy.org/), [scipy](http://www.scipy.org/), [sympy](http://www.sympy.org/en/index.html) ([Mathematica](htps://www.wolfram.com/mathematica/))  
  Computing without licence hassles. Great UI with MathJax support.
  
Image processing: [ImageJ](https://imagej.nih.gov/ij/), [Gimp](https://www.gimp.org/)  
  All I will ever need and more. 
  
Vector graphics: [Inkscape](https://inkscape.org/)  
  Standard compliant svg, eps and pdf ready for the web or publications.
  
[Figure creation](http://pdes-net.org/cobra/posts/old-habits.html): 	[ȷupyter](http://jupyter.org/) with [matplotlib](http://matplotlib.org/)  
  Publication quality figures with standard compliant svg, eps, and pdf export.
  
Typesetting: [LaTeX](https://latex-project.org/) w/ [BibTeX](http://www.bibtex.org/)  
  The *de facto* standard.
  
Editing: Several. Currently giviving [atom](https://atom.io/) a chance.  
Syntax highlighting, command and citation completion, syncTeX support.
    
[Version control](http://pdes-net.org/cobra/posts/collaboration.html): 	[mercurial](https://www.mercurial-scm.org/) ([git](https://git-scm.com/))   
  Keeps track of changes. No more 'manuscript_v17c_XY_NK_LM.tex'. 
  
[LaTeX diff generation](http://pdes-net.org/cobra/posts/collaboration.html): 		[scm-latexdiff](https://bitbucket.org/paulhiemstra/scm-latexdiff)  
  Lights up the changes. Essential for not having to read the same stuff again.
