1. Gestion de projet et documentation#

Documentation is a key part of this course as the learning process is more important than the end result. To keep track and to share my learning progression, GitLab, a version control software was used.

Editing#

I use a Linux distribution (Arch Linux) as my main operating system. Alacritty is my terminal emulator and hyprland is my tiling compositor. I’m using neovim, an open source IDE to edit files and my shell is zsh which is quite similar to Bash. To make editing markdown files easier, I installed the markdown-preview plugin for neovim.

I won’t explain how to write markdown files or basic bash commands as I already knew all of them. I suggest checking these documentations to understand the basics : bash and markdown.

GitLab#

Since I am a Computer Science student, I already had git installed and configured but if that is not the case it can be done using a package manager, mine is pacman.

sudo pacman -S git

I installed and set up the SSH key following the documentation. I was able to get it done pretty easily as I’m used to reading docs.

ssh-keygen -t ed25519 -C "othman.el.kazbani@ulb.be"

Once the ssh key was generated, I copied it with:

xclip -sel clip < ~/.ssh/id_ed25519.pub

Then I added it to GitLab and verified that everything worked.

I could now start cloning the project.

Uploading files with Git#

After editing the local repository, it was time to upload the changes on the remote one.

An interesting way to stage changes before committing is to use :

git add -p

It allows to go through every changes one by one which helps writing a more accurate commit message.

git commit -m "message"

We can then send the modifications to the remote repository.

git push

Data Compression#

To not overload servers memory, it is important to handle data carefully. This is especially true when uploading data to GitLab as data is never really deleted remains accessible when browsing the history. That’s why, images and videos should be compressed to take as little space as possible.

To compress images, the software I focused on is ImageMagick. Here is an example of usage.

magick screenshot.png -quality 60% -resize 600 git_add_p.jpg

I also like to use Gimp to crop images as it is friendly to use with its gui. Here is an example.

Before uploading images on GitLab, I like to verify that each picture doesn’t exceed a size of 300kb. I either to it directly on neovim.

Or i do it in the terminal.

Mkdocs#

It’s possible to install mkdocs and its extensions with pip but it requires creating a virtual environment. I found it easier to install it using pacman.

sudo pacman -S mkdocs

Also, the theme used by default was spacelab which was not installed on my machine and therefore caused this error.

I changed the theme to one that is available by default: mkdocs.

LLMS#

I used ChatGPT and MistralAI to correct my grammar and to help me design models on OpenScad.

License#

CC BY-NC-SA 4.0