Welcome To Kenny's FabAcademy Page!

Blog for AWESOME things that Kenny made for Fab Academy

Week - 01

0001-01-01 Kenny

Assignment

  • plan and sketch a potential final project
  • work through a git tutorial
  • build a personal site in the class archive describing you and your final project

SSH

  • Secure SHell is a command line tool for cummunicating in between two computers safely via https protocol.
  • It can be configured in many way but in our case it’s feature for the ssh-key is very interesting. It uses asymmetrical encryption, which means, to encrypt you use the private key and to read, you use the public key. This is used for authentication on the gitlab server.
    ssh-keygen
  • It is possible to specify encryption algorithms but for the better understanding, here left out.
  • It is common practive to name the ssh keys’s file which can usually found in the ~/.ssh directory for it’s specific purposes. It can be done in the .ssh/config file:
host fabcloud
    hostname gitlab.fabcloud.org
    user git
    identityfile ~/.ssh/keys/fabcloud

Git

  • Git (meaning “unpleasent person”, the inventor calls his inventions after himself (very ironically) ) keeps track of changes of files, which prevents “loosing” files and thus enables collaboration.
    git init   // start tracking the current directories and subdirectories
    git add .  // start tracking files in these directores
    git commit -m "MESSAGE" // put the changes from tracked files into the database of changesadd
    git remote add origin https://gitlab.fabcloud.org/academany/fabacademy/2018/labs/fablaberfindergarden/students/kaname-muroya //adding the remote repository2018
    git push origin master // syncronize the current state of the repository to the remote repository
    git pull origin master // syncronize and merge the changes to the current repository

Gitlab

  • Is a opensource project which enables selfhosting of the git-repository-server.
  • In the web-interface you can find many useful configuration such as storing your public ssh-key: https://gitlab.fabcloud.org/profile/keys

Static Page Generator

  • There are many way to create a website, which is basically an html-document (Hypter Text Markup Language). It specifies the format and semantics of each document part (title, menu, paragraph, etc.)
  • To prettify the apperarence, CSS (Cascadating StyleSheet) and JS (Javascript) can be used. But the functions does not need to be written over and over again and thus frameworks like Bootstrap and Hugo came to their existence.
  • Hugo (https://gohugo.io) combines many frameworks to make beautiful websites fast.
  • There is a templating system, which means there are html tags which content can by changed in another file and the static page generator combines it.
  • There are variables in a html template which will be replaced by the actual content
  • I used the bilberry-template. (There it is called theme)
    git clone https://github.com/Lednerb/bilberry-hugo-theme.git
 {{ variablenameToBeReplaced }}

CI

  • To make use of the SPG fully, it is desireble to be able to automate the whole process, which is possible through git.
  • In git you can have a copy of a certain state which is called “branching”
    git checkout -b BRANCHNAME // create and change to the new branch with BRANCHNAME
    git merge BRANCHNAME // combine the changes in branch BRANCHNAME to master
    
  • It is possible to start a script if there is a change in the master-branch. Which is the core mechanism of Continuous Integration.
  • To make this possible, you need to add via the Gitlab web-interface a new file and you can specify .gitlab-ci.yml file and then look for hugo.
  • After adding, it should react to the changes to your static page generator files.

Challenges

  • It was tricky to find a suitable template and I am still working on features for it.
  • The template I chose was not downward compatible with the currently installed hugo version on Gitlab, so I tried adding “before_script:” where you can execute linux commands and tried to upgrade hugo. But it said that it is already the newest version, so the linux distribution is not well supported (and I did not want it to compile it form scratch on a server I don’t know much about)

Rest of the Assignment

  • About-Me page will be a different page
  • The project planning page will be also on different page

Please Support My Inventions

0001-01-01 Kenny

Aloha!

I am constantly making awesome creations, but to keep inventing I need your help to be able to dedicate and focus full-time making my projects.

From Cocktail Robots to new Start-Ups, I am constantly implementing ideas.

We can get personally in touch via mail:

Become a Patron!
Older posts