Modeling and Simulating Social Systems with MATLAB Lecture 3 Git - - PowerPoint PPT Presentation

modeling and simulating social systems with matlab
SMART_READER_LITE
LIVE PREVIEW

Modeling and Simulating Social Systems with MATLAB Lecture 3 Git - - PowerPoint PPT Presentation

Modeling and Simulating Social Systems with MATLAB Lecture 3 Git Stefano Balietti, Olivia Woolley, Dirk Helbing Computational Social Science ETH Zrich Announcement! We are hiring! We are looking for 1 or 2 student assistants


slide-1
SLIDE 1

ETH Zürich

Modeling and Simulating Social Systems with MATLAB

Lecture 3 – Git

Computational Social Science

Stefano Balietti, Olivia Woolley, Dirk Helbing

slide-2
SLIDE 2

Modeling and Simulating Social Systems with MATLAB 2

Announcement!

  • We are hiring!
  • We are looking for 1 or 2 student assistants with strong

computational skills.

  • Programming Languages: Javascript, Node.js (or

willingness to learn them quickly)

  • If interested contact your instructor Stefano Balietti in

class or via email sbalietti@ethz.ch

slide-3
SLIDE 3

Modeling and Simulating Social Systems with MATLAB 3 3

Schedule of the course

21.09. 28.09. 05.10. 12.10. 19.10. 26.10. 02.11. 09.11. 16.11. 23.11. 30.12. 07.12. 14.12.

Introduction to MATLAB Introduction to social-science modeling and simulations Working on projects (seminar thesis) Handing in seminar thesis and giving a presentation Flash Talks Modeling overview

slide-4
SLIDE 4

Modeling and Simulating Social Systems with MATLAB 4 4

Schedule of the course

21.09. 28.09. 05.10. 12.10. 19.10. 26.10. 02.11. 09.11. 16.11. 23.11. 30.12. 07.12. 14.12.

Introduction to MATLAB Introduction to social-science modeling and simulations Working on projects (seminar thesis) Handing in seminar thesis and giving a presentation Flash Talks Modeling overview

Project Proposals must be submitted before !

slide-5
SLIDE 5

201 4-

Mo del 5

Project

  • Implementation of a model from the Social

Science literature in MATLAB

  • During the next two weeks:
  • Form a group of two to four persons
  • Choose a topic among the project suggestions

(available on line) or propose your own idea

  • Set up a GitHub repository for your group
  • Complete the research proposal (It is the README file
  • f your GitHub repository)
slide-6
SLIDE 6

201 4-

Mo del 6

Research Plan Structure

  • 1-2 (not more!) pages stating:
  • Brief, general introduction to the problem
  • How you abstract the problem with a model
  • Fundamental questions you want to try to answer
  • Existing literature, and previous projects you will

base your model on and possible extensions.

  • https://github.com/msssm/interesting_projects/wiki
  • Research methods you are planning to use
slide-7
SLIDE 7

201 4-

Mo del 7

Research Plan

  • Upon submission, the Research Plan can:
  • be accepted
  • be accepted under revision
  • be modified later on only if change is justified (create

new version)

  • Talk to us if you are not sure
  • Final deadline for signing-up for a project is:

18 October 2015 (midnight)

slide-8
SLIDE 8

Modeling and Simulating Social Systems with MATLAB 8 8

Deadlines and Dates

  • Deadline for project proposals:

Monday 18 October 2015 at midnight

  • Deadline for project reports:

Tuesday 11 December 2015 at midnight

  • Oral project presentations:

Wednesday 14 December to 16 December 2015

slide-9
SLIDE 9

Modeling and Simulating Social Systems with MATLAB 9 9

Revision Control

  • Revision (or version) control systems are software

aimed at managing changes to files (such as source code files)

  • Version control software:
  • Traditional/centralized: CVS, Subversion (SVN)
  • Modern/distributed: Bazaar, Mercurial, Git
  • We will use Git for managing the research proposals,

source code, and final reports

slide-10
SLIDE 10

Modeling and Simulating Social Systems with MATLAB 10

  • Distributed revision control / source code management
  • Initially designed and developed by Linus Torvalds
  • Git repositories (“code bases”) consist of a history of commits

(“changes”)

  • Every (local) instance of a repository has the complete history
  • Supported by popular hosting sites such as GitHub and Bitbucket
slide-11
SLIDE 11

Modeling and Simulating Social Systems with MATLAB 11 11

Collaboration and Branches

slide-12
SLIDE 12

Modeling and Simulating Social Systems with MATLAB 12 12

Course repositories

  • The GitHub organization for the course:

https://github.com/msssm

  • Links to projects of previous semesters:

https://github.com/msssm/interesting_projects/wiki

  • Template for project repository:

https://github.com/msssm/project_template

slide-13
SLIDE 13

Modeling and Simulating Social Systems with MATLAB 13 13

Using Git

  • On the command line, Git is used by calling the git

command

  • There are many graphical user interfaces for different
  • perating systems
  • There are Git plugins for development environments

such as Eclipse

slide-14
SLIDE 14

Modeling and Simulating Social Systems with MATLAB 14 14

Using Git: Introduction

  • Introduce yourself to Git:

$ git config --global user.name "Your Name" $ git config --global user.email i@me.com

slide-15
SLIDE 15

Modeling and Simulating Social Systems with MATLAB 15 15

Using Git: Initialization

  • To initialize an empty repository, you can use the

command git init

  • Initialize your first Git repository:

$ cd /path/to/code/dir/ $ git init

slide-16
SLIDE 16

Modeling and Simulating Social Systems with MATLAB 16

slide-17
SLIDE 17

Modeling and Simulating Social Systems with MATLAB 17 17

Using Git: Tracking and Committing

  • Tell Git which files you would like to include:
  • Take a snapshot (commit) of all tracked files:

$ git add file1 file2 $ git add . $ git commit –m “This is my first commit”

slide-18
SLIDE 18

Modeling and Simulating Social Systems with MATLAB 18 18

Using Git: Status and Diff

  • Show the status of the repository:

$ git status

  • Inspect the differences:

$ git diff

slide-19
SLIDE 19

Modeling and Simulating Social Systems with MATLAB 19 19

Using Git: Some Recommendations

  • Commit often
  • Use meaningful commit messages
  • New files are not automatically indexed, must be added
  • Be careful with respect to which files to add
  • Do not add very large files (compress videos and upload

them only in the end)

  • Write a .gitignore file or use git ignore for files that

you never want to commit (e.g. big datasets)

slide-20
SLIDE 20

Modeling and Simulating Social Systems with MATLAB 20 20

Using Git: GitHub

  • If you are not registered yet, please do so (every

student should have an account): https://github.com/

  • Some initial configuration is required.
  • 1. Copy your SSH public key to your github account
  • 2. Fork the “report_template” repository to “my_repo”
  • 3. Configure it (rename, add team members)
  • 4. Clone “my_repo” on your machine
  • 5. Push your first commit
slide-21
SLIDE 21

Modeling and Simulating Social Systems with MATLAB 21 21

Using Git: SSH Keys (optional)

  • An SSH public key is a certificate of your identity
  • If you upload your SSH public key to your Github

account, you don’t have to type in username and password every time you connect to GitHub

  • https://help.github.com/articles/generating-ssh-keys
  • https://help.github.com/articles/set-up-git
slide-22
SLIDE 22

Modeling and Simulating Social Systems with MATLAB 22 22

  • Needs to be performed by only one group member

(one repository per group)

  • Click the Fork button at the top of this page:
  • https://github.com/msssm/project_template
  • In the Settings of the forked project:
  • Rename to a meaningful name
  • Add your team members (collaborators)

Using Git: Fork and Configuration

slide-23
SLIDE 23

Modeling and Simulating Social Systems with MATLAB 23

Using Git: Clone Project Template

  • Make a local copy of your new repository

$ git clone git@github.com:USERNAME/PROJECT.git

23

slide-24
SLIDE 24

Modeling and Simulating Social Systems with MATLAB 24 24

Check that your local copy of the repo points to the correct online repository (your fork)

$ git remote -v

  • rigin git@github.com:USERNAME/PROJECT.git (fetch)
  • rigin git@github.com:USERNAME/PROJECT.git (push)

Using Git: Remote Repos

slide-25
SLIDE 25

Modeling and Simulating Social Systems with MATLAB 25 25

Using Git: Upload Commits

  • Write your research plan inside the README file
  • When you are happy :

$ git add README.md $ git commit –m “Research Plan done” $ git push –u origin master

slide-26
SLIDE 26

Modeling and Simulating Social Systems with MATLAB 26 26

Using Git: Let us know

  • Send the link to your project repository on

GitHub to sbalietti@ethz.ch and

  • livia.woolley@gess.ethz.ch
  • Add the tag [MSSSM] to the subject line to make
  • ur life easier (you do not want to upset your

instructor early on)

slide-27
SLIDE 27

Modeling and Simulating Social Systems with MATLAB 27 27

References

  • Git Home Page: http://git-scm.com/
  • Git General Info: http://git-scm.com/about
  • Github Home Page: https://github.com/
  • GitX (a gui for OS X): http://gitx.frim.nl/
  • Git in 5 minutes: http://www.fiveminutes.eu/a-case-for-git/
  • Git Book http://book.git-scm.com/
  • Git: creating a repo http://help.github.com/create-a-repo/
  • Git: working with remotes http://help.github.com/remotes/
  • EGit plugin for Eclipse: http://www.eclipse.org/egit/
  • Markdown: http://daringfireball.net/projects/markdown/syntax