Week 1 : Principles and practices, Project Management
At Fabacademy it is important to document our progress and make it visible to the entire world through our website. Sharing through documenting would help someone fix problems they experience.
Franc
(our remote guru) makes sure that each one of us does it, or else he don't mind grabbing our necks!
(Just Kidding, he is our life saver).
Assignments
This week's assignments include:
How I made Website
I learnt to code and make website from tutorials of CodeAcademy-Web.
During my Pre-Fab Workshop, I developed website using Wix which didn't require
any coding skill. But, experience showed that it's better not to opt for "What
you see is what you get" kind of Website developers. My pre-fab github web page is nisha-elsa.github.io,
which I developed using wix. Right now im using Atom
and html with css to make webpages. Atom has some good useful features like auto completion which I find useful.
I was able to increase my learning of html coding. I learnt about creating css - cascaded style sheets to
style the webpage. Right now I have styled my page by using a basic header, footer,
container and few basic stylings. I am planning to explore more and keep updating
this portion of my assignment during my fab journey with the timelines of how I developed my final website.
With the fabacademy progressing, I've learnt how to make my webpage from scratch to a better looking one. This was my learning curve
here. I've learnt how to style the page, add different divisions and customise the page, add header, footer, favicon, different
containers, etc.
Markdown seems to be an easier option to create pages. Markdown is a specific markup language, having its own simple syntax.
I've understood Markdown can't do everything HTML can! Markup is just a way of providing functionality above plain text.
For example: formatting, links, images, etc. I installed pandoc to convert the
.md files to html. Markdown+pandoc seems to be working perfectly for me, but that
din't stop me from exploring other web development tools like brackets.io .
I liked markdown, but I'm gonna use just Html for the time being. Also, I've used Markdown to do documentation works
of our group page of Machine design.
Some websites I found helpful to learn:
Learning Git from tutorials
Version Control System (VCS) is a software that helps software developers to work together and maintain a complete history of their work. Git falls under distributed version control system which means Git does not rely on the central server. So, you can perform many operations when you are offline. You can commit changes, create branches, view logs, and perform other operations when you are offline. You require network connection only to publish your changes and take the latest changes.
I used CodeAcademy's Learn Git Learn Git tutorials to get to know basic git workflow and commands.
I found Become a Git Guru tutorials were also helpful.
Franc has written a working with repositories tutorial
which I followed to install git, add ssh key to the system, clone the repository and configure git.
Later, I shifted my system to mac. In git, you can add as many as systems to make changes in your folder. For each key
system there will be a unique key, which you must add. When you need to remove the system, you can just delete the key.
So, I installed git. Made a pair of SSH Key since I din't have one. Then moved the keys to ~/.ssh folder. Set permissions
on the private key. Then uploaded the public key to gitlab. One problem which I encountered was that I could not locate the .ssh folder
inside the home of my computer. So, I used terminal and checked whether the file existed. I used the following commands:
cd ~/.ssh To change to .ssh folder
textedit id_rsa.pub To open the text containing the public key
Pushing files to archive
Using the following commands, I copied my files to my local git folder, and pushed to fablabtrivandrum repository.
The setup steps involved were:
- Generate a separate key-pair using $ ssh-keygen (enter a strong passphrase) which generates id_rsa & id_rsa.pub in ~/.ssh folder.
- Make it readable and writable only by you using chmod 600 ~/.ssh/id_rsa
- Copy the public key to http://git.fabacademy.org/profile/keys.
- Test the setup by running $ ssh git@git.fabacademy.org
I was not able to git push ,since I was not marked as a Developer in GitLab. Later, Fransisco to add me to that role.
Commands to pull and push into the archive:
git pull # pull other students changes
git add --all # add your changes
git commit -m "message" # write a meaningful message
git push
After cloning in my mac, I checked if pulling and pushing into archives works fine. It did and i'm good to go in my documentation
works through mac.
Video Conferencing
Lab uses linphone for video conferencing. I've installed and used Ekiga through my ubuntu. The documentation I followed is
Video Conferencing in franc's webpage.
Final project Ideas:
I wanted to make a project which interacts with person and reacts accordingly.
I had two project ideas, one was to create a musical juke box in which the dancing doll dances
when the person comes nearby to the juke box. Other Idea was to create a smart furniture design,
implement it and proceed on later with building similar space saving smart furniture ideas.
I decided to proceed with my project idea that was to create a smart furniture design and develop it at fablab.
The furniture senses the person and automates light accordingly.
In India, mostly people spend a lot to make furnitures that look posh, but rarely is is productive or
space saving. Maybe developing fab-able furniture would be a nice idea.
What I learnt from this week's schedule...
Web development using HTML is really cool and way better than using wordpress
if you want to build on your knowledge level.
Markdown language and developing website using it, a simple way to develop
websites without remembering much codes.
Video Conferencing - How to do...
How to work on git.