During the first Fab Academy lecture, I stumble upon a word that I had never heard before: A Version Control Software (VCS).
The next day, after the local instructor gave a more in-deep lesson about the topic, I learned that VCS is a software that tracks changes and evolutions of text files, and it is different from a cloud platform like Dropbox or Google Drive that only saves files.
I understood that A VCS software would be a better choice for my Fab Academy site and documentation. I could track changes and evolution of the files, giving specific names to each commitment, so I know what I am pushing, and I could even return to the original version of a file.
There is also an advantage regarding team works because you can collaborate by sharing the same repository with your group mates.
There are different VCS. Our tutors suggested using Git.
The first step was installing Git from git-scm,
set up my account on GitLab.fabcloud (the fab academy repository),
where I will share the modified text files and the personal site with the fab academy community.
_______________ Generating an SSH key ________________
To maintain secure communication between our local repository and the remote repository (GitLab)
without giving username and password every time, I create an SSH key following a tutorial on git-SCM book
The command to generate the SSH key was: ssh-keygen -o -t rsa -b 4096 -C email@example.com.
The SSH key file was saved as on “thisPC - windows - users - 39345 – ssh”.
I clicked view” on the instrument bar and pinned “file name extension" to make visible the ".pub format".
On my computer desktop, I created the folder "fabacademy2020", and then I started cloning the pre-set GitLab repository on my computer.
Elena@LAPTOP-9DB5PD27 MINGW64 ~
$ ssh-keygen -t rsa -b 4096 -C "elenaracanicchi@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/39345/.ssh/id_rsa):
Created directory '/c/Users/39345/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/39345/.ssh/id_rsa.
Your public key has been saved in /c/Users/39345/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xiMa3ZiYhlEumwUXXCI8WVoh7hYcjHq9CQ06b3fv82Y elenaracanicchi@gmail.com
The key's randomart image is:
+---[RSA 4096]----+
| +=+O+. |
|.o*@.. |
|..B=o |
|+.oOo+ = |
| +*.=o= S |
| .o.+o.o . |
| . ... . |
| o E |
| ..=. |
+----[SHA256]-----+
fatal: not a git repository (or any of the parent directories): .git
appeared. cd ../
to return to the directory "fabacademy2020",
and then I used the command rm -rf
to delete all the remaining files in the folder and start cloning again.
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git status
fatal: not a git repository (or any of the parent directories): .git
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi
$ cd ../
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020
$ rm -rf elena-racanicchi
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020
$ git clone git@gitlab.fabcloud.org:academany/fabacademy/2020/labs/santachiara/students/elena-racanicchi.git
Cloning into 'elena-racanicchi'...
remote: Enumerating objects: 171, done.
remote: Counting objects: 100% (171/171), done.
remote: Compressing objects: 100% (64/64), done.
remote: Total 171 (delta 98), reused 171 (delta 98)
Receiving objects: 100% (171/171), 405.19 KiB | 624.00 KiB/s, done.
Resolving deltas: 100% (98/98), done.
pull
command for the first time. Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git pull
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), 444 bytes | 3.00 KiB/s, done.
From gitlab.fabcloud.org:academany/fabacademy/2020/labs/santachiara/students/elena-racanicchi
b931a8e..546636c master -> origin/master
Updating b931a8e..546636c
Fast-forward
.gitlab-ci.yml | 13 +++++++++++++
1 file changed, 13 insertions(+)
create mode 100644 .gitlab-ci.yml
pwd,
cd, add, git status, commit, push
and I started trying them by adding, pushing and committing my first files to GitLab.
Elena@LAPTOP-9DB5PD27 MINGW64 ~
$ pwd
/c/Users/39345
Elena@LAPTOP-9DB5PD27 MINGW64 ~
$ cd Desktop/
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop
$ cd fabacademy2020
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020
$ cd elena-racanicchi
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git add index.html about.html
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged ..." to unstage)
new file: about.html
new file: index.html
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git commit -m "sito"
[master b931a8e] sito
2 files changed, 82 insertions(+)
create mode 100644 about.html
create mode 100644 index.html
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git push origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 1.27 KiB | 130.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0)
To gitlab.fabcloud.org:academany/fabacademy/2020/labs/santachiara/students/elena-racanicchi.git
cb5d96e..b931a8e master -> master
The first time I tried to commit, the terminal asked for authentication, so I wrote the same email that I had used for generating the SSH key
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git commit -m "nuovoinizio"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: unable to auto-detect email address (got 'Elena@LAPTOP-9DB5PD27.(none)')
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.email "you@example.com"
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.name "Your Name"
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.email "you@example.com"
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.email "elenaracanicchi@gmail.com"
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.name "Your Name"
Elena@LAPTOP-9DB5PD27 MINGW64 ~/Desktop/fabacademy2020/elena-racanicchi (master)
$ git config --global user.name "Elena Racanicchi"
The tactile map will need bluetooth sensors (an example can be a beacon, with pro and cons of the case, especially limits like maximum distance and possible signal obstacles. I researched the possible uses of beacons and development kits on estimote).
Each sensors will be installed and paired with a section/room of the museum.
By pressing a special button "find me" on the tactile map, the nearest beacon will detect the upcoming bluetooth signal and will send it back to the tactile map.
As a direct consequence, the area of the map with which the sensor was previously paired will emit a slight vibration.
For example, if Visitor one (V1) is in room 3, beacon 3 (b3) installed in the room will receive and send back the signal to the map. As a result, section 3 will vibrate on the tactile map.
This method will allow an easier and much faster position recognition compared to a simple tactile scanning with your hands.
This is just an initial sketch and idea for the final project. During the course I will update it with more details and informations on the Final Project page.