Home page

Principles and Practices, Project Management

Project Design

The aims for this week were to:

1. Build a personal site describing myself and my final project

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

3. Update it to the class archive

4. Do a git tutorial.

XYZ Globe

I digested Prof. Greshenfeld's (Neil) lecture and I used ideas from that lecture in my project development. What stood out most was the idea of small robots making big things. Another influence from the first lecture was what Neil said about Fablabs making machines that make things rather than just using Fablabs to just make things. I eventually (after a couple of sleepless nights when my brain was firing in all directions!), settled with an 'educational tool' (a toy)as an idea for my final project. I am going to attempt to build a CNC world globe. Thinking about what Neil said in the lecture about the concept of spiral projects, I aim to start with something straight forward, ie. building an interlocking sphere out of plywood or acrylic. It will have a shaft and bearings, a support arm that has a rack and pinion, and a base that is capable of safely housing an electronics system. If all goes well, I would then like to set it up with stepper motors culminating in the Z axis first applying a skin of some sort, then driving a pen that draws weather maps or other climate events of relevance on the surface. As Neil said in his lecture, this may change as the course progresses and is just an idea to work with at this early stage. My intention is to build what is affectively a CNC machine. The outcome is going to depend on my ability to produce stepper motor drivers in our Fablab, and if I can find a way to use them that is Fablab approved. Like I say, early days yet.

Web Page Production

I viewed You Tube tutorials, read various articles, then went back to basics. I downloaded Brackets as my text editor because it is open source, aesthetically pleasing and intuitive. I worked through some of the Dreamweaver tutorials and recognised the potential of the commercial development products. However for the duration of my Fab Academy experience I want to get a good foundation in low level programming, so I used W3 School and Brackets I have been looking at previous student pages for design inspiration Sigridur Helga Hauksdottir has a very concise, well documented and easy to navigate website.Ronald Postma's site has clean, accessible and easy to understand source code. Looking at these and other websites and their code is a good way to learn.

Getting to Grips with GIT

I found GIT particularly challenging to understand. I needed to gain confidence in applying GIT early on to help me begin to understand it (that's my learning style). After running through the process and making my first push I began to do more detailed research.I downloaded the PDF book Pro Git, from here. This book is also available in html from there, which will be my main go-to-place for git code problem solving and recipes. I have listed some descriptions (from Pro Git) of the basic commands I'm using (so far). I found it particulary useful to know about the variables in command uses, such as when -m is added to git commit, for example.

GIT STATUS:"The git status command gives can be used to obtain a summary of which files have changes that are staged for the next commit."

GIT FETCH: "Fetch branches and/or tags (collectively, "refs") from one or more other repositories, along with the objects necessary to complete their histories."

GIT ADD: "This command can be performed multiple times before a commit. It only adds the content of the specified file(s) at the time the add command is run; if you want subsequent changes included in the next commit, then you must run git add again to add the new content to the index. (-A --all --no-ignore-removal Update the index not only where the working tree has a file matching but also where the index already has an entry. This adds, modifies, and removes index entries to match the working tree.)"

GIT MERGE: "Incorporates changes from the named commits (since the time their histories diverged from the current branch) into the current branch. This command is used by git pull to incorporate changes from another repository and can be used by hand to merge changes from one branch into another."

GIT COMMIT: "Stores the current contents of the index in a new commit along with a log message from the user describing the changes.(-m --message= Use the given as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.)"

GIT PUSH: "Updates remote refs using local refs, while sending objects necessary to complete the given refs."

Download Illustrator file, from this page.