Some things takes much less time and stress once you know the right tool. Below, there is a community edited list of software for scientists.
in General purpose text/code editors. It may be better to have a good editor for everything, than different ones for different languages, scripts, notes.
-
- License: paid, unlimited trial
- Powerful but easy to start
- Good environment of plugins, including ones for science, e.g.:
-
- Open source, for Windows
- Quite powerful, simple (no steep learning curve), and very stable
- Useful block-select functions
-
- Open source
- Powerful, but steep learning curve
- Type
vimtutor
in terminal to learn basics (or if you want to have some fun vim-adventures) - TODO: some materials for science (e.g. complete setup to use it with LaTeX)
-
- More of a powerful programmagle text environment, than an editor
- Includes mutt (first mail client that supported threading), IRC client, many programming modes, Tramp (SSH), terminal emulator (great for Windows users!)
- Includes a powerful note-taking and Organization tool: Org mode
- LaTex mode with realtime preview of output PDF is awesome
-
- open source
As we all take a lot of notes. Some links from this: http://academia.stackexchange.com/questions/8002/how-to-manage-theorists-labbook.
- TiddlyWiki
- Interactive personal wiki in one file. A lot of plugins.
- See http://boolesrings.org/krautzberger/2010/11/10/tiddlywiki-or-the-end-of-my-latex-notes/
- Evernote
- Synchronization with computer, web and devices. No tree structure or LaTeX support.
- Gitit
- Personal wiki with Git, notes in separate files.
- Rednotebook
- A journal/diary in one file. It allows to export the journal to PDF, HTML, Latex or plain text
- DebateGraph
- Organize a graph of notes
- Include structured conversations around each node
- Each node has its own rich text editor (no LaTeX)
- Known issue: no way to export
As a general thing, Markdown format may be convenient. It can be read on any system, and it is easy to cenvert it to HTML, PDF of DOC using Pandoc.
Some discusion here: http://academia.stackexchange.com/questions/1261/simplest-way-to-jointly-write-a-manuscript
(see also: Sharing code and Version control)
- GoogleDrive
- Usually much nicer than sending back and forth docs
- Also nice for brainstorming (use your own colour)
- Hackpad
- Content-oriented (same font), simple but productive features
- Great for brainstorming (names are visible, e-mail notifications)
- Examples: https://hackpad.com/New-scientific-markup-language-utAjFcYuvvB
- Etherpad (software)
- e.g. at Titanpad
-
- Open source
- Git and Dropbox support in paid version
- Basic features are free
-
- Perhaps the best way to introduce people to LaTeX (no installation required, starts with a full working example)
-
- nice interface designed for writing full, scientific papers
- also can use Markdown
- underlying git repo, so good history management
- public articles + one private free
-
- Web editor with Markdown and LaTeX, synchronizes with GoogleDocs and GitHub
- Maybe good to introduce people to Markdown
-
- Short math notes
- PeerLibrary
- Collaborative reading of academic publications
- Sharing, highlighting, annotations, discussions
- Displays PDFs in the browser
- Still in development, open source
- SciRate
- tracking of new papers from arXiv
- you can recommend and comment preprints
Crucial for code. Often helps a lot with writing LaTeX documents (see some discussion here: http://academia.stackexchange.com/questions/5277/why-use-version-control-systems-for-writing-a-paper). Much more pleasant than e-mailing back and forth changes!
-
- steep learnign curve, especially on Windows
- Tutorials:
- Interactive tutorial: http://try.github.io/
- Relatively simple intro: http://www.ralfebert.de/tutorials/git/
- Version Control with Git - Software Carpentry - especially for scientists
- Git for Scientists: A Tutorial
- How to contribute to GitHub projects
- Adv. interactive tutorial for branching: http://pcottle.github.io/learnGitBranching/
- An easy to use interface for Win is TortoiseGit
-
- Pure Python, so it works nicely on Windows (Linux and Mac OS X as well)
- Similar to git but with less steep learning curve
- Hg Init: a Mercurial tutorial by Joel Spolsky
While for small-to-medium size both are equally powerful (so pick any and you will be happy!), an older version control system Subversion (SVN) is less powerful, but not necessarily simpler (so when starting a new repository, use Git or Mercurial). For older projects it is still fine (SVN version control is still much, much better than no version control!).
For both Git and Mercurial SourceTree is nice and free (though not open) graphical interface.
For hosting (for collaboration with others and backup), see Bitbucket and GitHub.
For personal homepages, lab notebooks and conference websites.
- WordPress - code and WordPress - hosting
- Jekyll
- For writing blogs in Markdown and easily putting them on GitHub
- Tutorial for using LaTeX in it: http://cwoebker.com/posts/latex-math-magic
- Examples:
- Wikidot
- Wikispaces
- Simple wikis, very easy to create and manage
- Used as open science notebooks, for instance http://usefulchem.wikispaces.com/
- Site44
- Showing small site by putting files into a Dropbox folder
- GitHub Pages
- Static websites with Git
- Instiki
- Wiki especially for mathematical collaboration (see features on Azimuth - how to blog - LaTeX, SVG, ...)
- Examples:
- WorkingWiki
- Wiki especially for mathematical collaboration
- Sphinx
- Great for writing documentation
- Example (in Polish): http://django.carrots.pl/
- Jekade
- Jekyll-like static pages with built-in LaTe support, in Node.JS
- Google Forms of Google Drive
- easy, free, but for a limited number of responses
- easy way to set registration for a small event, or to get feedback
- Survey Monkey
-
- With PDF, notes, arXiv field, BibTeX support, metadata extraction
- Free with large storage limit; owned by Elsevier
-
- Strong browser integration - click a button in the URL bar to save a reference
- Syncs references between computers
- Open source
-
- Cross-platform manager for BibTeX databases. Little integration with the web.
-
- Mac OS X
-
- great for sharing code and not only; very open for collaboration
- examples:
- a scientific open-source project QuTip: Quantum Toolbox in Python
- the Linux itself
- German Federal Law and Regulations (vide open data)
- ...and even a book - "Two dozen mathematicians wrote a 600 page book in 6 months on GitHub" (http://homotopytypetheory.org/book/, see also a blog post on it)
- gist for posting short codes or notes on anything
-
- for Git, Mercurial and SVN
- less social/collaborative than GitHub
- unlimited number of private projects and collaborators with an academic e-mail http://atlassian.com/software/views/bitbucket-academic-license.jsp
-
- For sharing negative data, plots, posters, etc; gives you a DOI.
(list only related to academia or research-level)
- Some Stack Exchange sites related to science, e.g.:
-
- Some great packages:
- The SciPy ecosystem contains lots of useful libraries. A detailed course is online at http://scipy-lectures.github.io/
- NumPy for numerics
- Matplotlib for plots
- Sympy for symbolic computations
- IPython Notebook for interactive environment for exploration and presenting results
$ ipython notebook --pylab inline
- http://nbviewer.ipython.org/ for sharing notebooks
- Introduction to IPython Notebook
- http://pandas.pydata.org/ for data analysis (R-like)
- Also: NLTK! http://nltk.org/
- http://scikit-learn.org/stable/ for machine learning
- The SciPy ecosystem contains lots of useful libraries. A detailed course is online at http://scipy-lectures.github.io/
- Python syntax intro: http://learnxinyminutes.com/docs/python/
- Intros to Python for scientists:
- More in depth science introductions:
- Some great packages:
-
- For interactive applications and visualizations (works on any system, no installations required)
- Nice introduction: http://eloquentjavascript.net/
- Matplotlib for Python
- gnuplot (free software)
- R (for applied statistics, but also nice plots, free software)
- use together with RStudio http://www.rstudio.com/, powerfull IDE for R
- ggplot "a plotting system for R, based on the grammar of graphics", easier and nicer looking plotting, tutorial
- D3.js - Data Driven Documents
- A JavaScript library any data visualizations (also interactive)
- Interactive intro
- Examples: http://biovisualize.github.io/d3visualization/
- Gephi
- for graph anaysis and visualization
- Origin
- Windows, commercial
- In LaTeX: TikZ library
- Inkscape for *.svg (Scalable Vector Graphics)
- open source, GNU
- The Ipe extensible drawing editor
- open source, GNU
(except for the well-known office packages :), unless with some additional hints)
- LaTeX/Beamer
- also: Beamer slides using Markdown: http://jeromyanglim.blogspot.com.es/2012/07/beamer-pandoc-markdown.html
- Prezi
- zoomable prezentations
- for example: http://prezi.com/d3lswto1mebc/free-falling-through-prezi/
- knitr combine R and markdown and export your report to pdf/doc/odt
- Slidify
- Latexit for easily putting equations into Keynote/Powerpoint/Anything
Sharing is bulit-in in Prezi and Slidify.
- https://speakerdeck.com/
- people can view online and download pdfs (no registration or adverts, as of now)
- example
More generic: GitHub and Figshare
- Inkscape for *.svg (Scalable Vector Graphics)
- GNU
- LaTeX
See also: General-purpose programming: Python. (And to reiterate: SciPy!)
- Mathematica
- commercial
- for symbolic calculations
- Wolfram Alpha
- for online simple plots, units changing, integrals etc. a "demo version" of Mathematica
- MATLAB
- commercial
- for numerical calculations, supports scripting
- Octave
- open source, GNU licence
- almost the same as MATLAB (sometimes incompatible), without graphical interface - only text
- may use Gnuplot for plots
- Sage
- open source, licensed under the GPL
- mathematics software system (alternative to Magma, Maple, Mathematica and Matlab.) . It combines the power of many existing open-source packages into a common Python-based interface.
- R
- for any kind of statistics
Throw a pile of random programs (it is not a complete list)
-
- Todo list with easy synchronization
-
- to track how much time you spend on different activities on your computer (that is, how much you work, and how much you procrastinate)
-
- bookmark managers
-
- backup, sharing and some crude collaboration and version control
This text is in Markdown, put on https://gist.github.com/ (https://gist.github.com/stared/9130888) (its raw text is here).
Feel invited to collaborate.
Original version collaboratively edited on http://titanpad.com/x1AgPmeWX1 by:
- Piotr Migdał (author and the maintainter)
- Thomas Kluyver
- Marek Stępniowski
- Vasily Sochinsky
- Florence Piron
- Marta Czarnocka-Cieciura
- Krzysztof Zieleniewski
- Le
- Przemek Biecek
- Carolina Odman-Govender
- Marcin Kurczych
- David Ketcheson
- Steven Byrnes
- write your name (even if you contributed a single character :)) use name, pseudonym or increment the anonumous counter:
- ...and 2 Anonymous Contributors.
YOU ARE INVITED TO EDIT! :)
DO:
- Add programs you use and recommend
- Fix mistakes and omissions by others. :)
DON'T:
- Throw a pile of random programs (it is not a complete list of software for X - it is a recommendation list)
Additional pluses for:
[name](link)
- comments on status (e.g. open source)
- one sentence of description what's that and what's that good for
- links to tutorials or other resources (esp. for the academic usage)
- or links to good examples of usage
- adding categories, their short intros or general links
- marking explitly if it only works under some OS
Please take yourself time to read http://titanpad.com/ep/pro-help/#deletionpolicy (I will put it as a GitHub gist after)