A curated list of software tools, services, and learning resources that could be handy for the work we do in the lab. Feel free to add any tool or resource you found useful!
💡 Tip: Use the table of contents icon on the top-left 👆🏽 to quickly navigate this document.
Coding and software development:
- Software Carpentry has community driven lessons on how to use the Unix shell, Version Control with Git, and Python.
- Transform tutorials: Software Underground hosts the yearly Transform events where a lot of tutorials take place, particularly oriented to teaching how to use open-source tools for geosciences.
- How to Write a Git Commit Message: a comprehensive guide to learn how to write meaningful git commie messages. Read it sooner than later!
- Pro Git book, by Scott Chacon and Ben Straub. Licensed under CC-BY-NC-SA 3.0 and available in different formats (PDF, epub and as website).
LaTeX (producing beautiful documents):
- Learn LaTex in 30 minutes by Overleaf
- Intro to LaTeX: also avaiable in Português (Portuguese), Català (Catalan), Deutsch (German), Español (Spanish), Français (French), Marathi and Tiếng Việt (Vietnamese)
- Writing a thesis with LaTeX by Lapo F. Mori
Vim or Neovim (text editors):
- Vim as your editor | ThePrimeagen: YouTube playlist for learning Vim progressively.
- Your First VimRC (2021) | The Primeagen
- VimTricks: weekly tips, tricks, guides, plugins, videos, screencasts, and more – all about Vim.
- VIM Adventures: learning Vim while playing a game
🔓 Note: Every tool listed on below is open-source or Software Libre.
Document writing and LaTeX:
- latexmk: a CLI tool that automates the process of generating LaTeX documents.
- Tectonic: a modern LaTeX engine, powered by XeLaTeX and TeXLive.
- pandoc: universal document converter (e.g. transform Markdown to HTML, to a PDF or to a Microsoft Office/Libre Office document).
Python:
- mamba: Python package manager
- Miniforge: a conda-forge distribution (alternative to Anaconda, useful if we don't desire to agree with the Anaconda TOS).
- Mambaforge: another
conda-forge distribution that ships the
mamba
package manager by default.
Handy command-line tools:
- delta: a syntax-highlighting pager for git and diff output
- convert: a CLI tool to transform images (resize, rotate, flip, etc) and convert them to other formats (png, jpg, pdf, etc).
- GitHub CLI: interact with GitHub from the terminal.
- PDFtk: the pdf toolkit.
- reveal-js: create slides as through HTML. For inspiration, take a look at Leo's and Santiago's Reveal-based slide templates.
- tldr and cheat: access collaborative cheat-sheets from the terminal.
Reference management:
- Zotero: collect and organize scientific articles
Graphics:
- Inkscape: vector graphics editor. Awesome for making illustrations, posters, etc.
Text editors and integrated development environments (IDEs):
- Neovim: hyperextensible Vim-based text editor.
- Visual Studio Code: Microsoft's famous text editor (sends telemetry to Microsoft).
- Codium: Free/Libre open source software binaries of VSCode.
- Overleaf: an online LaTeX editor with lots of templates. Useful for UG dissertation students.
- EarthArXiv: Preprint server were we can make our papers freely available to anyone under CC licenses (read carefully your Journal restrictions on publication of preprints or postprints to archives).
- figshare and Zenodo: open access repositories for figures, dissertations, Thesis, code and mode.
- ORCID: provides an Open Researcher and Contributor ID that can be used to identify yourself during publication of papers, abstract submissions, etc. Also can help you keep track of your work and your background: you can just add them through DOIs.
- HackMD: collaborative Markdown notes that could be synced with GitHub repositories.
- doi2bib: get a BibTeX entry out of a DOI.
- polljunkie: create quick and anonymous polls.
- Online Equation Editor: generate LaTeX equations and export them as images.
- choosealicense.com: great website to choose software licenses for your projects.
- Creative Commons License chooser: choose the CC license that best suits your needs for your non-software project.
A list of useful LaTeX packages that could be tricky to find. Most of them are released with a PDF document which explains how to use them: they are much more useful than a bunch of replies at StackOverflow.
- hyperref: Create hyper-references in your PDF with links to equations, figures, sections, chapters, footnotes, etc.
- fancyhdr: Easy way to customize your headers and footers.
- natbib: Flexible bibliography support,
defines the
\citet
and\citep
commands. - datetime2: commands for formatting dates and time zones.
- doi: Create correct hyperlinks for DOI numbers.
- xurl: Alternative to the
url
package that allows breaks URLs at the end on the line. - enumitem: Extra control over
itemize
,enumerate
anddescription
. - algorithm2e: Add a new type of floats for including algorithms to your document.
- acronym: Manage acronyms in your document, can optionally create a list of every acronym along with their expansions.
- tocbibind: Add bibliography, index, contents to Table of Contents.
- appendix: Extra control of appendices.
- listings: Include source code into your document with syntax highlighting and more.
- mathpazo: Use the Palatino font.
Do you want to procrastinate a little bit?
- Pycon UK 2016: Python and the Glories of the UNIX Tradition by Brandon Rhodes
- Brandon Rhodes: Stopping to Sharpen Your Tools - PyWaw Summit 2015
- "The Antipodes" - Brandon Rhodes (PyCon AU 2019)
- Data Science and Open Communities | Fernando Perez | TEDxBerkeley
- David Beazley | PyData Global 2021 | Begin ... end? | History of Python in Science