As I am currently managing a FabLab, Woodshop, and PrintLab in a design and art school, I have decided to create a sample booklet that can be passed around the different departments and used as an example of all the tools we have available in the labs. This interactive sample book will be used as an inspiration for the sudents in helping design their projects and showing them how fabrication can be used hand in hand with designing rather than just an output of their design.
Some of the pages of the book will include 3D printing on fabric, inflatables, chainmill printing, flexible materials, wearables, vinyl cuttin electronics, lasercutting, and vacuum forming. A personal goal will be to create a balanced hybrid between craft and digital fabrication to showcase the importance of merging the analogue and digital.
An initial example of how the page design could be is shown in the sketches below. The goal is to keep the size of the overall book small to allow for transportation and not to overwhelm the viewer.
Some challenges with this project is how everything comes together and making sure to use the best representation of this 'new' technique that can inspire the students.
Another challenge will be creating the test model of the actual interactivity of each point above before designing them into the book. It is a project that will test my skills in all the labs and as a designer.
creating the first website, I used an existing template designed and developed by Themefisher. I cloned the website's repo onto my computer in a folder and then through GitBash pulled the cloned folder into my local folder.
after pulling everything into my local folder, I created a new project in my gitlab repo.
to be able to work on the code easily, I downloaded atom and began downloading plugins that will help with the bootstrap elements
Although markdown is much easier for writing content, I did not like the fact that customization was very limited on Jekyll. For that reason I tested another route, using html and transforming it to work through Jekyll. I began to follow a tutorial by JekyllRBwhich is a simple tutorial.
I began by double-checking if the necessary softwares were downloaded on my computer
Then, I followed the instructions to set up a new folder with a configuration file, an html default file, and an index markdown file. From reading the tutorial, I got a superficial understanding that the index.html folder is used for the style and the plugins and the markdown folder is used for the writing of the content. In the html code, inside the body you type {{content}} which references to the markdown code, which is where you benefit from the basic type. In the markdown code, in this case, you may use html commands but when you do, you will need to use the type just like in a normal html code.
However, even with following the steps, I was not able to have the css be accessible to jekyll.
Because I am more familiar with html and because I hope to keep customizing and updating my website, I chose to continue working in html using a similar aesthetic to my master's website. So I copied my folder into a new folder and also copied the jekyll files from the cloned folder from the fabcloud gitlab. With the help of Josep Marti, a 2019 graduate of FabAcademy who currently works in FabLab Barcelona, I was able to link my html to jekyll and push my website on to the fabcloud!
One issue I have faced a few times over the course of 6 weeks has been having commits that are too large to push. One method that I have used each time to fix it was to rebase the head, split the large commits, and the re-push the head. Rebasing is similar to going back and changing time, it is usually used to integrate changes from one branch to another. In this document rebasing is explained in depth, take a look at it to understand the command better. In this section I will explain the steps that I take to fix the issue of exceeding the maximum allowed push size.
Open Git Bash, or terminal. Git Bash has been easier to read for me for the way it is setup with the colors and the command lines
Enter the directory folder where the master is located. Mine is inside a folder on the Desktop. One way to enter the directory is to type cd and then drage the folder into Git Bash. Another, the more official way, is to enter the file location step by step. $ cd Desktop > $ cd fabacademy > $ cd hala-fab > $ cd hala-amer. The command cd means "change directory".
The next step is to check the logs to see which commit your remote head is stuck on.
as we can see, the remote head is 7 commits behind the local head which means that the 6th to last commit is too large to push
Type in "git rebase -i". If you have any unstaged elements you will receive a warning and you will need to add and commit them before rebasing. If you do not have any unstaged elements you will see a page that shows you the previous commits with the word "pick" in front of each one.
Since I know which commit is the one causing me problems I will need to edit that specific commit. Click on "i" and then change "pick" to "e". Pick keeps the commit as it is, e allows you to edit the specific commit.
Once you have changed the options for the commit you need to edit, you will need to exit this page. To exit the page click on "esc" and then type ":wq" which stands for "write quit".
You have now successfully rebased and can edit the commit causing problems.
To double check our steps we can type in "git status". It will tell us how many commits to be edited and how many commits the remote and local have in between.
We have reached the commit that is too large to push. This next step is to detach the head to be able to split the commit into smaller ones. To reset the head, type "$ git reset HEAD~" A detached head means you are no longer on a branch, you have checked out a single commit in the history and can now proceed to add and commit into smaller commits.
Check the log by entering "git log" and then add and commit what is not staged yet. Use "git add" and "git commit -m "your message""
Once everything is commited and we have no more unstaged files, we can begin to push the remote head. To push the head use "$ git push origin <
In my case, the commit was still too large to push, so I had to use "$ git commit --amend" where you can split the commits further
If you also need to amend, type in "$ git commit --amend" and it will take you to a page where you need to type in a commit message. Do so for as many times you will need to split the message.
Checking the log, we see that the new commits we just added are showing. Now we can push each commit separately. Use "$ git push origin <
Now that we have split and pushed the large commit we can continue rebasing. Type in "$ git rebase --continue" and it will take you back to the original commits.
Repeat step 13 until you have pushed all your outstanding commits. Your remote and local head are now caught up and all latest changes are showing on the remote website!
Do not worry if you notice that your code or website have changed while you are rebasing, as soon as you reach the final step all the final changes will be available. The changes are saved in the commits. If you do need to stop rebasing you can type in "$ git rebase --abort" and everything you changed while rebasing will be ignored and the rebase will be aborted.
# Documentation static site generator
mkdocs == 1.5.*
mkdocs-git-revision-date-plugin == 0.3.*
# Add your custom theme if not inside a theme_dir
# (https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes)
mkdocs-material == 9.*
site_url: https://fabacademy.org/2020/labs/barcelona/students/hala-amer/
repo_url: https://gitlab.fabcloud.org/academany/fabacademy/2020/labs/barcelona/students/hala-amer
repo_name: fabacademy/2020/hala-amer