From b4b5fdd04a80cc97b14b1cc8bf85e7dc2141e468 Mon Sep 17 00:00:00 2001
From: Adrian Stoica <stoica@ntnu.no>
Date: Wed, 4 Sep 2024 13:28:49 +0200
Subject: [PATCH] docs: add slides for the 3rd lecture

---
 lectures/revealjs/03-git-devenv.adoc | 189 +++++++++++++++++++++++++++
 1 file changed, 189 insertions(+)
 create mode 100644 lectures/revealjs/03-git-devenv.adoc

diff --git a/lectures/revealjs/03-git-devenv.adoc b/lectures/revealjs/03-git-devenv.adoc
new file mode 100644
index 0000000..7af7480
--- /dev/null
+++ b/lectures/revealjs/03-git-devenv.adoc
@@ -0,0 +1,189 @@
+= Git, GitLab and development environment
+:customcss: slides.css
+:icons: font
+:includedir: includes/
+:LECTURE_TOPIC: Git, GitLab and development environment
+:LECTURE_NO: 3rd lecture
+
+include::{includedir}header.adoc[]
+
+
+[.smaller-80][.center-paragraph]
+IT1901 Fall 2024 - {LECTURE_NO}
+
+== Agenda
+
+[%step]
+- Administrative issues
+- Git
+- Gitlab
+- Developmennt environment
+- Summary
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Administrative issues
+
+== Groups
+
+- groups will be finalized this week
+- there will be a BlackBoard group and a GitLab group assigned for each team of students
+- issues - contact Talha Mahboob Alam talha.m.alam@ntnu.no
+
+
+== Referansegruppe
+
+[.smaller-60]
+- established - 1st meeting next week
+- members
+** Vebjørn Liland Drefvelin vebjorld@stud.ntnu.no	Informatikk
+** Jessica Shuyue Liu jessicsl@stud.ntnu.no	Datateknologi
+** Kristoffer Welle kristwel@stud.ntnu.no Datateknologi
+** Erling Kvalvik Eriksen erlingke@stud.ntnu.no	Lektorutdanning i realfag
+
+
+== 1st Group deliverable
+
+- start working on selecting the project as soon as your group is ready
+- prepare group contract
+- read carefully the instructions
+
+== Approaching Deadlines
+
+- Torsdag, 12. september / 23:59 
+** 1st individual deliverable
+
+- Torsdag, 19. september / 23:59 
+** 1st group deliverable
+
+- Torsdag, 19. september / 23:59 
+** group contract
+
+ 
+== Getting help
+
+- ask your group TA
+- Q and A sessions every Thursday starting week 37
+- some lectures will also Q and A sections 
+- technical help - more info coming soon
+
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Git
+
+== What is git
+
+Git is a source code management system that is lightweight, reliable, fast and fully distributed. 
+On top of that it is free and open source. Git was  initially authored by Linus Torwalds and emerged from his troubles encountered while trying to manage the contributions to Linux kernel.
+
+
+[.grid-left-right-50-50]
+== Typical sequence (share project) 
+
+[.area-left][.smaller-60]
+- starting a project and sharing it on Gitlab for team collaboration
+** `git init`
+** `git status`
+
+[.area-right][.smaller-60]
+** `git add ...`
+** `git commit ...`
+** `git remote ...`
+** `git push`
+
+== Commit messages
+
+image::../images/git_commit_2x.png[size=75%]
+[.smaller-40]
+https://xkcd.com/1296/
+
+== Commit messages (seriously)
+
+- Separate subject from body with a blank line
+- Limit the subject line to 50 characters
+- Capitalize the subject line
+- Do not end the subject line with a period
+- Use the imperative mood in the subject line
+- Wrap the body at 72 characters
+- Use the body to explain what and why vs. how
+
+
+
+[.grid-left-right-50-50]
+== Typical sequence (simple collaboration)
+
+[.area-left][.smaller-60]
+- working with a shared project
+** `git clone`
+** `git pull`
+
+[.area-right][.smaller-60]
+** `git status` 
+** `git add ...`
+** `git commit ...`
+** `git push`
+
+== Typical sequence (with branching)
+
+- working with branches
+** `git pull` 
+** `git checkout -b <branch_name>` 
+** `git status` + `git add ...` + `git commit ...` 
+** `git checkout master` 
+** `git merge <branch_name>` 
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Gitlab
+
+
+== What is GitLab
+
+Is a complete devops solution that does repository hosting, issue tracking, agile planning, code review, ci/cd and more. It started as an open source project and it still has a community edition which is free and open source
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Development environment
+
+
+== Sdkman
+
+- tool allowing managing several versions of frameworks and development kits
+- works on linux, mac and windows (with some convincing)
+- manage several Java versions and or Maven versions
+- easily install different flavours and releases
+
+
+== Typical development environment for the course
+
+- VSCode + relevant extensions
+- git 
+- sdkman - get Java 17.0.xx-tem and Maven 3.9
+
+== Services used
+
+- GitLab - https://gitlab.stud.idi.ntnu.no/
+- Eclipse Che - https://che.stud.ntnu.no/
+
+
+== Levels and approaches to the development environment for the course
+
+- use the local machine - install on your OS
+- use a virtual machine (e.g. VirtualBox)
+- use a container (Docker Desktop + VSCode)
+- use the cloud IDE (Eclipse Che + browser)
+
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Summary
+
+
+
+
+include::{includedir}footer.adoc[]
\ No newline at end of file
-- 
GitLab