1. Principles and practices¶
This week I started to using the Gitlab and git bash, got ready for the next coding and recording, and wrote down my final project idea.
Gitlab Learning¶
At first, I didn’t know how to use Git Bash or command, so I search online and learn how to open one file by command.
Reference
- Git tutoria
- revert command
- Readme
- Troubleshoot SSH issues
- Git@gitlab.com: Permission denied (publickey)
- MkDocs Installation
Follow Readme File¶
- Generating one SSH keys in command. Use ‘’‘ ssh-keygen - t’‘’ in a terminal to generate an SSH key pair for my computer, and always press Enter for the files in which to save the key and passphrase. My instructor suggest me that I shouldn’t make any changes, in case there may cause some errors.
- Add an SSH key to my Gitlab account. Sign in to Gitlab, select Preferences and SSH Keys. Open the id_ed25519.pub file by notebook, copy the public key and paste it to the Key box and Add key. The public key starts with “ssh-ed25519” and end with the comment that you input.
- Verify that I can connect.
Run
ssh -T git@gitlab fobcloud.org
in a terminal, pressyes
to continue connecting. And I get the welcome message.
- Clone a repository.
Use a terminal to open the file where you want to put the Fablab folder .And Run
git clone git@gitlab.fabcloud.org:your/project/path.git
in Git bash. Choose Clone with SSH and copy the URL, it replaces your/project/path.git.
- Install MkDocs.
Open the Git Bash, input
python --version
andpip --version
and find my computer doesn’t have this two softwares. I install the lastest version Python , choose to install Pip addtional function . And runpip install --upgrade pip
to update the software and prepare to install MkDocs. Runpip install mkdocs
and install MkDocs.
-
Configure my local git environment with same details used on Gitlab-Fabcloud.
git config user.name "you name"
git config user.email "you@example.org"
Git Bash¶
I follow the Git tutorial to learn how to use the Git Bash to download and upload the changes and folders.
-
As the space is limited, each push (upload) the size of folder should no more than 10 M. Otherwise, the bash could commit but couldn’t push.
-
Git Push is to upload the local folder, Git Pull is to download the folder online.
-
The way to upload folders is to input
git status---git pull---git add -A---git commit -m"comments"---git push
in order.
How to write the website?¶
As I have no idea about programing and HTML, so my instructor suggests me to use Markdown to write the websites. Compared with HTML, Markdown is much more simple and easy-to-use markup language that I can use to format virtually any document. It’s friendly to someone like me that writes the websites first time. I install Typora software and use it to write my pages with Markdown.
As I import many pictures in the pages, and put them in the “image” folder. Sometimes the pictures couldn’t open if I change the location of the files, so I change the Perference setting in the file, choose “Image—Use relative path if possible”.
Problems and errors¶
-
Git@gitlab.com: Permission denied (publickey) in Windows. I fail to connect the fabcloud at first. I try several commands and methods, they are not useful. Until I read one blog, the writer suggests to find the error from local setting and from myself. So I delete the public key and generate a new one, follow the instructions. And it works.
-
Once the folder is bigger than 10 M, and I forgot to check. So the commit in Git Bash works well but the Git Push didn’t work. I tried the revert command,it did revert the folder to the last version. However, I commited twice for the big folder as I didn’t realize the error was caused by the space limited. So I used the “reset command”, and it worked and the two commit I made cancelled.
-
I forget to Git Pull before commit and push, and there’s something new changing on the website. So Git Push failed. And the file failed to merge with each other.
So I use Git reset HEAD^ –hard to cancell the lastest commit, pull/download the changes on the website and push/upload the folder to the website.
-
If these still doesn’t work, I maybe delete the old folder and clone the folder online again.
-
Git pull will merge the files online and the local files, sometimes it shows “Please enter a commit message to explain why the merge is necessary”.
I search it online and find the website recording several ways to solve this situation.
Follow the instrciton in the picture above, it backs to the “Git Pull” and run the command successfully.
Final Project Idea¶
Idea 1¶
I found the science labs in schools are very different, several labs are rich in equipments, materials and chemicals, while other schools have limited materials and equipments, even some students even don’t have a chance to look at the machines. Some nice teachers will borrow chemicals or machine from other labs, but students always need to go to another school. If students can remote operate the machines online, or the lab robot can do the experiments for students, then more students could attempt the ideas and explore their experiments.
So I want to design one robot, which could do the experiments for people by remoting operation. The first step may be to create a robot that control one equipment by bluetooth or wifi, which is similar to the Huawei Smart Speaker.
Research
Marco Miretti shares one remote control lab system in github, the idea is
Idea 2¶
Things are made by things, the machine is made by machine.
I am inspired by the sentence, and curious about what the machine is.
Idea 3¶
I always forgot my phone, and spent lots of time to find it. Many people met this situation once. Maybe I can create a smart ring that can help me to find my phone in a room. The ring could show me the direction of my phone by different colors represent different directions. It’s better to judge the distance between the ring and the phone.
How does the smart ring have the functions? A phone stick can paste to my phone, can links to the ring. Its singal can be detected by the smart ring.
Idea 4 —Alisa’s eyes humidifier( “Ayes”)¶
This is my first time to design and make something totally by myself. I have many ideas and don’t know how to choose one as the final project. Until my instructor suggest me to spend several days to record my life and find what I really needed. Then I found my eyes alway feel dry and sometimes painful as I like wearing contacting glasses and watching the PC screen whole day long. So I plan to design and make one small humidifier for my eyes.
Timetable¶
By May: Draw the rough idea of the final project
By the end of May: 3D model of the final project and print, finish electric board and code testing
By June 6: Complete final version Ayes, improve the shape, function
By June 14: Finish Slide and Video
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
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
- Honestly reporting on my work, and appropriately attributing the work of others
- 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 to cover local and central class costs is covered
- Following locally applicable health and safety guidance
- Promoting a respectful environment free of harassment and discrimination
Signed by committing this file in my repository,
Xiao Liu