====== Software ======
List of programs I use including short remarks explain interesting details or remarkable features.
===== Audio =====
* **[[http://foobar2000.org|foobar2000]]** (Windows)---best library manager, flexible tagger, including CD ripping.
* **[[http://beets.io/|beets]]** (Linux)---from the makers: //Beets is the media library management system for obsessive-compulsive music geeks.// Guilty as charged. I'm no longer using it and back to foobar2000. A manually curated genre list suits me better than crowd-sourced spaghetti tags. //Sigh.//
===== Development =====
* **[[http://tmux.github.io/|tmux]]** (Linux)---terminal multiplexer. Basically a text-based window manager.
* **[[https://docs.microsoft.com/en-us/windows/wsl/|Windows Subsystem for Linux]]** (Windows)---has replaced Cygwin for me. Native Linux CLI programs that integrate nicely (only gotcha: mixed CRLF/LF need attention if both Windows and Linux Git touch the same working copy) with the host system. Especially for ''ssh'' I no longer need PuTTy.
* **[[https://www.chezmoi.io/|chezmoi]]** (Linux)---configuration file management. Also known as "dotfiles", this manages all files that I need identically on all my Linux environments, be it native Debian/Ubuntu or virtual (mostly WSL) distributions. Like with ''pass'' (see under Security), everything is managed as a simple Git repository, in which simple text or smarter template files are tracked. Upon request, these files are copied or interpreted as the target state for one's dotfiles (e.g. ''.bashrc'' or ''.ssh/config''). Local changes can be imported or discarded, and after a ''git push'' can be shared across machines. Simple environment variables + template with logical conditions can be used to capture differences. For example, an if-clause can make some commands or host definitions only available on machines with the correct machine name, operating system or based on even more complex conditions.
===== Document processing =====
* **LaTeX**---[[http://texlive.org/|TeXLive]] distribution, [[http://texstudio.sourceforge.net/|TeXstudio]] editor. My favourite package [[http://ctan.org/pkg/pgf|TikZ]] can create [[http://www.texample.net/tikz/examples/|awesome examples]] of diagrams, vector drawings and with additional libraries splendid data displays. Don't get put off by its [[http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf|enormous 1100 page manual]] -- it starts with 4 excellent tutorials that explain all essential basics. I wrote [[http://mediatum.ub.tum.de/?id=1285570|my thesis]] using documentclass [[http://ctan.org/pkg/memoir|memoir]], [[http://tex.stackexchange.com/a/197874/30821|sans-serif text and math]] and [[https://github.com/ojdo/thesis-defense/blob/master/tex/setup.tex|many other packages]]. For my CV, I use the excellent [[https://github.com/Cicatrice/cv4tw|cv4tw]] document class by //Cicatrice//.
* **Presentations**---LaTeX with package beamer and a custom [[https://github.com/ojdo/thesis-defense/blob/master/beamerthemeJD.sty|theme]]. See a complete [[https://github.com/ojdo/thesis-defense|example presentation]] for combined use of many packages, including excessive use of overlay specifications for granular revealing of slide content.
===== Graphics =====
* **[[https://inkscape.org/|Inkscape]]**---2D vector graphics. Can import PDF pages for extracting individual elements. With help of [[https://github.com/kjellmf/svg2tikz/blob/master/docs/install.rst#installing-for-use-with-inkscape|a plugin]], it can export to TikZ paths.
* **[[https://www.gimp.org/|GIMP]]**---2D image manipulation. Excellent pixel-based image editor with far more features than most demanding amateurs might need. I use it to prepare desktop wallpapers for my blog.
* **[[https://www.digikam.org/|digiKam]]**---photo management. After years of waiting, I finally get to replace the discontinued desktop version of [[https://en.wikipedia.org/wiki/Picasa|Picasa]], that used to be my go-to solution for years. But now that digiKam seems to have become quite mature, even in the Windows release, I have finally a cross-platform, open source home for my photo collection. Time to re-launch the offline face recognition feature and tag 'em faces!//has again become my main photo management app.//
===== Scientific =====
* **Bibliography management**---BibTeX files are collected and managed through [[http://www.jabref.org/|JabRef]]. For literature comparisons I create dedicated, hand-tailored spreadsheets for flexible sorting and filtering.
* **Mathematical modelling**---GLPK and its MathProg language. Examples for energy system modelling: see [[software:mathprog]]
* **Scientific Python stack**---Python, NumPy, Pandas, Matplotlib and dozens of other packages combined allow to go far with few lines of code. Reference examples: [[https://github.com/tum-ens/urbs|urbs]], a mathematical optimisation tool for future energy systems; [[https://github.com/tum-ens/rivus|rivus]], a mathematical optimisation model for energy networks with emphasis on spatial aspects.
===== Text editing =====
* **[[https://notepad-plus-plus.org/|Notepad++]]** (Windows)---my recommendation for those who do not require a good cross-platform text editor with good syntax highlighting for every language and comprehensive whitespace settings (tabs VS spaces, configurable for each language).
* **[[https://jedit.org/|jEdit]]** (Windows, Linux)---my personal pick. It covers the essential features of Notepad++ and comes with pretty handy default splitting (try Ctrl-1 to 4)
* **[[http://www.vim.org/|Vim]]**---steep entry barrier, but then there is a steady, long learning curve ahead an virtually no cap on what can be accomplished with this beast of an editor. On Windows, I use it through WSL.
===== Security =====
* **[[https://www.passwordstore.org/|Password Store]]**---Cross-platform password manager that supports Git as its storage backend. Biggest drawback: repo history + filenames are unencrypted. Biggest advantage: dead simple (reference implementation is just a short, readable bash script), followed by the broad OS and device support (CLI-only in server settings up to GUIs for Windows, Linux, Mac OS, Android, iOS). I mainly use it in the terminal (WSL on Windows, native on Linux) with simple clipboard integration. ''pass git push'' and my passwords are stored on a server of my choice (and control).
===== Video =====
* [[http://www.videolan.org/|VLC]]---just works. Plays videos.