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
masteras target branch name. For me, the name of main branch ismasternotmain.
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