Surviving PhD studies on nothing but free software, online tools and dry bread
PhD FS-Promos workshop - 12.12.2018
Johannes Leugering (jleugeri@uos.de)
A typical research pointless demo project
-
Learning skills & getting inspired
-
Research (I, II)
-
Planning & organizing
-
(Collaborative writing)
-
Programming & analyzing data
-
Visualizing results
-
Presenting the project
-
Spreading the news
(0. setting up)
0. Setting up
Get GNU/Linux!
- there's a loooooot of choices
- default: Ubuntu
- https://distrochooser.de/en
- reliable operating system
- (almost) completely free & OS
- huge community
- all the rage with nerds
- particularly in science and software development
- (and yes, it has games too...)
Command Line
- simple to learn basics
- ignore the haters
- very useful
- CLI skillz = extremely sexy
- admins will like you more
- file management
- launch applications
- compile latex
- essential for high performance computing
-
pwd
print the current working directory -
ls [<directory>]
list directory contents -
cd <directory>
change the working directory -
mv <name1> <name2>
move (rename) a file or folder -
mkdir <filename>
create a new directory
90% of the time = 10 commands
-
./<filename>
execute a file -
htop
list running processes -
ssh <address>
securely connect to different device -
man <command>
open a programs manual pages -
git
manage a git repository (extra slide)
1. Learning skills & getting inspired
- often (only) partially free
- contain short videos, questionaires, reading materials, learning goals etc.
- growing number of choices:
- 1300 online lectures:
openculture.com/freeonlinecourses
Online courses
An aside: LaTeX + bibtex/bieber
+
- great for typesetting & equations
- optimized & professional design
- compiled into PDF, PS or others
- large community, many packages
- create texts, books, slides, posters, fliers, exams, ...
- separates visualization from content
- split long documents across files
- fix styling after writing
- change themes easily when switching to a different journal
- turn on/off draft mode
- some journals accept .tex files
- decide if it's worth it for you!
- a tutorial:
https://www.latex-tutorial.com - a simpler editor: LyX
- online editor: overleaf (extra slide)
-
- complex, old scripting language
- no WYSIWYG editing
- installation of LaTeX suite required
- can be tedious to debug, compile, include figures and bibliographies
An aside: LaTeX alternatives
- MarkDown, reStructuredText, AsciiDoc
- simple, text-based, ascii-art
- many variations
- supported by (technical) forums
- supported by many editors
- converter between many formats:
https://pandoc.org/
- pure/generated HTML5 + CSS3
- used in webdesign
- rendered by browser
- Word processor formats
- .doc, .docx, .xlsx, .odt, .odf
- software specific
- online editors (extra slide)
- google docs
- office online
- overleaf (richtext editor)
- jupyter notebooks
2. Research
a.) finding relevant information
Scholarpedia
- encyclopedia for scientific topics
- curated by scientists
- high quality
- less coverage than wikipedia
Wikipedia
- encyclopedia for everything
- curated by hobbyists
- mixed quality
- amazing coverage
StackExchange
- huge variety of free (+bounties) forums
- ask questions
- domain experts give answers
- voting system rewards good q&a
Google Scholar (1)
Google Scholar (2)
Semantic Scholar
- search papers or authors
- good suggestions
- author relationships
2. Research
b.) collecting references
- collect citations quickly
- purly online
- no registration/login
- storage local in browser
- exports to multiple formats
- can link to bibliography
Zotero
- collect citations online
- browser integration
- synchronizes library with account and devices
- downloads PDF copies
- recognizes DOI, adds details
- allows organizing documents
- by folders
- by tags
Mendeley Desktop
+
- good integration of tools
- institutional login
-
- broken registration process
- Elsevier - good, but bad
3. Planning & organizing
Slack
- chat service
- organized into channels
- users assigned to channels
- private channels
- extensions:
- google calendar
- google drive
- listings,...
- separate username+password for each "board"
- can upload, edit and exchange code and text documents, pages (~blog posts)
Trello
- KanBan board format
- useful for SCRUM
- allows organizing content
- lists
- cards
- description
- comments
- ToDo lists
- attachments
- assigments
- due dates
- cards
- lists
Todoist
- simple list of tasks/todos
- organized into projects
- alarms, labels,...
TimeCamp
- track activities in different tasks/projects
- can track program usage
- integration with Todoist, Evernote & many more
4. (Collaborative) writing
Atom
- extremely versatile text editor
- useful for writing/coding
- electron-based (chrome):
- customizable
- nice themes & styles
- extendable
- massive community
- very large ecosystem
- highlighting & linting support for most languages
- extra language suites e.g. Juno, ide-python, LaTeX
- github integration
Github/Gitlab
- version control system
- branches, forks, pull-requests
- supports all (text-based) documents
- issues & continuous integration
- project planning & wiki
- project specific webhosting!
Overleaf
- online LaTeX/RichText editor
- easy to use
- live preview
- collaboration possible
- templates available for all major journals
Google Docs + Drive
- online collaborative office & document editing suite
- simple to use
- exports into most formats
- well maintained
- online backup
Dropbox + Office
- online collaborative office & document editing suite
- simple to use
- exports into most formats
- well maintained
- online backup
5. Progamming & analyzing data
Jupyter
- open notebooks or files in the browser (offline or online)
- supports 40 languages, mainly:
- JUlia
- PYthon
- R
- combine code, documentation and visualization in a single notebook
- conversion into slides, pdf, ebooks...
Julia
- fresh high level language
- high performance computing
- alternative to Matlab & beyond
- high level language
- just-in-time compilation
- uses meta-programming a lot
- domain specific languages
- CPU/GPU/TPU support
- state-of-the-art packages:
differentialequations.jl, turing.jl, knet.jl, flux.jl, vegalite.jl, jump.jl,... - a collection of tutorials:
https://julialang.org/learning/
Python
- seasoned high level language
- user friendly
- extremely large community
- becoming de-facto standard
- very large eco-system with EVERYTHING:
scipy, numpy, sympy, matplotlib, tensorflow, sage, seaborn, pymc3, altair, bookeh, pandas, nltk, ... - a tutorial:
automatetheboringstuff.com/
- domain specific language for statistical modeling & analysis
- user friendly
- large community (in statistics)
- becoming de-facto standard
- very large eco-system with support of most publish statistical methods
- a tutorial:
https://www.datacamp.com/courses/free-introduction-to-r
6. Visualizing results
Visualization packages for scientific programming languages
interactive/browser viz
- python
- julia
- vegalite.jl
- (plotly)
- (vega)
Plot.ly
- online hosting and editing of interactive figures
- uses D3.js for visualization
- beautiful illustrations
- interactivity
- website integration
- multiple programming languages supported
- online hosting and editing of interactive figures
- uses D3.js for visualization
- beautiful illustrations
- interactivity
- website integration
- multiple programming languages supported
D3.js
Vega-Lite
Google Charts
- javascript/html/css based visualizations
- visualization in browser
- large variety of supported charts
- well maintained
7. Presenting the project
- very simple online slide editor
- uses reveal.js
- flexible JavaScript library
- presentation in browser
- easy website integration
- provides online hosting
- this presentation uses it
Google Slides
- part of Google Suite
- collaborative editing
- provides online hosting
LaTeX/beamer
- LaTeX package
- supports complex equations out of the box
- supported by most editors
- standard in academia
- PDF output
- multiple themes available
- implements "fragments" as successive pages
JessyInk for Inkscape
- uses JavaScript embedded into SVGs for presentations
- produces single file
- slides as layers
- present inside the browser
- can be presented offline
- master slide possible
- can produce complex animations/transitions
- allows interactivity!
- full vector graphics editor
- arbitrary slide design
- design illustrations as part of the slideshow
- large suite of plugins
Scribus
- professional desktop publishing tool
- high quality pdfs/prints
- precise layout for brochures, posters, fliers, slides, books etc.
- generates vector graphics
Inkscape
- vector graphics program
- precise layouting
- many available extensions
8. Spreading the news
twitter, reddit, press releases
Research Gate
- totally legitimate business
- (sometimes) provides full-text publications
- social network elements
- follow researchers
- follow projects
- share projects
- ask questions
(micro)blogging
e.g. through github pages
Surving the PhD just on free software and online tools
By Johannes Leugering
Surving the PhD just on free software and online tools
A quick and wild ride through free software and online tools that might, no, will come in handy during your PhD.
- 2,770