Skip to content
Snippets Groups Projects
Principles and Practices + Project Management.md 4.88 KiB
Newer Older
Mitalee Parikh's avatar
Mitalee Parikh committed
Principles, Practices and Project Management
============================================

(old)  

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/pppm/cubes.png)
Mitalee Parikh's avatar
Mitalee Parikh committed

##### Week of 29 January 2020

##### 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
======================

This week I learned about version control, web development using SSGs, and sketched out an initial final project idea.

Git
---

I've used git a little for my Master's documentation. But till now, just used some basic commands like:  
`git init` to initialise a new repo  
`git status` to check what's happening with the current directory  
`git add .` to add all changes from the working directory to the staging area  
`git commit -m "action msg"` to commit changes from the staging area to the local repo  
`git push` to push changes from the local repo to the remote repo  
`git pull` to pull files from the remote repo to the local repo

I find this diagram very helpful to visualise the directory structure:  

Mitalee Parikh's avatar
Mitalee Parikh committed
![](./images/pppm/git-structure.png)
Mitalee Parikh's avatar
Mitalee Parikh committed

To learn more about branching, merging and other actions, I did a tutorial:[](http...)

Found my existing SSH key using `~/.ssh/id_rsa.pub`

Copied and added it to my FabCloud account.  
Then I cloned the default repository to a local folder using:`git clone git@gitlab.fabcloud.org:academany/fabacademy/2020/labs/barcelona/students/mitalee-parikh.git`

Web Development
---------------

I recently learned how to make a website using HTML, CSS with a Bootstrap framework. To develop my webpage, I wanted to explore different Static Site Generators before fixing on one. So I started by setting up both Mkdocs and Jekyll. Hugo was another option I want to look into in the coming weeks.

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.

### Setting up Mkdocs

Setting up Mkdocs was a similar process. 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`

### Themes

I tried to clone and modify some jekyll themes I downloaded from [rubygems.org](https://rubygems.org/). While pushing it to gitlab, I wasn't sure what files to keep from the default fabcloud repo. So I replaced them all, but there was an issue with my pipeline. I think it has something to do with the config.yml file. While I figure that out, I'm using this default template to document my process.

### Useful links

*   [Jekyll](http://jekyll.org) [tutorial by Giraffe Academy](https://www.youtube.com/playlist?list=PLLAZ4kZ9dFpOPV5C5Ay0pHaa0RJFhcmcB)
*   [Markdown](https://en.wikipedia.org/wiki/Markdown) [basic tutorial](https://www.markdowntutorial.com/)
*   [Mkdocs guidelines](https://www.mkdocs.org/)

### Misc Practices

Before pushing, I used `ncdu` to check sizes of files. To compress my images I installed and used [ImageMagick](https://imagemagick.org/index.php). I found it very efficient to quickly convert or compress images for the web, and also to make quick GIFs.

After some trial and error, i figureed these basic commands and settings I can use for my workflow:

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`

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:  
`magick identify -verbose focus.gif`

I also check individual file sizes by changing current directory in terminal and using `du -sh *|sort -n`