On Thursday, July 7th, 2016 I gave the following seminar:

Title: IT/Dev[op]s Army Knives Tools for the researcher: a journey from SSH to Git

   Download the slides (PDF)

Abstract

This seminar will review some of the most sensible tools every researcher (in computer science but not only) will probably have to use through his daily work. In particular, the objective is this talk is to make the attendees [more] confortable with the following tools:

  • SSH (Secure Shell), which permits to establish secure tunneled connections to remote servers, thus serving as a generic secure medium for all kind of useful operations (access to remote servers, online backup, SOCKS proxy, transparent by-pass of multi-layer firewalls etc.)
  • Git, one of the best and most efficient Version Control System (VCS) available today;
  • Vagrant, a virtualization framework facilitating the generation of development environments

In addition, several other tools / approaches will be reviewed since they proved to be very useful in a research context. For instance, PGP / GPG will be covered since it offers a scalable mean for exchanging encrypted / digitally signed information (through mails, files and/or git). If you use ruby or python for your research prototypes, you might be interested to know how to create sandboxed and reproducible running environments across developers. Finally, you probably spend a lot of time taking notes, writing documentations, articles or producing [LaTeX/Beamer-based] slides. At this level, you will want to know about Markdown, an easy text syntax that can greatly enhance and accelerate these operations in a way that will be detailed.

Schedule

Part I (9h45-12h00), Location: B21 (Kirchberg Campus)

  • SSH Secure Shell
    • Overview and Basic usage
    • Advanced usage (proxy SOCKS, multi-jump with ProxyCommand etc.)
  • PGP / GPG: Gnu Privacy Guard
  • Vagrant: Development environment made easy
    • Overview and Installation notes
    • Box Configuration
    • Common operations
    • Vagrant Box Generation / customization
  • Puppet Configuration Management
  • Ruby / Python: Sandboxed and reproducible running environment across developers
    • Ruby: RVM and Bundler
    • Python: pip and Pyenv Virtualenv Autoenv
  • Markdown-based documentation, articles and slides
    • Overview of the Markdown syntax
    • Git-based Markdown Wiki: gollum, mkdocs
    • using Markdown with LaTeX and Beamer
  • Password Management
  • Overview of the Research Computing platforms @ UL

Part II (13h15 - 15h00), Location: B21 (Kirchberg Campus)

  • Introduction to Version Control System (VCS)
  • Git Basics
    • Installing Git
    • Git theory
    • Basic Commands Branching and Merging
  • Collaborating / Working together
  • Advanced Git Topics
    • Git Submodules
    • Rebasing
    • Using Git over Subversion Repository
    • More Cool stuff