Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tutorial: Using Docker to setup Pi-Hole #1013

Merged
merged 3 commits into from
Apr 28, 2021
Merged

Conversation

christian-stj
Copy link

@christian-stj christian-stj commented Mar 26, 2021

I have made a tutorial!

@andreaskth @EleonoraBorzis
Looking forward to your review! I will make this a draft pull request and perhaps you can provide your feedback as comments to this pull request if that's the correct procedure? @cesarsotovalero

When I have gotten feedback I will update the PR

@andreaskth
Copy link

Nice! We'll look at it and get back with feedback (hopefully within 24h) 🎉

@andreaskth
Copy link

(Me and Eleonora are going through your tutorial separately to not influence each others' feedback, so she will add a separate comment!)

Overall a very nice tutorial, and also something I've been meaning to look up how to do for a while, so that's a plus. :) I added some feedback comments/thoughts and suggestions below as I went through the tutorial.

Intro page

Step 1 of 4

  • On the web we are blasted with ads and many ad blockers are imperfect and work in-browser.

    Perhaps you could write:

    On the web we are blasted with ads and many ad blockers are imperfect and only work on a browser-basis, which means you have to install them on all your devices (which is often not even possible on some devices, e.g. mobile phones).

    to emphasize the drawbacks of only using ad blockers.

  • Another possible clarification:

    by not resolving to a host

    could be

    by not resolving certain host names to IP addresses, if the host name is in the aforementioned list of known ad providers

  • Overall really nice description of Pi-hole and why it works (by also explaning DNS and that Pi-hole resolves ad providers to 0.0.0.0).

  • One thing you cannot really control but that confused me slightly was that my screen is too narrow to show entire lines, so it looked like you had example output of:

    ;; ANSWER SECTION:
    example.com.            4541    IN      A
    93.184.216.34
    

    instead of the IP address actually being on the same line (which I could only see by moving the terminal-split further to the right). Maybe add a disclaimer so users aren't confused by this if they don't realize it's because of the window size.

  • I guess the target audience could be computer science students in which case they should know about DNS resource records and their types and classes etc, but you could maybe include a link if someone wants to read further about these things (that appear in dig output).

  • Another possible clarification:

    The last entry is the IP address to the host (server) that example.com points to.

    could be

    The last entry in the answer section is the IP address to the host (server) that example.com points to.

  • Very good that you (in the final sentence) emphasize to remember the address that we will get back to.

Step 2 of 4

  • Nice that you include resources for installing Docker.

  • It is simple to use and easy to get started, the only trick is to create a working configuration file but in this tutorial that has already been done for you.

    I'm not sure I understand what is meant here. Is the configuration file /etc/docker/daemon.json as mentioned here or is the configuration file what we create below, i.e. docker-compose.yaml? If the former, maybe briefly mention what the config file does and a source for interested readers, and if the latter then maybe clarify the quote above!
    (Also, below you write "Now that you have a docker-compose configuration [...]" so if the docker-compose.yaml isn't the configuration file then maybe clarify this sentence as well)

  • Also, related to above, if docker-compose.yaml is a configuration file as well, then it could be good to emphasize that Docker itself has a configuration file "for the entirety of Docker" (so to speak) and that docker-compose is something different that has its own configuration file.

  • Bonus: maybe add service names (as #comments) in the list of TCP/UDP ports (like DNS, HTTP and so on) in docker-compose.yaml

  • Could add a note on what docker-compose up --no-start does by referencing https://docs.docker.com/compose/reference/up/ (I especially was confused by --no-start-flag)

  • Bonus: It could be pedagogical to show (as an aside) a "before and after" of docker-compose up --no-start. I googled and saw you can write docker-compose ps (found here) to list containers. Running that before and after docker-compose up --no-start clearly shows the newly created container, which was a nice sanity-check.

Step 3 of 4

  • Good that you explain what --detach does!

  • How does docker-compose up --detach without specifying pihole know to start specifically pihole? Or does it start all created containers (i.e. all containers that would appear with docker-compose ps)?

  • (Here you could also benefit from docker-compose ps which would show that the user successfully managed to start the container)

Step 4 of 4

  • If all went well it should now, instead of displaying a proper IP address, say 0.0.0.0.

    Almost don't want to add this point because I feel silly for misunderstanding but I thought you were using "say" in the sense of "assuming we have, say, 5 apples", so if you want to change the sentence to avoid this it could be nice, but again it was probably just me being confused...

  • For some reason only the first address in the list seems to work (i.e. return 0.0.0.0) for me? Second, third and fourth still resolve to IP-addresses, and fifth one gives NXDOMAIN. I assume this is something to do with Pi-hole and not your tutorial but I still thought you should know.

"Finishing up" page

  • Awesome that you include info on "what to do now"! If you could also find one or two resources detailing these "future steps" further then you could add that, but you already give some pointers for it so it's not strictly necessary, I think.

Final thoughts

As you can see, some clarification-suggestions are a bit minor; I figured it was better to note down everything I thought about and you can decide which make sense to change! Anyways as I said in the start, overall really really nice and interesting tutorial. Good job and good luck with your other assignments. 🎉 🥇

@EleonoraBorzi
Copy link

Summary:

The tutorial is well planned, everything was clear and easy to follow. The steps were divided in a logical way, I did not feel rushed or confused. The tutorial provides all the guidance to complete it, even if something went wrong. The text was divided into paragraphs with titles, the commands and actions were written in bold which makes the tutorial more intuitive. These features show that you have put some thought into how to best guide the user. Some changes would make the tutorial better, such as more info about Docker and references where the user can find some information.

Intro

  • The description of Docker felt too short. The formulation of the second sentence is confusing, it does not give a clear picture of the functionality of Docker.
  • Suggestion: I would add where the user can read more about Docker and Pi-hole.

Step 1

  • Short and clear description at the top, but I would have prefered it to be at the start page in the introduction section.
  • The reference where the user can find the ads web address shows that you have thought about making the user experience as simple as possible.
  • The actual action to perform in the cmd is written in bold which makes it easier for the user to find and draws the eyes attention.
  • You also give advice if something went wrong, such as try another address if it went wrong. Again, it shows that you want to guide the user in every possible way and you have tried to foresee any problems that may occur.
  • Suggestion: Explain the output that you get from the dig command (example.com. 4541 IN A 93.184.216.34). By doing so, any question that the user may have regarding the output are answered.

Step 2

  • You made clear that Docker is available on the tutorial but not on the user local machine. You give the resource how to get docker, which shows that you want to give all the resources to the user.
  • Suggestion: When you introduce a new concept it would be nice to suggest where the user can read about it, perhaps add a “Read more about it here” and link to a source. For example, when you introduce Docker Compose, reference to this webpage: https://docs.docker.com/get-started/08_using_compose/
  • Again, the command and the actions are written in bold which make the tutorial more intuitive.
  • Suggestion: In the content provided, which should be then pasted in the yaml file, the TZ is set to Sweden/Stockholm. Add a side note that notifies the user to change the TZ to the actual one.
  • I like that you make sure that the user has done all the steps before going to the next step, warnings can lead to fewer errors in the execution.

Step 4

  • Good that you explained the flag --detach, it clarifies any doubts.
  • Suggestion: instead of “say 0.0.0.0” use the word "display" or "output".

Ending

Nice that you explained how the user should fully set it up with the port forwarding. However, I think that you should refer the user to other tutorials on how to do port forwarding. For example: https://www.lifewire.com/how-to-port-forward-4163829

Github repo:

  • I would add a short description of the assignment and the tutorial in the README since it is the first thing someone sees in the repo.
  • I would also add an explanation of why you created this tutorial, not only for university purposes but also why is it important and why you chose Docker. It would be a nice touch if you specify to whom is the tutorial for, who is the target audience.
  • Overall the tutorial is intuitive and easy to follow. Some changes would make it better and there is no interactive tutorial regarding this topic elsewhere. I think you did a good job!

@monperrus
Copy link
Member

@christian-stj congrats for finishing the first version of the tutorial very fast

@andreaskth @EleonoraBorzis thanks for the fast feedback. now, you want to make sure that you'll get feedback yourself, because the other part of the "feedback" category is to apply the feedback you receive.

@christian-stj
Copy link
Author

@monperrus I have acted upon the feedback and the task is now ready for assessment.

Deee92 pushed a commit that referenced this pull request Apr 1, 2021
* Doc Adds Readme

* Update README with feedback
LaraRos added a commit to LaraRos/devops-course that referenced this pull request Apr 26, 2021
* Update Readme with Feedback on KTH#1013 (KTH#1088)

* Doc Adds Readme

* Update README with feedback

* init feedback proposal (KTH#1082)

* docs: add proposal (KTH#1086)

Co-authored-by: andnil5 <andnil5@kth.se>

* Essay Proposal - Azure (KTH#1057)

* Executable tutorial: Learn to integrate Jest in your React-Redux projects (KTH#1036)

* Essay: ITOPS VS DEVOPS: What is the difference and how they can be used together? (KTH#1084)

Co-authored-by: Carl Leijonberg <carllei@kth.se>

* change of the team member (KTH#1104)

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Essay: Comparison of Azure, AWS, and GCP based on DevOps (KTH#1079)

* Essay proposal: The inner workings of Git (KTH#1092)

* Create README.md

* The inner mechanics of git

* the inner workings of git 2.0

* Update README.md

* Delete contributions/presentation-week2-hheyman directory

* Add presented presentation

* Update README.md

* Create README.md

* fixed folder name

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Feedback proposal: Essay KTH#1092 (KTH#1095)

* add readme and folder

* Rename readme.md to README.md

* Update README.md

* Rename contributions/course-automation/LeeBadal-johennin/README.md to contributions/course-automation/badal-johennin/README.md

* Add files via upload

* Create README.md

* Delete contributions/course-automation/badal-johennin directory

Co-authored-by: LeeBadal <43146567+LeeBadal@users.noreply.github.com>

* added readme' (KTH#1021)

* Executable tutorial: Travis CI React tests (KTH#966)

* Executable tutorial:Travis CI React

* Demo proposal by despinoy and gdba, Docker implementation to a React project

* revisions

* removed unnecessary file

* Demo: Using Cloud Functions in Firebase to create a serverless React app (KTH#967)

* Add README for demo proposal

Co-authored-by: christian-stj <christian@stjernberg.com>
Co-authored-by: LaraRos <rostami.lara@gmail.com>

* Update README.md

* Update README.md

Co-authored-by: christian-stj <christian@stjernberg.com>
Co-authored-by: LaraRos <rostami.lara@gmail.com>
Co-authored-by: Lara <sheiklara@hotmail.com>

* Demo proposal: CD of Node Express App on Google Cloud with designated realese branch using github actions (KTH#986)

* Kalle Pettersson (kalpet@kth.se)
GitHub: [KallePettersson](https://github.com/KallePettersson)

Anders Nillson (andnil5@kth.se)
GitHub: [andnil5](https://github.com/andnil5)

In this demo we will show how to configure a CD environment using GitHub and Heroku.

TBA

* docs: update README.md with proposed solution

Co-authored-by: Kalle Pettersson <kalpet@kth.se>
Co-authored-by: andnil5 <andnil5@kth.se>

* Executable tutorial proposal: Testing and Production environments (KTH#989)

* Create README.md

* Update README.md

* Executable tutorial: MLOps - Automation of Model Evaluation (KTH#1019)

* add executable tutorial ericvi-oscaralm

Co-authored-by: Oscar Almqvist <almqvist.oscar@gmail.com>

* fix: wrong location for README edits

Co-authored-by: Oscar Almqvist <almqvist.oscar@gmail.com>

* fix: added correct ericvi-oscaralm folder

Co-authored-by: Oscar Almqvist <almqvist.oscar@gmail.com>

Co-authored-by: Oscar Almqvist <almqvist.oscar@gmail.com>

* Demo: CI and CD pipeline using azure devops. (KTH#1111)

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Course automation: Improve communication with Discord integration (KTH#1097)

* Demo: Merging tool for Salesforce Deployments (KTH#1098)

* Video demo submission (KTH#1112)

* Create README.md

* Update README.md

* Essay proposal: Security challenges that arise in DevOps (Title WIP) (KTH#1027)

* Essay proposal: Security challenges that arise in DevOps (Title WIP)

* Essay Proposal update

* Executable tutorial: Secure an API endpoint using Keycloak running in Docker (KTH#1094)

Co-authored-by: Dina Lerjevik <lerjevik@kth.se>

* Feeback on essay (KTH#1023) (KTH#1110)

* Feeback on essay (KTH#1023)

* Changed folder name FeedbackContribution to urama

Co-authored-by: IfyUrama <ifeomaurama0@gmail.com>

* fix folder name (KTH#1118)

* course automation proposal

* Update README.md

* executable tutorial proposal

* Deletete course automation README

* add a team member

* add feedback proposal

* update team member

* Delete contributions/executable-tutorial/zidi directory

* fix folder name

* sihan->sihanc in executable-tutorial

* sihan->sihanc in course automation

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Executable tutorial: CI workflow using GitHub actions for Node.js Express app, including automated testing and linting using Jest and Eslint (KTH#1116)

* docs: add tutorial proposal

* docs: update README

Co-authored-by: andnil5 <andnil5@kth.se>

* Changing our presentation date from week 4 to week 5  (KTH#1129)

* Presentation Kanban vs Scrum

* changed presentation week from 4 to 5

Co-authored-by: Eva Despinoy <despinoy@kth.se>

* Delete contributions/presentation/week4/despinoy-gdba directory

* Demo proposal 🎥  : Testing and running Github actions locally with Act (KTH#1120)

* Create README.md

* Update README.md

* Course Automation: Suggesting legal teammates for projects (KTH#1073)

* Added myself as a participant on an existing project (KTH#1125)

* Added the presentation pdf

* Added Me (Fredrik) as a participant

* Renamed the folder to contain both kth-IDs

* README.md

* Update README.md

* Delete PresentationPrometheus.pdf

* Delete contributions/essay/fbjorkma-adahen directory

* Tutorial: Added team member and changed to locally run tutorial (KTH#1090)

* presentation suggestion

* added folder structure for week 2

* deleted old persentation proposal

* Added tutorial proposal

* Added Fredrik to project

* Changed proposal from using katacoda to a local tutorial

* Fixed broken link

Co-authored-by: Khashayar Etemadi <54890183+khaes-kth@users.noreply.github.com>

* Essay: A/B testing (KTH#979)

* added readme

* added links

* added readme

* added readme

* Deleted the duplicated presentation proposal.

Co-authored-by: Sophie H Ye <he_ye_90s@hotmail.com>

* Essay : Role of DevOps in minimizing downtime on applications using Continuous deployment (KTH#1080)

* Influence of DevOps in Software testing

* Presentation : Continuous Testing in DevOps

* Essay : DevOps in minimizing application downtime

DevOps reduces downtime on applications using continuous deployment

* Rename contributions/presentation/week3/renanb-ved.megha/README.md to contributions/presentation/week3/Renu-Megha/README.md

* Presentation : Influence of DevOps in Software testing

* Presentation: Continuous Testing in DevOps

* Essay: Role of DevOps in minimizing downtime on applications using continuous deployment

* Delete README.md

Co-authored-by: Sophie H Ye <he_ye_90s@hotmail.com>

* Final Submission: Dashboard for tasks (KTH#1034)

* Add initial dashboard mock

* Introduce PR comment action

* Renaming and fixes

* Generated dashboard

* Remove setup node

* Activate only on PR to contributions dir

* Add type definition for JS

* Add markdown library

* Add keyword fetcher

* Generated dashboard

* Generated dashboard

* Remove node_modules from git

* Add ncc and build commands

* Generated dashboard

* data collection for devops repo

* added export of data collection function

* Generated dashboard

* Integrated data collection with markdown generator

* Generated dashboard

* Connected dashboard to github action

* Generated dashboard

* Generated dashboard

* Build new action

* Generated dashboard

* Code refactoring

* Fixed edge cases for parsing authors

* Generated dashboard

* Fixed bug where tasks were undefined

* Generated dashboard

* Added md content to data collection

* Remove backtick from title and content

* Generated dashboard

* Only push and comment if new dashboard data

* Added number of submissions summary table

* Add more keywords

* Clean up and add handling of keywords

* Fix build

* Generated dashboard

* Fix alignment

* Generated dashboard

* Add README's for actions

* Added explanation of final solution

* Removed gh action and generated dashboard files

* Fixed typo

Co-authored-by: Ackuq@ <axel@pettersson.cc>
Co-authored-by: Dashboard bot <dashboard-bot-dd2482@users.noreply.github.com>

* Feedback Proposal: Serverless Applications on Heroku (KTH#1100)

* presentation suggestion

* added folder structure for week 2

* deleted old persentation proposal

* Added tutorial proposal

* Added feedback proposal

* Removed tutorial proposal

* Update feedback README

* Executable-Tutorial: API testing using RestSharp and Specflow in C# application (KTH#1122)

* Feedback proposal: Learn to integrate Jest in your React-Redux projects (KTH#1036) (KTH#1113)

* docs: add proposal

* docs: add feedback proposal

* docs: add feedback proposal

Co-authored-by: andnil5 <andnil5@kth.se>

* Feedback proposal for KTH#982 (KTH#1115)

* Feedback Proposal: Tutorial for feedback: CI workflow for C++ project using Travis CI and CxxTest for automated building and testing [KTH#1138] (KTH#1150)

Co-authored-by: Megha Ved <meghaved@Meghas-MBP.lan>

* doc: add preliminary presentation planning of week 3

* Adds feedback proposal for KTH#1080 (KTH#1151)

* Executable tutorial proposal: Deploying scheduled functions on Kubernetes using Kubeless (KTH#1134)

* Executable Tutorial: GitLab implementation of CI/CD (KTH#1033)

* Demo: ML CI/CD with Google Cloud and Kubeflow (KTH#1074)

* Tutorial proposal: Ansible for Jenkins and K8 (KTH#1102)

* Video demo: Message brokering using RabbitMQ (KTH#1077)

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Course automation proposal: check criterion for groups with 3 students (KTH#1137)

Co-authored-by: elin <eryman@kth.se>

* Feedback: Proposal feedback on KTH#999 "Essay: Automated tests for infrastructure code (KTH#999)" (KTH#1139)

* Added the presentation pdf

* Added Me (Fredrik) as a participant

* Renamed the folder to contain both kth-IDs

* README.md

* Update README.md

* Delete contributions/essay/fbjorkma-adahen directory

* Delete PresentationPrometheus.pdf

* Update and rename contributions/executable-tutorial/chrigu-fbjorkma/README.md to contributions/executable-tutorial/chrigu/README.md

* Create README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Executable tutorial proposal: CI workflow for C++ project using Travis CI and CxxTest for automated building and testing (KTH#1138)

* Draft README for course-automation task

* Updated the proposal

* proposal: Added proposal for an executbable tutorial

Co-authored-by: Kalle Pettersson <kalpet@kth.se>

* Feedback proposal (essay): Azure KTH#1057 (KTH#1154)

* Executable Tutorial: Deploying an API with a Custom Lambda Authorizer using Serverless (KTH#1161)

* Add feedback README (KTH#1162)

* Tutorial Proposal: Implementing AWS Lambda and invoking it with AWS SES (KTH#1160)

* Demo proposal: Automatically publishing tested Node.js packages on npm with Github Actions (KTH#1152)

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Tutorial: Continuous benchmarking using Github Actions (KTH#1158)

* material for week 4

* Feedback proposal: executable tutorial KTH#1116 (KTH#1135)

* Essay proposal by agnesfo and gdba, comparison of DevOps and SRE

* Update README.md

* Feedback executable tutorial KTH#1116

* fix error

* Feedback executable tutorial KTH#1116

* remove essay folder

Co-authored-by: Agnes <agnesfo@kth.se>
Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Feedback proposal: Essay - ITOPS VS DEVOPS: What is the difference and how they can be used together? (KTH#1159)

* add readme

* Update README.md

* Feedback proposal: for essay [KTH#1027] (KTH#1153)

Co-authored-by: Gustaf Lidfeldt <glidfeldt@kth.se>

* Feedback proposal for essay pr KTH#1069 (KTH#1101)

* Feedback proposal on Essay KTH#1079 (KTH#1087)

* admin: pushing empty feedback branch

* doc: Added feedback proposal

Co-authored-by: Kalle Pettersson <kalpet@kth.se>

* Feedback proposal: Implementing AWS Lambda and invoking it with AWS SES KTH#1160 (KTH#1164)

* Executable-tutorial proposal: Create multi Jenkins containers in Windows-Sub-Linux based on systemd-nspawn. (KTH#1169)

* Executable tutorial proposal: setup systemd-nspawn container on linux

* Update Executable-tutorial topic and Proposal

* Open-source contribution: Bug fixing for the open-source project act (KTH#1172)

* feat: Added description of project

* feat: Included link to repository

* feat: Fixed bullet point list

* feat: Added code

* feat: Added issue template

* enhancement: Better instructions

* enahancement: Nestled list

* enhancement: Small fixes

* feat: New description

* enhancement: Improved grading criteria section

* feat: Completed code

* fix: Fixed repository path

* enhancement: Clarified description

* fix: Fixed course repository path

* feat:(Added README.md for open-source contribution)

* feat:(Removed work related to course automation for this bransch)

Co-authored-by: Dina Lerjevik <lerjevik@kth.se>
Co-authored-by: dmariel <34478937+dmariel@users.noreply.github.com>

* Presentation proposal: BizDevOps (KTH#1170)

* Update README.md

* Essay proposal: property based testing (KTH#1177)

* course automation proposal

* Update README.md

* executable tutorial proposal

* Deletete course automation README

* add a team member

* add feedback proposal

* update team member

* Delete contributions/executable-tutorial/zidi directory

* fix folder name

* sihan->sihanc in executable-tutorial

* sihan->sihanc in course automation

* essay proposal

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Submission: demo (KTH#1175)

* add: readme with description of demo

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Submission: Presentation/week3 - Continuous versus Automated testing (KTH#1183)

* WIP presentation proposal

* Update README.md

* Update presentation proposal

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Gabriel Chang <gc.chang95@gmail.com>
Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Fix broken link to slides

* Fixed my folder usernames for proper statistics (All tasks already registred) (KTH#1185)

* Added readme for week3

* Update README.md

* WIP Presentation week 3, Topic TDA

* WIP Presentation week 3, Topic TBA

* (WIP) MLOPS

Presentation idea for week 3, idea and outline still work in progress but will update shortly

* MLOPS : Current application and future possibilities

Updated Readme with initial ideas for presentation

* MLOps: Current application and future possibilities

Added README for presentation idea

* Added readme

* deleted testfile

* Demo:  ML CI/CD with Github Actions and Kubernetes

Added README to demo

* Update readme

* added alternative idea

* Feedback on essay KTH#988

* Delete jhammarstedt-Carllei

* added readme

* Feedback on KTH#988

* Update README.md

* Feedback  KTH#988

* Feedback on KTH#988

* fix

* Fix PR error

* new try for PR

* Delete file for separate PR

* update foldername and modified idea to google cloud

* fixed names

* lowercase names

* Feedback Proposal (Essay): property based testing KTH#1177 (KTH#1184)

* Presentation GitOps

* GitOps

* Presentation GitOps

* Add feedback proposal (KTH#1177)

* Add feedback proposal (KTH#1177)

* add link to the PR

* Presentation proposal: Infastructure Automation using Ansible. (KTH#1181)

* Create Readme.md

Demo: Github integration with Jenkins

* Presentation proposal: Infastructure Automation using Ansible.

* added slides (KTH#1191)

* Introduction to BizDevOps (add slides & references)  (KTH#1193)

* doc: add proposal for executable tutorial

* presentation: add a presentation proposal about BizDevOps

* presentation: add presentation proposal (now it should not be conflict)

* presentation: add final slides and references

* Create README.md (KTH#1194)

* Feedback proposal: for KTH#1163 (KTH#1174)

* Feedback proposal (Tutorial) for KTH#1158 (KTH#1188)

* Video demo:  How to leverage Docker and Kubernetes for creating a Microservice Web App (KTH#1007)

* (docs) Added a Readme.md Regarding the Presentation I want to make

* (docs) Added Readme.md for essay

* (doc) Created Readme for my Video Demo

* (doc) Removed some files and put README in write folder

* (doc) Changed Readme to minimize the work needed to complete the Task

Co-authored-by: taqui <taqui@kth.se>

* Presentation proposal : Devops with Tuleap (KTH#1119)

* Presentation proposal

* Corrected presentation proposal

* Clarify proposal

* Presentation changed

* Presentation proposal (KTH#1199)

Added description about proposal for a presentation on flaky tests

* Essay proposal - The Rust language build pipelines (KTH#1141)

Co-authored-by: Yannik Sander <accounts@ysndr.de>
Co-authored-by: Fredrik Björkman <pfl.bjorkman@gmail.com>
Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* Executable tutorial proposal: Using GitLab CI/CD to setup a Unity project with automated testing (KTH#1163)

* # Executable-tutorial: Setting up a Linode server running Integrity for Continuous Integration testing with automated (KTH#1173)

Co-authored-by: Dina Lerjevik <lerjevik@kth.se>
Co-authored-by: dmariel <34478937+dmariel@users.noreply.github.com>

* Presentation Proposal: CodeQL for automated code analysis (KTH#1171)

* added readme with presentation proposal. (KTH#1206)

* Tutorial update - added team member (KTH#1195)

* init feedback proposal

* added new member

* Feedback proposal (Essay) for KTH#1141 - The rust language build pipelines (KTH#1197)

* suggestion

* feedback proposal

* renamed folder to KTH-ID

* Proposal Feedback: Comparison of Splunk and Nagios Devop monitoring tools and their use cases KTH#1021 (KTH#1178)

* feat: Added description of project

* feat: Included link to repository

* feat: Fixed bullet point list

* feat: Added code

* feat: Added issue template

* enhancement: Better instructions

* enahancement: Nestled list

* enhancement: Small fixes

* feat: New description

* enhancement: Improved grading criteria section

* feat: Completed code

* fix: Fixed repository path

* enhancement: Clarified description

* fix: Fixed course repository path

* added feedback proposal removed other courses file

* removed other topic files

* Added email addresses

Co-authored-by: Dina Lerjevik <lerjevik@kth.se>
Co-authored-by: dmariel <34478937+dmariel@users.noreply.github.com>

* Essay proposal: Polyglot programming with GraalVM (KTH#1201)

* Feedback proposal: on KTH#1009  (KTH#1202)

* Open source contribution proposal: Contributor Scoreboard (KTH#1149)

* Update README.md

* Create README.md

* Update README.md

* asda

* dsf

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update proposal

* Clarify word count example action

Co-authored-by: Markus Wesslén <markus.wesslen@gmail.com>

* Essay proposal - How to use Jira for agile project managment (KTH#1167)

* Tutorial: Introduction of Pijul (KTH#1189)

* Tutorial: Introduction of Pijul

* Add participant info

* Add Daniel as author

* Remove Felix (sorry felix.. :')

* Move description to correct directory

* Add notice about tutorial platform

* Feedback proposal on KTH#1169 (KTH#1198)

* feedback proposal

* feedback proposal on another task

* Essay Proposal: Low-code Ops and the art of abstraction (KTH#1205)

* Presentation proposal: Whitebox fuzzing (KTH#1207)

* Add presentation proposal, whitebox fuzzing

* Update README.md

* Essay proposal: Introduction to ChatOps (KTH#1218)

* Course automation proposal: check criterion for groups with 3 students

* README added

* Course-automation file deleted

* Updated README with new proposal

Co-authored-by: elin <eryman@kth.se>

* Feedback proposal: on KTH#1214 (KTH#1221)

Co-authored-by: Alexander <>

* Proposal Executable tutorial: 👩‍🏫 Migrating a monolithic application to microservices  (KTH#1223)

* Course automation: Improve communication with Discord integration

* Course automation submission: Improve communication with Discord integration

* Course automation submission: 🎥  Improve communication with Discord integration

* Update README.md

* Create README.md

* Update README.md

* Delete contributions/executable-tutorial/annnik directory

* Create README.md

* Update README.md

* Update README.md

* Update README.md

* Essay submission (KTH#1220)

* Demo submission: Setting up Done CI with Bitbucket (KTH#1231)

* Doc ReadMe embryo

* Doc ReadMe toddler

* Add information for first video draft

* Update project description and YouTube link

Co-authored-by: sebene <>
Co-authored-by: majate <maja.tennander@yahoo.se>

* Essay submission: Types of deployments (KTH#1229)

* Create README.md

* Essay proposal: Types of deployments

* Create Forms_of_deployment.pdf

* Update README.md

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Demo submission: CD of Node Express App on Google Cloud with designated release branch using Github actions (KTH#1200)

* Draft README for course-automation task

* Updated the proposal

* Kalle Pettersson (kalpet@kth.se)
GitHub: [KallePettersson](https://github.com/KallePettersson)

Anders Nillson (andnil5@kth.se)
GitHub: [andnil5](https://github.com/andnil5)

In this demo we will show how to configure a CD environment using GitHub and Heroku.

TBA

* docs: update README.md with proposed solution

* docs: update readme with demo outline

* docs: add links, motivation, take home message and grading matrix

* docs: spell check

* docs: correct errors

Co-authored-by: Kalle Pettersson <kalpet@kth.se>
Co-authored-by: andnil5 <andnil5@kth.se>

* Add tutorial link (KTH#1213)

* Feedback: Automation of web frontend testing using Selenium (KTH#1219)

* Add feedback

* Update grammar and spelling

* Feedback on Essay: What are the benefits of using Infrastructure as Code? (KTH#1222)

* Create ReadMe.md

* Update ReadMe.md

* [Submission] Tutorial: Serverless Applications on Heroku (KTH#1215)

* [Submission] Tutorial: Serverless Applications on Heroku

* Proposal -> Description

* Update description

* Feedback submission: KTH#1215 Tutorial, Serverless Applications on Heroku (KTH#1217)

* presentation suggestion

* added folder structure for week 2

* deleted old persentation proposal

* Added tutorial proposal

* Added feedback proposal

* Removed tutorial proposal

* Added finished feedback

* Removed tutorial proposal

* Added finished feedback

* Submission: Demo 🎥 (KTH#1182)

* Create README.md

* Update README.md

* Update README.md

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* # Feedback proposal on KTH#1223 (KTH#1227)

* Create README.md

Added the README.md file for the essay.

* Update README.md

* Create README.md

Add feedback proposal for executable tutorial.

Co-authored-by: Carl Leijonberg <carllei@kth.se>

* Executable tutorial proposal: Set up Renovate with a NodeJS based Web Application (KTH#1228)

* Executable tutorial proposal: CI for Python with unittest using Github Actions (KTH#1230)

* Create readme

* Executable tutorial proposal

* Remove other project

* Open-source proposal: Meta-data Report of Github Repo  (KTH#1237)

* Create README.md

* Suggestion for an updated project proposal

Co-authored-by: EleonoraBorzis <47255376+EleonoraBorzis@users.noreply.github.com>

* Video demo (KTH#1246)

* Create README.md

* Update README.md

* Updated URL with shorter video

* Updated demo length to be exactly 3 minutes (KTH#1250)

* add: readme with description of demo

* Update Readme.md

* Update Readme.md

* Update Readme.md

* Update with new video length

The video's length has been changed from 3:09 minutes to 3:0 minutes

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Demo submission: Publishing a Java package to Maven Central using Github Actions (KTH#1253)

* Course automation: Submission (KTH#1093)

* Create README.md

* Course automation: Verify pull request content changes

* improved description

* Create python-app.yml

* Create verify_markup_and_change_location.py

* Create python-app.yml

* works on push and pull request

* fix yml

* Update python-app.yml

* Update python-app.yml

* Update python-app.yml

* Update python-app.yml

* Update python-app.yml

* Update python-app.yml

* potential fix

* Update python-app.yml

* Update README.md

* improved python file

* Update verify_markup_and_change_location.py

* Update verify_markup_and_change_location.py

* Update README.md

* fix python file

* fix readme

* improved documentation for py file

* improved documentation

* Update python-app.yml

* Update python-app.yml

* Create EXAMPLE_README.md

* Update python-app.yml

* Update python-app.yml

* Update python-app.yml

* Update verify_markdown_and_change_location.py

* improve error messages

* Update EXAMPLE_README.md

* Update verify_markdown_and_change_location.py

* Update verify_markdown_and_change_location.py

* for testing

* Update README.md

* Update README.md

* final changes

* Made for cooperation

Errors made more informative and  changes done to accommodate pull-requests (Final Submission: Dashboard for tasks KTH#1034) assumptions for formatting.

* Update README.md

* changes to architecture

* test

* Update verify_location.py

* Update verify_location.py

* Update verify_location.py

* Update verify_location.py

* Update python-app.yml

* Update python-app.yml

* Final solution with better description

* Update README.md

* Update README.md

* refactored solution

* Presentation Proposal: Cloud and the journey for a start-up to Fortune 500 (Follow up)  (KTH#1243)

* Update read me file for presentation

* Update readme for presentation

* Update README.md

* Changed length of demo to exactly 2.59 (KTH#1260)

* Create README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Change folder name (KTH#1241)

* Create README.md

* Update README.md

* Update README.md

* Change folder name 

changed to my kth-alias instead of GitHub-alias.

* Executable tutorial proposal: AWS with Clojure (KTH#1245)

* Demo proposal: Monitoring availability using Cloudprobe and Prometheus (KTH#1248)

* Presentation proposal: Gradle vs. Maven (KTH#1252)

* Add proposal to README

* fix typo (demo -> tutorial) and added links

* Remove other project

* Add presentation proposal

Co-authored-by: Maja Tennander <>

* Demo: Automatically generate Python unittest results in HTML reports with Jenkins (KTH#1254)

* Proposal demo:  Continuous deployment on Google Play Store  (KTH#1255)

* Demo: Continuous deployment on Google Play Store

* Fix typos

* Executable tutorial: How to setup CI/CD pipeline for react-app (KTH#1263)

* [Submission]Executable tutorial: 👩‍🏫  Migrating a monolithic application to micro services (KTH#1258)

* Course automation: Improve communication with Discord integration

* Course automation submission: Improve communication with Discord integration

* Course automation submission: 🎥  Improve communication with Discord integration

* Update README.md

* Create README.md

* Update README.md

* Delete contributions/executable-tutorial/annnik directory

* Create README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>

* Request to update already merged PR (KTH#1036)  (KTH#1242)

* Feedback request

* Course automation proposal

* Update README.md

* Executable tutorial proposal

* Update README.md

* Delete contributions/course-automation/agnespet-ebauer directory

* Proposal

* Updated proposal

* Update README.md

* Delete contributions/executable-tutorial/agnespet-ebauer directory

* Delete contributions/feedback/agnespet directory

* Addressed the requested changes

* Update README.md

Co-authored-by: Khashayar Etemadi <khaes@kth.se>

* Executable Tutorial: Building a CI/CD Pipeline for a small frontend in a Kubernetes Cluster using Terraform (KTH#1196)

* (docs) Added a Readme.md Regarding the Presentation I want to make

* (docs) Added Readme.md for essay

* (doc) Created Readme for my Video Demo

* (doc) Removed some files and put README in write folder

* (doc) created inital readme for the executable tutorial

* Changed Proposal by adding Terraform to make it more original

* (docs) added a member to the proposal and explained where it will be hosted

* (refactor) Changed the Folder Structure

Co-authored-by: taqui <taqui@kth.se>
Co-authored-by: taqui <taqui@pop-os.localdomain>

* Feedback proposal: KTH#979 (KTH#1121)

* Executable Tutorial: nginx on vagrant box

* Update README.md

* add specification about katacoda

* remove before rebase

* add proposal for video demo

* Update README.md

* add proposal for feedback

* Delete feedback proposal

* add feedback proposal

* make sure only the feedback is in on feedback branch

Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>

* chore: Add the "Registered_KTH_IDs.txt" file (KTH#1155)

* Uploading the slides for presentation SonarQube (KTH#1265)

* slides

* Update README.md

* Presentation slides for GitOps presentation (KTH#1266)

* Presentation GitOps

* GitOps

* Presentation GitOps

* Add feedback proposal (KTH#1177)

* Add feedback proposal (KTH#1177)

* add link to the PR

* Add presentation slides

* doc: clarify constraint for essay (KTH#1275)

* Presentation proposal: Mobile backend as a Service in DevOps (KTH#1235)

* add readme

* Update README.md

* Add proposal

* Delete README.md

* Update README.md

* Update README.md

add member

* rename folder

* Feedback: proposal for essay KTH#1167 (KTH#1091)

* Feedback proposal for KTH#1080

* Update feedback proposal

* Demo submission: Docker monitoring using Datadog (KTH#1272)

* Add video demo proposal

Co-authored-by: Eric Vickström <eric.vickstrom98@gmail.com>

* Updated README for Datadog

* Demo submission README update

Co-authored-by: Eric Vickström <eric.vickstrom98@gmail.com>

* Feedback proposal: for KTH#1205 (KTH#1264)

* Essay Proposal - Azure

* Essay proposal

* Added new member

* Removed team member

* Small fix: renamed folder

* Feedback proposal

* Renamed folder

* Changed feedback proposal

* Feedback proposal: on KTH#1196 (KTH#1225)

Co-authored-by: Alexander <>
Co-authored-by: Khashayar Etemadi <khaes@kth.se>

* Executable-tutorial: Proposal modification (KTH#1268)

* init feedback proposal

* changed proposal

* Feedback proposal: KTH#1263 "Executable tutorial: How to setup CI/CD pipeline for react-app" (KTH#1267)

* create README.md

* Update README.md

* Update README.md

Co-authored-by: Khashayar Etemadi <khaes@kth.se>

* Feedback proposal on KTH#1134: Deploying scheduled functions on Kubernetes using Kubeless (KTH#1273)

* Executable tutorial proposal: Integrating Code Climate in developers workflow with shell scripts and docker (KTH#1278)

* add readme and folder

* Rename readme.md to README.md

* Update README.md

* Rename contributions/course-automation/LeeBadal-johennin/README.md to contributions/course-automation/badal-johennin/README.md

* Add files via upload

* Revert "Rename contributions/course-automation/LeeBadal-johennin/README.md to contributions/course-automation/badal-johennin/README.md"

This reverts commit f88c5a5.

* Delete contributions/course-automation/LeeBadal-johennin directory

* Delete contributions/course-automation/badal-johennin directory

* Create README

Proposal

Co-authored-by: johennin <52281498+johennin@users.noreply.github.com>
Co-authored-by: Johan <johennin@kth.se>

* Withdraw proposal KTH#1201 (KTH#1280)

* essay proposal

* Update members

* Delete previous folder

* Removing proposal

* Amend students involved in tutorial (KTH#1262)

* Update README.md

* Presentation Proposal: Managing secrets in dynamic environments with HashiCorp Vault (KTH#1282)

* doc: Course automation proposal

* doc: Presentation proposal for week 5

* doc: Updated presentation proposal for week 5

* Final Submission - Course Automation: Checking Open-Source Requirements (KTH#1068)

* Add a github action to check open-source requirements

* Add link for updated grading criteria

* Revert "Final Submission - Course Automation: Checking Open-Source Requirements (KTH#1068)" (KTH#1298)

This reverts commit 9169a2f.

* Feedback Proposal on Executable Tutorial KTH#1278 (KTH#1292)

* Propose feedback

* Typo fix

* Final Submission - Course Automation: Checking Open-Source Requirements (KTH#1299)

* Add a github action to check open-source requirements

* Add link for updated grading criteria

* Remove workflow

* Change folder name (KTH#1289)

* Create Readme.md

Demo: Github integration with Jenkins

* Create yuxinm-urama

* Create Readme.md

* Delete Readme.md

* Awesome guest lecturer for week 6

* Delete contributions/presentation/week3/renanb-ved.megha directory (KTH#1300)

* Presentation : DevOps adoption in large Enterprise through Continuous Testing (KTH#1285)

* Influence of DevOps in Software testing

* Presentation : Continuous Testing in DevOps

* Essay : DevOps in minimizing application downtime

DevOps reduces downtime on applications using continuous deployment

* Rename contributions/presentation/week3/renanb-ved.megha/README.md to contributions/presentation/week3/Renu-Megha/README.md

* Presentation : Influence of DevOps in Software testing

* Presentation: Continuous Testing in DevOps

* Essay: Role of DevOps in minimizing downtime on applications using continuous deployment

* Delete README.md

* Presentation : DevOps adoption in large Enterprise through Continuous Testing

Added link to the presentation and updated the folder name with my partner's kth username.

* Feedback Proposal

* Feedback Proposal for Essay KTH#1165

* Delete contributions/feedback/renanb directory

* Delete contributions/essay/renanb-yuxinm directory

Co-authored-by: Sophie H Ye <he_ye_90s@hotmail.com>

* Course Automation Proposal: Labelizing "feedbackable" merged PR contributions (KTH#1306)

* Added important information to README (KTH#1309)

Co-authored-by: Alexander <>

* Tutorial proposal update change (oldPR: KTH#1163) (KTH#1313)

* Add Executable tutorial proposal

* Update Proposal 

Updated proposal to be run locally instead of Katacoda as Katacoda was unfortunately not suited for this tutorial.

* [Submission] Executable tutorial: CI workflow using GitHub Actions for Node.js, Express app, Jest and ESLint (KTH#1269)

* docs: add tutorial proposal

* docs: update README

* docs: update readme

* docs: add links to feedback, and feedback follow up

Co-authored-by: andnil5 <andnil5@kth.se>

* added presentation slides. (KTH#1302)

* Updated Demo: Setting up Drone CI with Bitbucket (KTH#1322)

* Doc ReadMe embryo

* Doc ReadMe toddler

* Add information for first video draft

* Update project description and YouTube link

* Update YouTube link

Co-authored-by: sebene <>
Co-authored-by: Xbast <34154689+Sebberh@users.noreply.github.com>

* Course automation grading clarification (KTH#1209)

* course automation clarification

* Update grading-criteria.md

* Update grading-criteria.md

* information regarding required links added

* added information about github marketplace

* Submission of Course Automation (KTH#1146)

* Update README.md

* Essay Proposal

* Delete README.md

* Update README.md

* Tutorial proposal: Automated monitoring/analytics with ELK Stack (KTH#1251)

* Add tutorial proposal folder and empty README

* Update README.md

Update README with tutorial proposal.

* Update README.md

* Exacutable tutorial propsal: setting up splunk in docker container (KTH#1314)

* Create README.md

* New Proposal

* New proposal

fix spelling errors

* updated proposal

added some clarification that the tutorial is more about splunk than docker

Co-authored-by: hallon-heyman <hallon.heyman@gmail.com>

* Feedback proposal on tutorial  KTH#1102 (KTH#1317)

* Update README.md

* Create README.md

* Update README.md

* dfgd

* sdfs

* asda

* sdfs

* feat: GHA to check essay word count (KTH#1297)

* Github Action for essay word count check added

* Feedback on KTH#1271: Deploying scheduled functions on Kubernetes using Kubeles (KTH#1287)

* Add feedback proposal

* Add feedback

Co-authored-by: Eric Vickström <eric.vickstrom98@gmail.com>

* Rename file

* Add pull request submission link

Co-authored-by: Eric Vickström <eric.vickstrom98@gmail.com>

* Submission of executable tutorial Kubeless (KTH#1271)

* Feedback submission for essay: The inner workings of Git [KTH#1303] (KTH#1311)

* add readme and folder

* Rename readme.md to README.md

* Update README.md

* Rename contributions/course-automation/LeeBadal-johennin/README.md to contributions/course-automation/badal-johennin/README.md

* Add files via upload

* Create README.md

* Delete contributions/course-automation/badal-johennin directory

* Add the feedback and PRs to the README

Co-authored-by: LeeBadal <43146567+LeeBadal@users.noreply.github.com>

* [Submission] Executable tutorial  (KTH#1326)

* Feedback request

* Course automation proposal

* Update README.md

* Executable tutorial proposal

* Update README.md

* Delete contributions/course-automation/agnespet-ebauer directory

* Proposal

* Updated proposal

* Update README.md

* Delete contributions/executable-tutorial/agnespet-ebauer directory

* Delete contributions/feedback/agnespet directory

* Addressed the requested changes

* Update README.md

* Final submission

* Final submission

Co-authored-by: Khashayar Etemadi <khaes@kth.se>

* feat: Removes word count filename and branch-name constraints (KTH#1328)

* branch-name constraint removed

* whitespace check removed

* whitespace check for pdf file added

* pdf format check fixed

* remove whitespace check

* unneccessary whitespace removed

* unnecessary commented lines removed

* feat: Word count check added for modified files (KTH#1329)

* branch-name constraint removed

* essay added

* pdf filename changed

* GHA bash updated

* file name contains whitespace

* nothing file moved

* file name with whitespace

* file name fixed

* whitespace added

* whitespace in essay file name removed

* whitespace added back

* file name changed

* file name fixed again

* same feature added for modified files

* file updated

* bug fix

* remove test files

* remove unnecessary constraints in readme

* Essay submission: Types of deployments (KTH#1239)

* Update Forms_of_deployment.pdf

* Update Forms_of_deployment.pdf

Changes made to accommodate the requests from feedback

* Reduced text to fit the word limit

* Change the word-count interval to 1900-2100

* Feedback proposal: on KTH#1230 (KTH#1256)

* Feedback proposal of KTH#1230

* Update README.md

* Feedback proposal of KTH#1230

* Moving from Integrity to Abstruse  (KTH#1334)

* feat: Added description of project

* feat: Included link to repository

* feat: Fixed bullet point list

* feat: Added code

* feat: Added issue template

* enhancement: Better instructions

* enahancement: Nestled list

* enhancement: Small fixes

* feat: New description

* enhancement: Improved grading criteria section

* feat: Completed code

* fix: Fixed repository path

* enhancement: Clarified description

* fix: Fixed course repository path

* feat:(Added exec-tutorial proposal and removed course-automation from previous main branch)

* Changed Opensource CI tool to Abstruse

* feat: Added description of project

* feat: Included link to repository

* feat: Fixed bullet point list

* feat: Added code

* feat: Added issue template

* enhancement: Better instructions

* enahancement: Nestled list

* enhancement: Small fixes

* feat: New description

* enhancement: Improved grading criteria section

* feat: Completed code

* fix: Fixed repository path

* enhancement: Clarified description

* fix: Fixed course repository path

* feat:(Added exec-tutorial proposal and removed course-automation from previous main branch)

* Changed Opensource CI tool to Abstruse

Co-authored-by: Dina Lerjevik <lerjevik@kth.se>
Co-authored-by: dmariel <34478937+dmariel@users.noreply.github.com>

* Executable tutorial proposal: Docker container running an FTP server (KTH#1343)

Co-authored-by: Kalle <Wizkas0@users.noreply.github.com>

Co-authored-by: Kalle <Wizkas0@users.noreply.github.com>

* Remove Periods in Word Count (KTH#1364)

* Enhance command for counting word with removal of periods before counting
* LaTeX files often use period signs to seperate names of sections/subsections from their page number in the content table. To avoid these periods being counted as words, periods should be removed before counting the word number.

* added submission (KTH#1106)

* Executable tutorial proposal: Continuous integration in a python project with Pytest and Travis-CI. (KTH#1337)

* Course automation proposal: check criterion for groups with 3 students

* README added

* Course automation files deleted

* Edit folder name

Co-authored-by: elin <eryman@kth.se>

Co-authored-by: EleonoraBorzis <47255376+EleonoraBorzis@users.noreply.github.com>
Co-authored-by: Matej Sestak <70316007+sestys@users.noreply.github.com>
Co-authored-by: andnil5 <an.nilsson92@gmail.com>
Co-authored-by: andnil5 <andnil5@kth.se>
Co-authored-by: johanmallobakken <42738638+johanmallobakken@users.noreply.github.com>
Co-authored-by: anorangesky <35503355+anorangesky@users.noreply.github.com>
Co-authored-by: IC-kth <78137736+IC-kth@users.noreply.github.com>
Co-authored-by: Carl Leijonberg <carllei@kth.se>
Co-authored-by: Chen, Zidi <51125655+Chen-Zidi@users.noreply.github.com>
Co-authored-by: César Soto Valero <cesarsotovalero@gmail.com>
Co-authored-by: Rezaul <rezaulhasan0168@gmail.com>
Co-authored-by: Hallon <62335201+hallon-heyman@users.noreply.github.com>
Co-authored-by: Deepika Tiwari <deepikatiwari92@gmail.com>
Co-authored-by: johennin <52281498+johennin@users.noreply.github.com>
Co-authored-by: LeeBadal <43146567+LeeBadal@users.noreply.github.com>
Co-authored-by: Carina Wickström <49478094+carinawic@users.noreply.github.com>
Co-authored-by: George Bassilious <35694658+George-Bassilious@users.noreply.github.com>
Co-authored-by: Markus Wesslén <markus.wesslen@gmail.com>
Co-authored-by: christian-stj <christian@stjernberg.com>
Co-authored-by: KallePettersson <49831917+KallePettersson@users.noreply.github.com>
Co-authored-by: Kalle Pettersson <kalpet@kth.se>
Co-authored-by: Ralf <bubriks@gmail.com>
Co-authored-by: Eric Vickström <vickstrom@users.noreply.github.com>
Co-authored-by: Oscar Almqvist <almqvist.oscar@gmail.com>
Co-authored-by: annsudo <55130711+annsudo@users.noreply.github.com>
Co-authored-by: sfkwww <sebbe.williams@gmail.com>
Co-authored-by: Natan <natanteferi@gmail.com>
Co-authored-by: dmariel <34478937+dmariel@users.noreply.github.com>
Co-authored-by: Dina Lerjevik <lerjevik@kth.se>
Co-authored-by: IfyUrama <34371981+IfyUrama@users.noreply.github.com>
Co-authored-by: IfyUrama <ifeomaurama0@gmail.com>
Co-authored-by: Eva Despinoy <38752330+evkade@users.noreply.github.com>
Co-authored-by: Eva Despinoy <despinoy@kth.se>
Co-authored-by: Fredrik Björkman <pfl.bjorkman@gmail.com>
Co-authored-by: Christopher Gustafson <chrigu@kth.se>
Co-authored-by: Khashayar Etemadi <54890183+khaes-kth@users.noreply.github.com>
Co-authored-by: cpiehl1 <35833651+cpiehl1@users.noreply.github.com>
Co-authored-by: Sophie H Ye <he_ye_90s@hotmail.com>
Co-authored-by: Renugaa <80925947+Renugaa@users.noreply.github.com>
Co-authored-by: Ackuq@ <axel@pettersson.cc>
Co-authored-by: Dashboard bot <dashboard-bot-dd2482@users.noreply.github.com>
Co-authored-by: vladomitrovic <vlado.mitrovic@outlook.com>
Co-authored-by: gangwalmegha <57762978+gangwalmegha@users.noreply.github.com>
Co-authored-by: Megha Ved <meghaved@Meghas-MBP.lan>
Co-authored-by: Martin Monperrus <martin.monperrus@gnieh.org>
Co-authored-by: Simon Persson <siper@kth.se>
Co-authored-by: Lazar Cerovic <lazarc@kth.se>
Co-authored-by: jhammarstedt <52280124+jhammarstedt@users.noreply.github.com>
Co-authored-by: Theodor Andrei Moise <38431187+iriediese@users.noreply.github.com>
Co-authored-by: rymane <60221527+rymane@users.noreply.github.com>
Co-authored-by: elin <eryman@kth.se>
Co-authored-by: Isak Hassbring <isakha@kth.se>
Co-authored-by: Oskar Strömberg <oskstr@kth.se>
Co-authored-by: Benoit Baudry <baudry@kth.se>
Co-authored-by: agnesforsberg <66953501+agnesforsberg@users.noreply.github.com>
Co-authored-by: Agnes <agnesfo@kth.se>
Co-authored-by: Gustaf Lidfeldt <34308157+glidfeldt@users.noreply.github.com>
Co-authored-by: Gustaf Lidfeldt <glidfeldt@kth.se>
Co-authored-by: FelixFonteneau <34739390+FelixFonteneau@users.noreply.github.com>
Co-authored-by: Amao Three <ihidemyname@outlook.com>
Co-authored-by: Renstrom <48918700+Renstrom@users.noreply.github.com>
Co-authored-by: Frida Wallberg <60963219+fwallb@users.noreply.github.com>
Co-authored-by: William Skagerström <william.skagerstrom@gmail.com>
Co-authored-by: Gabriel Chang <gc.chang95@gmail.com>
Co-authored-by: Charlotte Andersson <52800034+charlottea98@users.noreply.github.com>
Co-authored-by: yuxinmmmm <74023926+yuxinmmmm@users.noreply.github.com>
Co-authored-by: Simon Persson <simon@akep.se>
Co-authored-by: Internet-Person-IP <57772173+Internet-Person-IP@users.noreply.github.com>
Co-authored-by: taqui <taqui@kth.se>
Co-authored-by: Augustjon <46889105+Augustjon@users.noreply.github.com>
Co-authored-by: arxra <judoaron@hotmail.com>
Co-authored-by: Yannik Sander <accounts@ysndr.de>
Co-authored-by: Adam Henriksson <adam.ingemar.henriksson@gmail.com>
Co-authored-by: Kalle <78203973+Wizkas0@users.noreply.github.com>
Co-authored-by: Yannik Sander <me@ysndr.de>
Co-authored-by: André Brogärd <brogard@kth.se>
Co-authored-by: kittytinythai <kittyt@kth.se>
Co-authored-by: thestar19 <1640222+thestar19@users.noreply.github.com>
Co-authored-by: Xbast <34154689+Sebberh@users.noreply.github.com>
Co-authored-by: majate <maja.tennander@yahoo.se>
Co-authored-by: Christian Stjernberg <cjgst@kth.se>
Co-authored-by: damnePers <48753919+damnePers@users.noreply.github.com>
Co-authored-by: Axel Elmarsson <33149910+elmaxe@users.noreply.github.com>
Co-authored-by: hengque <43048353+hengque@users.noreply.github.com>
Co-authored-by: heeenkie <35926672+heeenkie@users.noreply.github.com>
Co-authored-by: Hilaire-Bouaddi <Hilaire.bouaddi@gmail.com>
Co-authored-by: Martijn Atema <martijn@atema.one>
Co-authored-by: majate <34208794+majate@users.noreply.github.com>
Co-authored-by: Spycsh <39623753+Spycsh@users.noreply.github.com>
Co-authored-by: Khashayar Etemadi <khaes@kth.se>
Co-authored-by: taqui <taqui@pop-os.localdomain>
Co-authored-by: Måns Andersson <41705928+mansand1@users.noreply.github.com>
Co-authored-by: Eric Vickström <eric.vickstrom98@gmail.com>
Co-authored-by: Grunler <43205024+Grunler@users.noreply.github.com>
Co-authored-by: Johan <johennin@kth.se>
Co-authored-by: Amar Hodzic <36760221+amarhod@users.noreply.github.com>
Co-authored-by: andreaskth <37302970+andreaskth@users.noreply.github.com>
Co-authored-by: hallon-heyman <hallon.heyman@gmail.com>
Co-authored-by: Kalle <Wizkas0@users.noreply.github.com>
Co-authored-by: Felix Seifert <mail@felix-seifert.com>
@SophieHYe SophieHYe self-assigned this Apr 28, 2021
@SophieHYe
Copy link

Thanks for the tutorial submission. I am merging it now.

@SophieHYe SophieHYe merged commit 2f9f4cc into KTH:2021 Apr 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants