Principles and Practices




Final Project Idea

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.

Inspiration Projects

Layout Design

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.

Concerns / Challenges

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.




Project Management




Existing Git

As I am enrolled in the Masters of Design for Emergent Futures in IAAC and FabLab Barcelona, we were asked to create a website for the same reason we have this fabacademy website. I documented some steps and issues that came up while working on my first website.

my MDEF website

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

FabAcademy git

My only experience in coding was creating the first website and for that reason I did not unerstand many of the connection between the languages and applications. As it is recommended to work with Markdown for the FabAcademy documentation, I wanted to give it a try. Through GitBash, I downloaded markdown, ruby, ruby gem, and jekyll. That was when my first issues started because everytime I tried to download them, a pop-up would show saying it was not understood. To find the fix to the problem I watched a youtube tutorial by Mike Dane, the Giraffe Academy, which was very helpful as he has an album of videos showing step-by-step how to create a new website. After being able to install the necessary language I began to work on setting up my repo. I cloned the folder from the fabcloud website, downloaded it into my local folder, and then used GitBash to find my existing key which I then pasted into my FabCloud GitLab repo. I then began to follow tutorials about Markdown to understand how to write my content. One tutorial that gave all the basics was a website that allowed you to follow step-by-step the basics of the content writing.



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!



I copied my MDEF website, the masters program website, and pasted the files into a new folder. I then copied the folders from my FabAcademy website into the same folder. The mistake that I did was when I was copying my MDEF website, I accidentally also copied the .git hidden folder and the .gitlab-ci.yml which meant that it became attached to the remote/repo that is for my personal website. I reverted all the changes made from the last commit before I started working on html. I ran into many problems while trying to revert and I downloaded gitKraken to better understand the reverting and merging of the commits. The process of separating the folders once more was very complicated, took a number of hours and the help of a few tutors from the FabLab and for that reason I was not able to document the steps.

Troubleshooting

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.

failed message: exceeds maximum allowed file

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.

2024 Update

As I am a continuing student from 2019/20, I have a number of assignments already completed from the original year with the new assignments. In the old website, I used html primarily. This year I am more comfortable and it is more convenient to use mkdocs. For that reason, I merged my old website with the new mkdocs material template website. In there I relinked all the weeks depending on whether they are old or new. (old html and new md). The merge was done locally by cloning the repos, and then copy pasting the new md template into my html old website folder.

The requirements text needed to be changed to:
# 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.*

In the mkdocs.yml, I also needed to change the site url to match the old website:
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