Week 1 - Principles and Practices, Project Management

by Javier Hernández


Assignments

Build a personal site describing you and your final project.

Plan and sketch a potential semester project and add it to your website.

Upload it to the class archive. Work through a git tutorial.


Making a website to share the information requires a good documentation, the information should be useful for others, that is why we must document to the maximum each step of the process of realization of the assignment. Mistakes are as important as the success


Personal site

Learning from 0 is difficult so for the creation of the web site I used a page already created as a base, modifying the bootstrap styles, menus, and contents according to my needs and desired aspect.

Website structure. It would have been simpler to start the page with little information in such a way that we would make it very light and easy to load. In my opinion, if the content of the home page does not suppose an excessive weight in kb it is preferable to show more options and retain the visitor

To build the web site I have used Brackets and Bootstrap styles.

I used this tutorial to understand what I had used to get started.

  • Tutorial

  • I also used a tutorial to understand how Brackets workes. It is also important to know how to write in html, fortunately I already had some experience creating my own webpage in wordpress, here you can learn by typing in "visual" and then see the code in "text". Another way to learn..

  • Tutorial
  • It is also important to define a directory structure that allows working orderly and that anyone who wants to find something in my repository can find it. This is the structure that seemed right to me.


    Making a website is also talk about stoge and file size. In Fab Academy we have a limit for the size of the web but it's something to take care always.

    Reducing the size of the design files is dificult, but we can always compress them into a ZIP or RAR file. They are to be downloaded and the uncompress.

    Images are different, they have to look good but some of the times they are oversized for a web page. Inthis case I'm looking for images no bigger then 100kb, 700xY dpi (dots per inches). Somethimes reducing the image size had bad results and maybe it's better to use more kb and better resolution (dpi) looking for an image that really explains or transmits what you want. We should look for that balance.

    I like usin Gimp and its Batch Image Manipulation Plugin to manipulate a resize a group of images at same time

    Another nice way to control the size of the files is to list them, in this case we can use Gitbash with this command line du -sk * | sort -n

    It can be listed by folders and then go deeper into each folder.

    To show a video on the website is better to upload the video to Youtube and then enbebed the video.


    Working whit GIT

    Git is a free and open source distributed version control system (VCS) designed to handle everything from small to very large projects with speed and efficiency.(extracted from git's page) A complete definition and explanation here in the link below

  • Git Basics

    The next step is to upload the information to git whit Git Bash

    "Git for Windows focuses on offering a lightweight, native set of tools that bring the full feature set of the Git SCM to Windows while providing appropriate user interfaces for experienced Git users and novices alike."

    We can also say that thet is a software for communication between the remote server of GitLab and a local computer that uses its own language.

  • Git Bash

    The basic commands are:

    $ git pull - Incorporates changes from a remote repository into the current branch. In its default mode. Updates your files, from the repo to your pc.

    $ git status - Displays paths that have differences between the index file and the current HEAD commit, paths that have differences between the working tree and the index file, and paths in the working tree that are not tracked by Git

    $ git add. - This command updates the index using the current content found in the working tree, to prepare the content staged for the next commit. It typically adds the current content of existing paths as a whole, but with some options it can also be used to add content with only part of the changes made to the working tree files applied, or remove paths that do not exist in the working tree anymore.

    $ git commit -m - Stores the current contents of the index in a new commit along with a log message from the user describing the changes.

    $ git push - Updates remote refs using local refs, while sending objects necessary to complete the given refs.

    I have copied and pasted part of the definitions of the main commands but it is necessary to read and understand this information on the git page, there are many options and variations which we will find as we work

  • Tutorial Basics
  • Tutorial Video
  • The purpose of Git is to manage a project, or a set of files, as they change over time. Git stores this information in a data structure called a repository.

    A git repository contains, among other things, the following:

    A set of commit objects.

    A set of references to commit objects, called heads.

    The Git repository is stored in the same directory as the project itself, in a subdirectory called .git. Note differences from central-repository systems like CVS or Subversion:

    There is only one .git directory, in the root directory of the project.

    The repository is stored in files alongside the project. There is no central server repository.


    As a Continuing Student I found that some things had changed

    I have it.

    I have been granted Developer access to the Academany barceloan Git group. My name is there but I have no content.

    Now we work with GitLab and what I'm seeing is a very versatile tool. Now we can manage our repository and facilitates collaborative workflow.

    I need to clone my previuos repository, so a create a new folder and copy the existing files into it.

    Before coning I have to check if a already have a SSH KEY

    Open GitBash and load de new folder and tipe

    cat ~/.ssh/id_rsa.pub

    I already have a key

    Copy the SSH key and paste it in to the Key window.

    Before cloning we must create a file that will enable my repository to be visible.

    .gitlab-ci.yml.

    Now! I can clone the repository. For this I type "git clone" on Git Bash

    After clone now I can make git push, fit pull, git commit as I descibed before.

    Gitlab sends information by email about the actions we make in gitlab, I recivede an email and it seems that I should reduce the amount of kbs.

    Here updating


    Project - CNC Hot Wire Foam Cutting Machine

    Background

    As a lab manager I must be attentive to the processes, activities and needs of Lab users, most of the users are students of mechanical engineering, electronics, aerospace and product design.

    In work carried out during this year we have detected the need to have a foam cutter to manufacture wings quickly.

    In the Lab we have helped in the manufacture of prototype rc aircraft through the tools we have, the prototypes have been manufactured in a successful way but the manufacture of the wings requires a lot of time. What makes the test flights are a real challenge especially for the rc pilot as it faces an unknown plane, in the first flight always crash and the wings are the ones that suffer the most breaks. We need a faster way to fabricate wings.

    Initial concept

    Design tips:

    Replicable.

    Control the hot wire tension.

    Initial testing with arduino.

    Temperature control.

    Design and manufacture of PCBs to replace some standard components..

    Comply with safety regulations and occupational hazards..



    Copyright © FabAcademy 2016