Workflow matan gavish stanford statistics 5/2013 What is - - PowerPoint PPT Presentation

workflow
SMART_READER_LITE
LIVE PREVIEW

Workflow matan gavish stanford statistics 5/2013 What is - - PowerPoint PPT Presentation

Workflow matan gavish stanford statistics 5/2013 What is workflow? How we accomplish daily chores on computer Computer routine are different Tells apart professionals Tells apart professional groups Who cares? You. Be more productive Be less


slide-1
SLIDE 1

Workflow

matan gavish stanford statistics 5/2013

slide-2
SLIDE 2

What is workflow?

How we accomplish daily chores on computer Computer routine are different Tells apart professionals Tells apart professional groups

slide-3
SLIDE 3

Who cares?

Be more productive Be less frustrated Produce better quality work Do impossible things before breakfast

You.

slide-4
SLIDE 4

Things we do

Write code Execute code Keep track Write papers & slides

  • alone. in group. in community.

Computational scientist’s workflow

slide-5
SLIDE 5

Workflow elements

Workstation Directory structure Shell Text editor Knowledge base

Basics

slide-6
SLIDE 6

Workflow elements

Source control and collaboration Codebase, packages, dependencies Style guide and lint Tests and coverage Docs generator Code review

Software development

slide-7
SLIDE 7

Workflow elements

Production environment Job monitoring Result harvest

Production

slide-8
SLIDE 8

Workflow elements

Research Journal Lab Journal Result archive

Keeping track

slide-9
SLIDE 9

Workflow elements

Typesetting system Source control and collaboration Citation manager

Writing papers & slides

slide-10
SLIDE 10

current workflow? none.

To: advisor From: Student Re: Paper draft attached draft_2_final_4_submitted_student_changes12.tex and draft_references_for_final_4_15.bib

15

slide-11
SLIDE 11

My Workflow

Workstation: unix only, Mac ($$$), Ubuntu ($) Directory structure: ~/r/project-name/talks/asilomar Shell: ZShell + ohmyzsh goodness, .zshrc, .ssh/config Text editor: vim (filetypes{colors,templates,indentation,

macros}, pathogen, fugitive, completion, keybinds) .vimrc

Knowledge base: wiki

Basics

slide-12
SLIDE 12

Workflow elements

Source control and collaboration: Git! git! git!

(branches, remotes, tags, submodules, hooks, github)

Codebase, packages, dependencies:

Git+Phabricator, pip+virtualenv (python)

Style guide and lint: Google’s style guide,

pylint, .pylintrc, mlint, R “lint”

Tests and coverage: nose (python) Docs generator: sphinx-doc Code review: Phabricator

Software development

slide-13
SLIDE 13

Workflow elements

Production environment: qsub, starcluster, MRJob Job monitoring: qsub, MRJob Result harvest: rsync, scp, dropbox, MySQL, VCR

Production

slide-14
SLIDE 14

Workflow elements

Research Journal: black notebook, tex notes in project

repo

Lab Journal: iPython Notebook, VCR Important result archive: VCR

Keeping track

slide-15
SLIDE 15

Workflow elements

Typesetting system: vim-latex, soft links (macros,

bibtex, graphics), Skim (back+forward search), beamer

Source control and collaboration: Git, github,

Meld(diff)

Citation manager: Mendeley + git + soft links

Writing papers & slides

slide-16
SLIDE 16

Ultimate workflow?

Effortless to collaborate within group Easy to collaborate outside group Easy to learn Easy to maintain Effortless to set up Portable across computers

slide-17
SLIDE 17

living workflow

Tutorial + wiki for each element Regularly maintained One or few installers

slide-18
SLIDE 18

get a workflow

http://software-carpentry.org http://verifiable-research.org https://github.com http://vimcasts.org http://www/~gavish/workflow.html

http://jackman.stanford.edu/classes/SSMART/2011/workflow.pdf

start yours! (1 week) Opensource it!