Principles and Practices, Project Management :

For the first week of FabAcademy we learned about Principles and Practices and Project Management, and we were assigned to sketch a potential final project as well as write a git tutorial and document all of these in a our web page that we made.

Making a web page :

So before we start doing anything for this week's assignment or any other assignment we had to make our own web page so that we can document everything about all the weeks as well as our final project and also a brief introduction to tell everyone who we are.

The home page:

I started making the home page for my website by downloading a Bootstrap template from startbootstrap, then I started changing everything in the template like, the pictures and the titles using HTML with Atom text editor, which was difficult for me as its my first time dealing with it.

Weekly assignment pages:

When I was done with the template I started documenting everything using MarkDown with Atom text editor also, so I only had to deal with HTML once, I learned Markdown through this tutorial, which is much more easier for me, so I had to modifiy the main page once and after that I document the week's progress using MarkDown and use this command to convert into HTML before pushing, for example if you want to change week4 from markdown to html use this, but for sure first you need to install pandoc.

pandoc -c pandoc.css -f markdown -t html -s -o week4.html

Also to get a list of all the supported options for pandoc you can type:

man pandoc

What I mean is that pandoc has a lot of options, like the filename tells pandoc which file to convert. The -s option says to create a standalone file, with a header and footer. And the -o week4.html says to put the output in the file week4.html.

Now to check that the file was created, type ls, You should see week4.html.

Version Control :

The first time I have heard about this Version Control thing is when our Guru Francisco Sanchez came to Dubai to be our instuctor for this year FABACADEMY, everything started to change starting from installing Manjaro linux and using it insted of windows and as a windows user for the past 15 years it was a bit hard. We started with the commandline and uploading things into GitHub by crearting new repositories for our machines and projects for FabLab UAE and we started documinting everything and uplouding things daily to our FabLab UAE repository on GitHub.I also learned how to create a secret key which allows me to control my files from any where i want or delete them if someone took control over my labtop.

Git :

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

we started by creating a git account on github and then generating our SSH key :

With SSH keys, if someone gains access to your computer, they also gain access to every thing with which you use that key. To add an extra layer of security, you can add a passphrase to your SSH key.

Now for adding the ssh-key to the agent :

Then to configure our GitHub account to use our new SSH key, we need to add it to our GitHub account :

In the upper-right corner of the page, click on profile photo, then click Settings:

In the user settings sidebar, click SSH and GPG keys:

Click on Add SSH key:

In the "Title" field, add a descriptive label for the new key. For example, if you're using a personal laptop, you might call this key "Personal lenovo"

And finally add the ssh-key.

Now to clone a repository with git clone [url].

git clone

Uploading to the archive:

To clone the repository first you need to have an account in and after that you need to log in here using the account you created.Then to set the SSH key go to profile setting:

Then go to SSH keys:

Then In the "Title" field, add a descriptive label for the new key like we did with GitHub. For example, if you're using a personal laptop, you might call this key "Personal lenovo"

And finally add the ssh-key.

Then open the terminal in the folder you want to clone the repository in and type:

to add identity use the following command:

ssh-add ~/.ssh/youridentity

now for pushing files to the repository we learned a sequence of commands:

git pull

git add --all

git commit -m "message"

git push

When you push to a repository, you do not have to push all of your files. You can choose to share just one of your files, or all of them.

Next Week

Home Page