Skip to content

Project Management

Did you document it?

Description

The week to get started. We basically gear up to create a home for all our documentation and stuff.

Assignments - Learning Outcomes

# Assignment Fin
1 Explore and use website development tools 1
2 Identify and utilise version control protocols 1

Spirals - Have you?

Spirals Description Done
1 Made a website and described how you did it 1
2 Introduced yourself 1
3 Documented steps for uploading files to archive 1
4 Pushed to the class archive 1
5 Signed and uploaded Student Agreement 1
6 First sketch of your final project. Documented on final projects page

Project management

Subtask Documentation time/min Outcome Fin
Make this table describe process 60 publish table 1
Figure out workflow workflow template 90 template for each week 1
Able to use Git confidently explainer + record commands 120 explainer + record command 1
Manipulate images with IM cheat sheet 30 cheat sheet 0
Manipulate video w/ ffmpeg cheat sheet 30 cheat sheet 0
MKdocs explainer + cheat sheet 60 explainer + cheat sheet 1
write about me page 0 1 publish page 1
Upload student agreement 0 1 publish 1
Sketch final assignment writing + drawing 180 publish 1
Make project priority list Writing 60 publish 1
Current size of website 6,5MB
Total 765m/12.8h

nb. this table and the idea to structure it this way was made by Tessel

MKdocs

My website is based on MKdocs. It was pre-setup for us, but I also like it. I like the non-linear feeling of it: you can define what is important yourself and not based on timestamps as it is done with blogs. I need to adjust it to my needs. What does will be, will probably evolve through fabacademy. Any changes to MKDocs made by me will be documented here in the week one documentation file.

Getting started with MKDocs

Install MKDocs

Open a terminal window on your mac use the following command: $ pip install mkdocs IMPORTANT: do not install with brew! This advice is wrong and will give you trouble later on. (check notes below for the issues I had because of homebrew)

This step also installs a default project folder named my-project with the structure and files needed to set up a basic website.

How to launch MKdocs

  • cd my-project Navigate to the folder containing your docs in the terminal.
  • mkdocs serve
  • Your website is ready for you at http://127.0.0.1:8000/
  • Configuration is done in the yml file.

My spirals for the MKdocs project

Spiral # Spiral aspiration Why Is it working?
1 Get a dark theme... make the site more personal and easier to read 1
2 Get The material theme The page TOC in the right column is just great 1
3 Get a dark material theme best of both world of above spirals 0
4 menus based on subfolder so menu items get created easy 1
5 Copy good ideas from Tessel To add more grandeur to my website 0
6 Get anchor links to link to parts of the same page 0
7 Reorder menu items because week 1 should be on top 0
8 Get a nice url for my website 1

Issues and how I solved them.

Install a theme

Following Spiral 1. I wanted a dark theme. I like the one made by Nora which she explains on here website

First get the theme

$ pip install mkdocs-windmill-dark

Then activate the theme by adding 'windmill-dark' to the yaml file.

Problem Description Debugging Solved
Theme is not changed. MKdocs throws an error. Read below under 'First Error' Theme did not change. I am not sure what the pip command did and where the theme is installed... 0
idem. Could it be that the theme files are at the wrong location? MKDocs and the theme items are located at: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mkdocs Using pip to install a theme seems to place them outside the mkdocs folder. Following common CMS practices I moved the windmill theme into the themes directory in the mkdocs directory. 0
idem. The original theme (readthedocs) that I used was appointed to my site in the yml file without backticks around the name. The windmill documentation suggest I should use backticks. I try to remove them. no
idem I found that the windmill directory is not called 'windmill', but 'mkdocs_windmill_dark'. I tried to change the name to 'windmill' 0
idem using this part of the documentation I will now try to create a special theme directory in my site folder. And use that to change the theme of my site. I changed the YML file to look for local Theme files. Adding the windmill theme there 0
idem Possible solution found "Brew uses a weird non-conventional way of installing MkDocs which does not allow any third party themes or plugins to work with it. – Waylan Dec 28 '19 at 20:37" Reinstall MKDocs with pip 1!

To summarize. If your MKDocs can't be modified, the theme not changed and the plugins do not seem to work, you probably need to reinstall MKDocs with pip, not Brew.

After I removed and reinstalled MKDocs the proper way (with pip) I can also install any theme I want. But in the meantime I have grown a liking for the material theme, and will leave the windmill theme for what it is. For now.

Steps to repeat:

$ brew uninstall mkdocs

$ pip install mkdocs

$ pip install mkdocs-windmill-dark

Subfolders to menu items.

this works on the pretext that you do not specify a menu in the .yml file.

Problem Description Debugging Solved
Menus are not auto-created I want a new menu item to appear when I create a new subdirectory. This does not happen Remove the hand-made menu from the YML file 1

Website modifications.

In the end I decided to go with the material theme of MKDocs as it has extended navigation which I like. You can quickly access the main items from the top menu, the main subitems from the left menu and the different page parts from the right side menu bar.

In the yml file I made a few small modifictions to limit dependencies on external sites (disabling google dependent fonts), changed the side color and added a star to the menu.

theme:
  name: material
  palette:
    primary: deep orange
    accent: deep orange
  font: false
  icon:
    logo: fontawesome/solid/star
  favicon: files/favicon.svg

Also I added a gitlab link to the menu so people visiting the site can quickly navigate to the gitlab repo.


On screenshots

MacOS has a build-in way to make PNG screenshots. I use command-shift-4 a lot. With this keycombo you can make a screengrab of a specific window. And it includes the shadow of the window for nice rendering.

BUT. The PNG format is very big. Files over 1MB are produced. And for my website I prefer smaller website in the JPG format. With the Tinkertool application I changed the default format for JPG.

Also, the default location for screenshots is de desktop. I changed this to a dedicated folder in my Fabacademy working directory.

What went wrong:

Notice that the file format JPG2000 produces even smaller file sizes. But VSC doesn't recognize the .jp2 files this produces. So you better go with the slightly bigger, but more compatible JPG.

the nice window shadow is not part of the screenshot in jpg as it does not have translucency like png has.

On Video

I use the build in Quicktime app to make screenrecordings. These can then be compressed, cropped and converted in the Handbrake app. The resulting file is an .mp4 file.

I made my own video converting preset that will convert any video to the same format with the same dimension. It also will drop audio and cap framerate to 12fps to minimize the size of a file.

I use one of the files to document the steps I made in week 2, but the video did not show up. There was a little error:

Problem: Video does not show Description: There is an error No video with supported format and MIMI type found (see above)

# Hypotheses Debugging Solved
1 The browser does not understand the format Open file locally in the browser works. This means that the browser can play this file 0
2 The html code I use is wrong Try to embed a random other video. One dl-ed from the net for example. 0
3 MKdocs can't find the file. The console outputs an error: [W 210208 16:42:26 web:2239] 404 GET /assignments/week02/ferryclockvid.mp4 (127.0.0.1) 10.04ms WARNING - 404 GET /assignments/week02/ferryclockvid.mp4 (127.0.0.1) 10.04ms Move file to other locations and update path. 0
4 I miss what is going on Ask Henk for help. He said that the file is correct so it must be the path 1

Here is a test with a different video. For this I used the Big Bunny video made by Blender. As this same video is also used on the W3C website in their tutorial on HTML5 video, I think I can assume it works.

nb. it does not work on this website now as I added the file to .gitignore. It is way to big to upload (over60Mb). But It gave me the exact same issues as the other vids did.

This is the code I used:

<video width="320" height="240" controls>
  <source src="../files/week02/assemble_vid.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

In the end it was this:

I used. ../ to make it relative. But it seems not to have been relative enough. When I add another ../ it works. So what annoys me then is that for the videos I need to use:

"../../files/week02/filename.mp4"

and for the picture I can use ../files/week02/filename.jpg

videos require an extra ../

The reason is that I am writing HTML. In HTML you need to consider your present working document also to be part of the path. So, one more directory to consider.


Git & Terminal

Accounts were created. Profile pictures uploaded and connections with Mattermost made. SSO setups pose no challenge for me.

To train myself in Git I followed this tutorial

To train myself in terminal I played this game

Merging existing files

What I forgot was that you have to pull a git repo to get started. So the little structure of files and directories I already had, had to be merged with the new directory. I moved the files from the directory I already had to the newly downloaded directory using MacOS finder.

Getting used to good conduct.

Also I forgot that SSH is a much cleaner and better way to pull from GIT then to use HTTPS so I needed to set up my SSH key in gitlab and use the SSH command on my project page to pull the directory in.

img

My current git workflow

My current git workflow is terminal independent. I use the build in options in Visual Studio Code.

  1. Add all files using the plus icon.
  2. Commit all changes and give your commit a name using the check icon
  3. Upload all files using the arrow up icon.

In terminal you can basically do this as well, but you'd have to remember three words: git add, git commit and git upload. So I find the Visual Studio Code methos a tat easier.

Terminal

You use the terminal to access the CLI. You access the CLI with the shell

A few terminal tricks examples

  • $ identify get file properties
  • $ convert convert an image from one format to another
  • $ convert -resize 20% scale an image

What went wrong

website

  • The making of the website was overly complicated by using brew instead of pip to install mkdocs.
  • I am still struggling to make my website mine: modifications to the YML file lead to loads of errors in the terminal and no changes on the website. Time-supply management forbids me to spend more time on this this week.
  • I spend a lot of time to think about the right structure for the website. In the end I copy-pasted a lot of structure from previous fab-lab students. I love the markdown/directory simplicity of making a website and how this allowed me to experiment with different structures.

Git

  • The tutorial I used never mentioned the use of a password (or any other mode of identification) in order to push local changes to the remote repo. Still I had to enter a password (in this case of Github_)

On repo sizes

  • My local repo is 75,9MB of which 74,8MB recites in a hidden .git folder.
  • The files I created in my local repo are 1.1MB combined.
  • Gitlab reports my that remote repo is 7,9MB

How am I supposed to make sure that my repos don't get to bloated if all the numbers are inconsistent?

This Stackoverflow answer helped me to shrink my .git folder.

git gc --prune=now --aggressive
git repack

Project management general

I really need to get used the supply-side time management. And, now that the fabacademy has really started i becomes apparent how it conflicts with my day-to-day activities and how procrastinating is really no longer an option.