Skip to content
Snippets Groups Projects
Commit 661c5e14 authored by Mitalee Parikh's avatar Mitalee Parikh
Browse files

w1 finish

parent 6224d854
No related branches found
No related tags found
No related merge requests found
Pipeline #244676 passed
Hi, I'm [Mitalee Parikh](https://www.linkedin.com/in/mitaleeparikh/) and this site is a documentation of my work done in 2020+21 as a part of the [FabAcademy](https://fabacademy.org/) programme.
I'm [Mitalee Parikh](https://www.linkedin.com/in/mitaleeparikh/) and this site is a documentation of my work done in 2020+21 as a part of the [FabAcademy](https://fabacademy.org/) programme.
I started the course at [FabLab Barcelona](https://fablabbcn.org/) in 2020, and am continuing it at [FabLab Singapore](https://www.fablabs.io/labs/fablabsp) in 2021. I worked remotely from Mumbai, India without a Lab in 2020, and finished the remaining parts from Dubai at [FabLab UAE](http://fablabuae.ae/). The Fab Network has been very helpful during border restrictions of the pandemic.
......
#Principles, Practices and Project Management
This week I learned about version control, web development using SSGs, and sketched out an initial final project idea.
This week I learned about version control, web development using SSGs, and sketched out some ideas for my final project.
### Page Summary
1. Version control
......@@ -33,34 +33,34 @@ Ref: [Git](https://git-scm.com/about)
---
On Fabcloud our individual repositories are housed under *Academany > FabAcademy > Year > List of Labs > Lab > Students > Name*
One way to log on to Fabcloud is use login credentials from fablabs.io. That is also what you use for other FabAcademy communication.
One way to log on to Fabcloud is use login credentials from [fablabs.io](https://fablabs.io/). It is the same login credentials used used for other FabAcademy communication - like [Nueval](https://nueval.fabacademy.org/#/) for assessment and the [Network](live.fablabs.io).
1. Install Git on your local computer.
1. Install Git on local computer.
Install Git through the command line - Terminal app (macOS).
Install [Homebrew](https://brew.sh/), a package manager using the instructions on the website.
To install Git through the command line - Terminal app (macOS), first install [Homebrew](https://brew.sh/), a package manager using the instructions on the website.
![](./images/pppm/brew.png)
and then
`brew install git`
There are other ways to install git as mentioned on the website too.
Ref: [](https://git-scm.com/download/mac)
Ref: [git-scm](https://git-scm.com/download/mac)
2. Configure user
To configure your user from scratch, in your terminal, add your Git username and set your email for uploading
To configure a user from scratch, in terminal, add a Git username and set an email for uploading. In my case it is:
`git config --global user.name "mitalee.parikh"`
`git config --global user.email "emaitee@gmail.com"`
This helps in tracking who makes the changes on the shared gitlab repo which is public.
3. Generate SSH key
Check if you have an SSH KEY already
Check if an SSH KEY already configured
`cat ~/.ssh/id_rsa.pub`
If not, generate it using
`ssh-keygen -t rsa -C "emaitee@gmail.com"`
Then use the above command to view your public key and copy it.
Upload this key on the Gitlab Website onthe browser. Go to user profile > Settings > SSH keys and copy it there.
Now, your Gitlab server is securely linked to your local computer.
Then use the above command again to view the public key and copy it:
`cat ~/.ssh/id_rsa.pub`
Upload this key on the Gitlab Website on the browser. It usually begins with 'ssh-ed25519' or 'ssh-rsa'. Go to user profile > Settings > SSH keys and copy it there.
Now, the Gitlab server is securely linked to the local computer.
4. Start a git repository
......@@ -68,10 +68,12 @@ One way to log on to Fabcloud is use login credentials from fablabs.io. That is
1. On the GitLab website, create a repository and then clone it locally.
2. In the terminal initialising it from scratch using `git init` by changing current directory to desired location.
3. Cloning an existing one.
Since out student repos on GitLab already have a default template installed, we can directly clone it on our local computer, wherever you want to store your documentation.
Since our student repos on GitLab already have a default template installed, we can directly clone it on our local computer, wherever you want to store your documentation.
Your student repo consists of the default student template. First task is to clone this existing template to your local repo. After you cd to your local repo, use this to clone.
```
`git clone git@gitlab.fabcloud.org:academany/fabacademy/2020/labs/barcelona/students/mitalee-parikh.git`
Now, you have made a clone of the template on your local repository.
```
Now, a clone of the template is made on the local repository.
![](./images/pppm/clone.png)
4. Basic workflow and repository structure
......@@ -98,15 +100,15 @@ Git had very detailed error msgs, so it is advisable to read and follow them to
It is easier to undo a staged file, i.e. after git add
but more difficult to undo a committed file, after git commit, but still possible.
Check this guide in case of need to undo anything.
Check this guide in case I need to undo anything.
Ref: [How to undo (almost) anything with Git](https://github.blog/2015-06-08-how-to-undo-almost-anything-with-git/)
5. About CI/CD
---
Continuous Integration complies websites with static site generators.
Continuous Integration compiles websites with static site generators.
Ref: [docs.gitlab.com/ee/ci/](https://docs.gitlab.com/ee/ci/)
Here is a guide to understand how and why *commit > build > test > stage > deploy* works so effciently.
Ref: [CI/CD Explained in 100 Seconds](https://www.youtube.com/watch?v=scEDHsr3APg)
Ref: [CI/CD Explained in 100 Seconds](https://www.youtube.com/watch?v=scEDHsr3APg)
How it works...
You create a gitlab-ci.yml file (HTML).
Then a "runner" server picks up your "Pipeline"
......@@ -116,9 +118,8 @@ After completing your steps in the .yml file, GitLab stores the results and publ
6. YAML file
---
First git reads the YAML file .gitlab-ci.yml in the repo.
GitLab has a list of example repositories for common static static site generators or HTML at [gitlab.com/pages]
(https://gitlab.com/pages).
Understanding the default Mkdocs-CI YAML file in the repo
GitLab has a list of example repositories for common static static site generators or HTML at [gitlab.com/pages](https://gitlab.com/pages).
Understanding the default Mkdocs-CI YAML file in the repo
![](./images/pppm/yml.png)
```
# What type of container should run this job (where the script will run)
......@@ -146,39 +147,39 @@ pages:
7. Web Development with SSGs
---
The basic way to make a website is using HTML code for content, and maybe using CSS and javascript for styling.
Another efficient way to make websites is to use static site generators, especially sites with...
Another efficient way to make websites is to use static site generators.
To develop my webpage, I use the existing Mkdocs to first understand how it works. Jekyll is another option I want to use to make a custom themes maybe later on.
There are many options of Static Site generators like Hugo, Jekyll, Gitbook, Mkdocs, Middleman, etc. each with their own special features for the kind of website one wants to make.
This GitLab page has a list of example repositories for common static static site generators or HTML at [gitlab.com/pages]
(https://gitlab.com/pages).
There are many options of Static Site generators like [Hugo](https://gohugo.io/), [Jekyll](https://jekyllrb.com/), [Gitbook](https://www.gitbook.com/), [Mkdocs](https://www.mkdocs.org/), [Middleman](https://middlemanapp.com/), etc. each with their own special features for the kind of website one wants to make.
This GitLab page has a list of example repositories for common static static site generators or HTML at [gitlab.com/pages](https://gitlab.com/pages).
The basic way to start is clone one of these, unattach and start modifying.
### Setting up Mkdocs
Intalling and upgrading package manager pip `pip install --upgrade pip` to install mkdocs: `pip install mkdocs`
To view the changes on my local server `http://127.0.0.1:8000` I used `mkdocs serve`
Ref: [Markdown](https://en.wikipedia.org/wiki/Markdown) [basic tutorial](https://www.markdowntutorial.com/)
[Mkdocs guidelines](https://www.mkdocs.org/) has all instructions to customise the website.
### Setting up jekyll
I followed this [Jekyll tutorial](https://jekyll.org) by [Giraffe Academy](https://www.youtube.com///playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB). Before installing jekyll, I checked if I had these supporting things, and updated them:
1\. **Homebrew:** to easily install software packages
2\. **Ruby:** programming language that jekyll is written in
3\. **RubyGems:** package manager for ruby
4\. **Bundler:** to track and install gems and versions in a group, for jekyll themes
Homebrew, Ruby and Gem were all pre-installed.
So I checked versions using
`ruby -v` and `gem -v`
I installed bundler with `gem install jekyll bundler`, but got a permissions error msg.
So, I tried it with sudo like so: `sudo gem install jekyll bundler` and it worked.
And then to make sure checked version: `gem install jekyll bundler`
To view the changes on my local server `http://localhost:4000` I used `bundle exec jekyll serve` the first time and
Jekyll serve everytime after.
8. Web Design
---
I wanted my website to be as simple as possible from features, animations, colours, etc. So that the content is not overpowered by any distractions. I used the [MKdocs material theme document guide](https://squidfunk.github.io/mkdocs-material/getting-started/) to change colours, fonts, etc.
///Grid, colours, font - Helvetica, if you write a sentence in helvetica it is supposed to be the truth. (-Barbara Stauffacher Solomon)
//# Setting up jekyll
//---
//I followed this [Jekyll tutorial](https://jekyll.org) by [Giraffe Academy](https://www.youtube.com///playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB). Before installing jekyll, I checked if I had these supporting things,
//d updated them:
//1\. **Homebrew:** to easily install software packages
//2\. **Ruby:** programming language that jekyll is written in
//3\. **RubyGems:** package manager for ruby
//4\. **Bundler:** to track and install gems and versions in a group, for jekyll themes
//Homebrew, Ruby and Gem were all pre-installed.
//So I checked versions using
//`ruby -v` and `gem -v`
//I installed bundler with `gem install jekyll bundler`, but got a permissions error msg.
//So, I tried it with sudo like so: `sudo gem install jekyll bundler` and it worked.
//And then to make sure checked version: `gem install jekyll bundler`
//To view the changes on my local server `http://localhost:4000` I used `bundle exec jekyll serve` the first time and
//Jekyll serve` everytime after.
I wanted my website to be as simple as possible from features, animations, colours, etc. So that the content is not overpowered by any distractions. I used the [MKdocs material theme document guide](https://squidfunk.github.io/mkdocs-material/getting-started/) to change colours, fonts, etc.
### Setting up Mkdocs
Intalling and upgrading package manager pip `pip install --upgrade pip` to install mkdocs: `pip install mkdocs`
To view the changes on my local server `http://127.0.0.1:8000` I used `mkdocs serve`
* [Markdown](https://en.wikipedia.org/wiki/Markdown) [basic tutorial](https://www.markdowntutorial.com/)
* [Mkdocs guidelines](https://www.mkdocs.org/)
I did a quick exercise to define some aspects for the web design:
![](./images/pppm/site.png)
9. Misc Practices
---
......@@ -191,7 +192,7 @@ After some trial and error, i figureed these basic commands and settings I can u
To compress photos taken from my phone:
`convert IMGname.HEIC -resize 25% -quality 50% -density 72 jpg:extent=300kb IMGnewname.jpg`
To compress images taken as screenshot from my computer:
`convert Screenshot\ 2020-02-18\ at\ 10.54.27\ AM.png -resize 50% -quality 50% -density 72 jpg:extent=300kb newname.jpg`
`convert Screenshot.png -resize 50% -quality 50% -density 72 jpg:extent=300kb newname.jpg`
To make a quick GIF:
`convert -resize 25% -delay 15 -loop 0 IMG_1380.HEIC IMG_1381.HEIC IMG_1382.HEIC IMG_1386.HEIC IMG_1387.HEIC IMG_1388.HEIC animation.gif`
And to check the existing properties of an image:
......@@ -201,17 +202,47 @@ I also check individual file sizes by changing current directory in terminal and
10. Important and interesting links
---
#### Principles and Practices - [notes](https://fabacademy.org/2020/labs/barcelona/local/#material/week01/) + [video](https://vimeo.com/388191611)
#### Project Management - [notes](http://academy.cba.mit.edu/classes/project_management/index.html) + [video](https://vimeo.com/388201669)
# Project management
Gitlab example pages with all compatible SSGs https://gitlab.com/pages
Everyhting is a file
Linus kernel development video
[Principles and Practices notes](http://academy.cba.mit.edu/classes/principles_practices/index.html) + [video](https://vimeo.com/505368120)
[Project Management notes](http://academy.cba.mit.edu/classes/project_management/index.html) + [video](https://vimeo.com/505364047)
[Everything is a file](https://en.wikipedia.org/wiki/Everything_is_a_file)
[Linus kernel development video]()
[The Bash Guide](https://guide.bash.academy/)
[FabLabBCN local documentation guides](https://fablabbcn-projects.gitlab.io/learning/fabacademy-local-docs/guides/code/gitsetup/)
11. Initial Final Project Ideas
---
### Idea 1: Light source
For my final project, I want to make a versatile lamp.
A light source that can keep resultant light on a surface constant irrespective of external daylight.
Also, to add some mechanics and automation, make the form versatile to change it from being indirect light, ambient and a task light whenever required.
* CAD - make 2D for cutting/production files & make a 3D model, animate and render
* Inputs - light sensors to measure light color (add light intensity later)
* Output - Multicolor LED to change output to match resultant light
* CAM - lasercut parts, use vinyl cutter for origami folds
* 3D printing - joints, make casing for PCB
* Electronic design, production and embedded programming - To make the micro-contoller PCB
* Network and Communication - Add WiFi module to control it remotely
* Interface and Application programming - To make a GUI (phone app?)
![Spiral Development Plan](./images/pppm/spiral.jpg)
References for the origami form: [Meduse Lamp](http://sdipl.net/slimsSRL/LoadSRLReport.aspx?CID=2110088069&UMR_NO=177803294956&HV=True)
For the light app: [Philips Hue](http://sdipl.net/slimsSRL/LoadSRLReport.aspx?CID=2110088069&UMR_NO=177803294956&HV=True)
[Bang & Olufsen](https://apps.apple.com/us/app/bang-olufsen/id1203736217)
### Idea 2: Modular Robotic Cube
Another idea is to make robotic cubes, that can be assembled by programming themselves. Some references and ides supporing this idea:
![](./images/pppm/references.jpg)
![](./images/pppm/mblocks.jpg) ![](./images/pppm/cubelets.jpg) ![](./images/pppm/cubli.jpg)
I would also like to use the simplicity and [modularity structure](./images/pppm/brochure.pdf) of [MTM](https://mtm.cba.mit.edu/) but in respect to robotics.
![](./images/pppm/mtm.jpg)
### Idea 3: ...
12. About Page
---
`
You can find it through the [homepage](http://academany.fabcloud.io/fabacademy/2020/labs/barcelona/students/mitalee-parikh/) or [this link](http://academany.fabcloud.io/fabacademy/2020/labs/barcelona/students/mitalee-parikh/About%20Me/).
This diff is collapsed.
docs/images/pppm/cubelets.png

665 KiB

docs/images/pppm/cubli.png

641 KiB

docs/images/pppm/mblocks.png

845 KiB

docs/images/pppm/mtm.png

814 KiB

docs/images/pppm/references.jpg

3.2 MiB

docs/images/pppm/site.png

65.2 KiB

File moved
......@@ -8,6 +8,8 @@
src: "./assets/HelveticaNeue.ttc";
}
body { font-size: 12px; font-weight: thin; }
// regular
// italic
// ultra light
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment