Skip to content

Week01

Assignment

Principles and Practices (part 1 of 2)

  • Plan and sketch a potential final project

Project Management (part 2 of 2)

  • Read, sign (add your name to) the student agreement and commit it to your repo
  • Work through a git tutorial.
  • Build a personal website in the class archive describing yourself and your final project. Refer to the lecture material for examples.
  • Upload parts 1 and 2, to the class archive.

Final project idea

Setting up my homepage

First of all, I thoughtlessly sat up this site before this class. 💦 When I looked around seniors’ sites, I found most of they are using static site generator and I decided to write my homepage with markdown. So, I did as blow.

Tools

  • macOS - I’m using macOS because it can use both desktop application and Unix application.
  • VSCode - When I think about Markdown editor that has version control system capability, I remember VSCode. The earlier option is CotEditor - a text editor I’m usually using, git command and GitKraken. But I canceled this plan since I need to apply for subscription if I want to handle private repository with GitKraken.

To access FabCloud GitLab

Since I’m authenticated with SSO, GitLab noticed I need to set password or personal access token. I don’t want to have passwords as possible as I can, so I prefer to use my existing pubkey to push and pull. So I copied my pubkey as like this

% cat ~/.ssh/id_rsa.pub | pbcopy

and pasted on SSH Keys page on FabCloud GitLab.

Also added a configuration below to my ~/.ssh/config.

Host fabcloud.org
 User ytsuboi
 HostName gitlab.fabcloud.org
 IdentityFile ~/.ssh/id_rsa

When I try to clone my repository, VSCode noticed Git: Host key verification failed. so that I solved this issue by doing like this.

% ssh -T git@gitlab.fabcloud.org

Finally, I successfully cloned my repository from FabCloud to my local. I put it inside my Dropbox directry to be able to write from anywhere and reduce the number of commit.

Static Site Generator

I heve many experience to write documents with Markdown on Wiki or GitHub Pages but I’ve never used static site generator. When I looked aroung, most of they are using MkDocs on here. MkDocs was written in Python ( I love Python more than JS. 😛 ) and this is first time for me to use CI on GitLab so that I prefer established way.

mkdocs.yml

site_name: Yoshihiro Tsuboi - Fab Academy documentation
site_description: Fab Academy documentation
site_url: https://fabacademy.org/2026/labs/nagoya/students/yoshihiro-tsuboi

site_author: Yoshihiro Tsuboi
docs_dir: docs
site_dir: _site
copyright: "© 2026 Yoshihiro Tsuboi - Creative Commons Attribution Non Commercial"

theme:
  name: material
  palette:
    primary: grey
    accent: deep orange
  icon:
    logo: material/school
    favicon: file/favicon.ico

features:
  - navigation.instant
  - navigation.tracking
  - navigation.sections
  - navigation.tabs

extra:
  generator: false

markdown_extensions:
  - extra
  - smarty
  - admonition
  - codehilite:
      guess_lang: false
  - toc:
      permalink: true

Reference: (https://www.mkdocs.org/user-guide/configuration/)

I don’t want to install MkDocs on every computers I’m usually using, so that I decided to use GitLab CI to run MkDocs. To use GitLab CI, I just need to write configuration in YAML.

.gitlab-ci.yml

image: python:alpine

before_script:
  - pip install -r requirements.txt

pages:
  script:
  - mkdocs build
  - mv _site public
  artifacts:
    paths:
    - public
  only:
  - main

Reference: The basics of CI: How to run jobs sequentially, in parallel, or out of order

If you have FabCloud account, you may able to see my repository on here.

💡 At my first commit and push, I had a problem. CI doesn’t run even if I push something!! After some hassle, I finally found the roots of problem. It was branch name!! I wrote master as target branch name. For me, the name of main branch is master not main. 😆

Student Agreement

Fab Academy Student Agreement

The Fab Academy is responsible for:

  • Teaching principles and practices of digital fabrication
  • Arranging lectures, recitations, meetings, and events for the class
  • Evaluating and providing feedback on student work
  • Offering clear standards for completing assignments
  • Certifying and archiving student progress
  • Supervising class preparation
  • Reviewing prospective students, instructors, and labs
  • Providing central staff and infrastructure for students, instructors, and labs
  • Fund-raising for costs not covered by student tuition
  • Managing and reporting on the program’s finances, results, and impacts
  • Publicizing the program
  • Promoting a respectful environment free of harassment and discrimination
  • Encourage a diverse, accessible, and equitable community

I am a Fab Academy student, responsible for:

  • Attending class lectures and participating in reviews
  • Developing and documenting projects assigned to introduce and demonstrate skills, in enough detail to be able to reproduce them
  • Honestly reporting on my work, and appropriately attributing the work of others (both human and machine, including AI prompts)
  • Being prepared to answer questions about my work
  • Allowing the Fab Academy to share my work (with attribution) in the class for purposes compatible with its mission
  • Working safely
  • Leaving workspaces in the same (or better) condition than I found them
  • Participating in the upkeep of my lab
  • Ensuring that my tuition for local and central class costs is covered
  • Following locally applicable health and safety guidance
  • Recognizing limits on lab and staff time
  • Promoting a respectful environment free of harassment and discrimination

Signed by committing this file in my repository,

Yoshihiro Tsuboi

Checklist

  • [ ] Sketched your final project idea(s)
  • [ ] Described briefly what it will do and who will use it
  • [x] Made a website and described how you did it
  • [x] Created a section about yourself on that website
  • [ ] Added a page with your sketch and description of your final project idea(s)
  • [x] Documented steps for setting up your Git repository and adding files to it
  • [x] Pushed to your class GitLab repository
  • [x] Signed and uploaded Student Agreement