Principles and Practices
Assignment; plan and sketch a potential final project.
I am Kenyan and we are principally agricultural and that includes chickens and therefore for my final project I thought to fabricate an egg incubator and hopefully hatch some chicks/chickens.
The idea is to do it in such a way that it is cheap and the materials easily sourced locally. Going along with that proposal the incubator will mainly be made of wood, which it so happens is available locally and cheap. As for the electronics, I am still working on that...
PROJECT MANAGEMENT
Assignment;
- Work through a git tutorial
- Build a personal site in the class archive describing you and your final project
Git Tutorial
- 'r' ensures that rsync works recursively, meaning that it synchronizes all files and folders in the specified source directory.
It is imperative that this option is used otherwise rsync will only synchronize the top-level files and will not go into the directories.
- 'v' not a necessary option but quite handy as it forces rsync to go into 'verbose' mode, meaning it outputs more information to the console than it would normally do, allowing you to closely monitor the program as it works.
- 'n' another useful option that forces rsync do what is called a 'dry-run' meaning that the program runs but makes no changes allowing you to foresee any complications.
Personal Site
- Work off a template, modifying code
- Build a site from scratch
This proved to be the easier part as I have used git before.
I already have git installed, and setup. All that I needed to do was ensure that it was properly configure so I simply ran,
git config -l
This allowed me to view my current configuration. There was no need to change anything and so I left it as it is.
I logged into the fabacademy git site and copied the fabacademy2017 fablabnairobi link
Next was to clone the repository using the copied link, which I did with;
git clone http://git.fabacademy.org/fabacademy2017/fablabnairobi.git
Note the use of the 'https' address as opposed to the 'ssh' address. This was due to the fact that at the time I was working using the University internet which has a firewall. Unfortunately 'ssh' protocol connections are blocked hence the use of 'https'.
Switching active directory to the repository directory and performing
git pull
allowed me to confirm that my repository was up to date.
I have set up such that when editing my website content, I do not do it directly on the repository files. As such I have two copies of my website at all times, one in the local git repository and the other in a different directory. In order to make changes to my website I use 'rsync' to synchronize the two directories, like so...
rsync -rv [source] [destination]
The options marked by the hyphen '-' i.e. '-rv' work as follows,
Once the sync is done...
git add .
to update the index based on the local files
git commit -m [message]
to commit the changes with '-m' option allowing you to add a comment on the changes being committed.
git status
confirms what commits are ready to be made
Another 'git pull' may be necessary at this point to ensure that the repository is currently up to date.
Finally...
git push
to send files to the remote repository and voila! Website is up to date.
First off, was choosing an editing software. My first thought was to use Gedit but I quickly switched to Brackets as it allows me to preview any changes as I make them.
Gedit, my favourite text editor, lost this war...

As pointed out in the tutorial, there were 2 options available when it came to building a personal site;
I attempted working off a template first. I unfortunately could not find a template that appealed to me both in terms of simplicity in code and the type of 'look and feel' I wanted to implement.
My various attempts at templates...


At this point I decide that I would build my site from scratch. I made use of a simple css file to arrange the content of the website. I made use of w3schools as a much-needed html and css refernce
The first iteration was as pictured...

I have of course made various changes since then and will continue to do so...
Assignment wise:
- 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