It kick-started on the 25th of Jan 2017, 7 pm IST when Prof. Neil began the video conference. Lab uses linphone for video conferencing.He talked about the course in brief before giving the assignments for the following week. He talked mainly about the following things: Documentation, Creating a Personal web page, Git, ssh-key and about drafting a final project.
Documentation is an integral part of fab Academy.It can be used as a reference later on, also,this will help me understand, learn and implement basic web development tools and process. For the Documentation purpose - I tried Nano and Atom and finalized on Atom, especially because as a beginner I found it more easy because of the preview options available, the auto completion feature and it is easy to convert the md to html. I used Markdown with Atom.
Markdown is a specific markup language, having its own very simple syntax.
It is an Easier option to create pages.
We have to create our own web page for the documentation of our works.There are many website development/blogging platforms available on the web. I'm using Atom text editor for writing in html as mentioned earlier. Before using the style-sheets my page looked plain with no styling. Then I came to know about styling-sheet and I used it to make my page look better.
Now my page looks different - in a better way ofcourse - after using one of the style sheets I got from the internet.
One of our assignments for the first week is to create a website to document and share our ongoing Fab Academy progress and observations. I have no previous experience in website creation. I started out as suggested by looking at webpages that students created for previous years. After some research I found the best resources for information on HTML and CSS (webpage coding) are Code academy and W3Schools. Since I'm new to the Linux world, recently learned a few commands pwd = print working direct ls = list cd = change directory (cd. & cd.. - to go to current and previous path) cp = copy mv = move man=for the explanation of a particular command.
Firstly we had to set-up our authentication with remote git server.
Two methods to get this done are :
Normal HTTPS method : This allows us to authenticate by using a username and password.
SSH : This is a secure mode of authentication and a bit easier. This uses a private & public key combination for user authentication. And once public key is stored in user panel, we can connect to remote git without any username/password. For setting up SSH mode of authentication we have to generate our private/public key in our OS.
All documentation pages of each student of Fab Academy is stored in a single archive and we update and push our content to the same archive.
As a beginner,with no experience/background in computer programming it took me some time to understand the whole git thing and the website creation. Some of the links I found useful are :
git tutorial git cheat sheet git tutorial in youtube
Git global settings are declared as below.
1 git config --global user.name "MY NAME"
2 git config --global user.email "MY EMAIL"
3 git config --global user.editor "EDITOR"
The Linux version I'm using - Manjaro comes with pre-installed git.
The essential commands for starting, updating and maintaining a git repo are
git clone "your_repository_link"
to clone or to get a copy of the git repository. git clone [path of the bare git repo] [destination folder and git repo name]
git pull
this will update the repo if any changes were made to it by any other contributor. This should be done every time before making any changes to our local repo.
git pull
git add. / git add -A/ git add --all
this will update the index using the current contents of the working tree.
git commit -m "fill in a description about the change you are committing"
this is for committing all the changes you have made in the repo. It stores the current contents of the index in a new commit along with a log message from the user describing the changes. The descriptions are very important as these will be the easy reference in the future.
git push
this is the opposite of git pull. It pushes all the changes you have made to the the refs. It updates remote refs using local refs, while sending objects necessary to complete the given refs.
git status
This is to check the status of the repository.
git status
Using the SSH protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to GitHub without supplying your username or password at each visit.
Adding SSH key to the system: Create a fablab account, and login to to this adress using the credentails. This is a gitlab account of fablab. Steps Followed to generate keys in our system
Generate the key using
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Add the new key to ssh-agent
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_fab
Add the keys to git profile
cat ~/.ssh/id_rsa_fab.pub
I found the detailed instruction of adding ssh key in here Generate the SSH key, copy and paste it to the 'My SSH Keys' section under the 'SSH' tab in our user profile.
I also refered this page for more on SSH
My Final projct is not finalized yet here's a rough draft while I'm still working on the Final projct.
I'm planning to make a Smart/fab table. This can be dismantled and will be easily protable. I'm thinking of using automated illumination. This could be used as a multipurpose table - for studying,Uninterupted power supply - using LED strip - 12V - can use battery as well as solar for this purpose. It would be worth a try if I can charge the battery using piezoelectric materials; electricity resulting from pressure. Mobile charging facility, laptop charging , router hub for Lan gaming, playing chess etc are the options which can be added. Another option I'm thinking of is a compartment for monitor which can be made on the top surface of the table. Monitor can be placed inside the compartment after use.