Week 1: Project management

Context and my previous skills

I have basic HTML skills going back many years, and also code for my art practice. I am not a web developer, nor am I a professional programmer. I had very limited experience with version control. But my experience in both of these areas has already given me some opinions about these areas of development, and guided how I made decisions:

First, there are a billion solutions to any of these tasks. Don't spend too much time surveying them all. Survey a couple, choose one that suits you.

Second, web design is not fun. Pick a solution that requires minimal futzing. I am partial to Wordpress, but because I understood that the Fab Academy documentation should be as independent as possible (not relying on external sources or databases), I bit the bullet and committed to finding a template to modify.

Making Git work

Git tutorials

I followed the video of Fiore's recitation and the video suggested by Emma.

Installing Git

Installed xcode/git following these instructions. Opened a terminal, typed git --version and installed Xcode. After it was installed, typed git --version again to confirm that git was installed.

Configured git with git config --global user.name "name"and git config --global user.email "e@mail"

Followed Fiore's example of experimenting with commands like git init, git rm, etc.

Getting gitlab connected

I had already configured my login information before the Fab Academy began.

I created SSH keys with ssh-keygen. Moved the private key file to ~/.ssh, and copied the public key in Gitlab under Settings - SSH Keys.

Tried cloning remote repository. Got some errors:

egon:testing david$ git clone david.mccallum@gitlab.fabcloud.org/academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git
fatal: repository 'david.mccallum@gitlab.fabcloud.org/academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git' does not exist
egon:testing david$ git clone david.mccallum@gitlab.fabcloud.org/academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git  | aha -b -n | pbcopy
fatal: repository 'david.mccallum@gitlab.fabcloud.org/academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git' does not exist
-bash: aha: command not found

Tried copying the link directly from Gitlab.

egon:site david$ git clone git@gitlab.fabcloud.org:academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git
Cloning into 'david-mccallum'...
The authenticity of host 'gitlab.fabcloud.org (' can't be established.
ECDSA key fingerprint is SHA256:Rphnjz211wPLjTJcyAip0xozt0hOoFgT9hl5eZfxzd0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.fabcloud.org,' (ECDSA) to the list of known hosts.
git@gitlab.fabcloud.org: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Followed Henk's Git tutorial. Edited ~/.ssh/config and inserted this text:

Host gitlab
Hostname gitlab.fabcloud.org
User git
Identityfile ~/.ssh/fabacademy-gitlab
IdentitiesOnly yes

Tried cloning again, using the syntax from Henk's page. Notice the "gitlab:" in the place of the user@domain:

egon:testing2 david$ git clone gitlab:academany/fabacademy/2018/labs/fablabamsterdam/students/david-mccallum.git

I have no idea why this change fixed the problem.

From advice from Johanna, added .gitlab-ci.yml to make the git repository viewable as a web site. Used gitlab's interface. +New File - Template - .gitlab-ci.yml.

Making a website

Looked for HTML templates, googled "html5 templates". Found references to HTML5 Up and Bootstrap , amongst others.

A friend and previous student, Troy Nachtigall had used HTML5 Up. I browsed both HTML5 Up and Bootstrap, and selected an HTML5 Up template that suited my needs: simple, pleasing design, accommodated images and text, main page can list categories like the weekly assignments, etc. Settled on Phantom.

I have experience using many text editors, such as Smultron, Textwrangler, and others. I hadn't used them in a while, and Johanna suggested Atom. I looked at it, it looked fine. I chose to use it.

Began modifying the code to document my work. I started with the weekly assignment page to work out the kinks of working with the code and establish a standard practice, then proceeded to other pages.

Image size was a problem. Sometimes compressing images from my phone made the file size BIGGER, and trying to keep them below 100KB made them ugly. I settled on results that I think look ugly, but satisfy the space limit. Used Gimp batch convert to shrink the images.

Updating the website

To stage file changes I use the command git add .. To commit my changes to my local git repository I use the command git commit -m 'information about the changes'. To update the content on gitlab I use the command git push -u.

Atom also has a git panel integrated into it. New and updated files can be staged and committed with a single click. I have been experimenting with this, but it seems be work well with my workflow.