ETH Zürich
Modeling and Simulating Social Systems with MATLAB Lecture 3 Git - - PowerPoint PPT Presentation
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
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
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
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 !
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)
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
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)
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
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
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
Modeling and Simulating Social Systems with MATLAB 11 11
Collaboration and Branches
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
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
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
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
Modeling and Simulating Social Systems with MATLAB 16
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”
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
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)
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
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
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
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
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
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
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)
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