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

  1. Learning skills & getting inspired

  2. Research (I, II)

  3. Planning & organizing

  4. (Collaborative writing)

  5. Programming & analyzing data

  6. Visualizing results

  7. Presenting the project

  8. Spreading the news

(0. setting up)

0. Setting up

Get GNU/Linux!

  • there's a loooooot of choices
  • 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

Online courses

Podcasts

YouTube

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

-

  • 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

  • encyclopedia for scientific topics
  • curated by scientists
  • high quality
  • less coverage than wikipedia
  • encyclopedia for everything
  • curated by hobbyists
  • mixed quality
  • amazing coverage
  • huge variety of free (+bounties) forums
  • ask questions
  • domain experts give answers
  • voting system rewards good q&a

Google Scholar (1)

https://scholar.google.com

Google Scholar (2)

https://scholar.google.com

  • 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
  • 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

https://www.mendeley.com

+

  • good integration of tools
  • institutional login

-

  • broken registration process
  • Elsevier - good, but bad

3. Planning & organizing

  • 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)
  • KanBan board format
  • useful for SCRUM
  • allows organizing content
    • lists
      • cards
        • description
        • comments
        • ToDo lists
        • attachments
        • assigments
        • due dates
  • simple list of tasks/todos
  • organized into projects
  • alarms, labels,...
  • track activities in different tasks/projects
  • can track program usage
  • integration with Todoist, Evernote & many more

4. (Collaborative) writing

  • 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
  • version control system
    • branches, forks, pull-requests
  • supports all (text-based) documents
  • issues & continuous integration
  • project planning & wiki
  • project specific webhosting!
  • online LaTeX/RichText editor
  • easy to use
  • live preview
  • collaboration possible
  • templates available for all major journals

Google Docs + Drive

http://drive.google.com

  • online collaborative office & document editing suite
  • simple to use
  • exports into most formats
  • well maintained
  • online backup

Dropbox + Office

https://www.dropbox.com

  • online collaborative office & document editing suite
  • simple to use
  • exports into most formats
  • well maintained
  • online backup

5. Progamming & analyzing data

  • 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...
  • 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/
  • 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/

6. Visualizing results

Visualization packages for scientific programming languages

static/standalone viz

interactive/browser viz

  • 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
  • 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
  • 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
  • professional desktop publishing tool
  • high quality pdfs/prints
  • precise layout for brochures, posters, fliers, slides, books etc.
  • generates vector graphics
  • vector graphics program
  • precise layouting
  • many available extensions

8. Spreading the news

twitter, reddit, press releases

 cf. https://www.altmetric.com/

  • 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