Skip to content

Notes week 1. Personal webdevelopment and version control.

  • Link to recitation notes In the world Corona keeps us locked in our homes. Riots raged last weekend in many cities in the country. The lockdown with curfew caused marginalized youngsters to join the demonstrations of the corona deniers. And turned them into looting and rioting. Is the total frustration among young people about the hard politics of the last 10 years finally boiling over?

Local and Regional meetup

We briefly looked back and (re-)introduced ourselves and the labs.

Nadieh did a great job in documenting how to setup gitlab with VSC. In the break we used her documentation and her guidance to set it up. I am now forced to write a similar documentation because I keep on fighting this...

Around the world

Digital Fabrication Revolution

Neil has a nice analogy: comparing Fablab development to Moores Law (Cramming more components onto integrated circuits) on one side and Ribosomal RNA on the other side.

Neil claims that the fablabs evolvement is doubling every n-years. Just as Moores law is. And that the ultimate goal of fablabs is to miniature automated machines that can assemble themselves. Apparently also the project von Neuman was working on towards the end of his life.

The philosophy of fablabs boils down to: - we look at the intersection between technical and biological - we want to create machines that can create themselves - It is about scaling; machines become more powerful and smaller. - You can get a fablab at home at one point. - In the end fablabs should be as ubiquitous as IoT is today.

This week Neil introduced web development and version control and transfer of data between machines.

Data transfer and version control

On a low level rsync is really great. (I use it to transfer big amounts of data between backup machines). But we do not just want to move data. We need Version Control. Or, as Neil puts it:

"A surprising versatile and profound topic"

Version Control is great because it: - builds a history of your actions as you work on a project - creates different versions of the same project - allows you to work together on different parts of the same system. - makes it possible to work from different machines on the same project.

In a nutshell:

"It is a really core skill to understand. All you do is going into version control".

There are many different options for software to do version control, but Git is mostly considered the best.

Git & Terminal

Main link repo can be found here Git is distributed. It's made by Linus (and named Git as Git is a word for an annoying person).

  • Make sure you don't commit files that don't belong in the server.
  • Pull and merge before you push to avoid conflicts.
  • Use local links (think about moving the site).
  • avoid spaces in paths; use underscore if needed.
  • NCDU is a utility to check files sizes. (installed with Homebred brew install ncdu)
  • Imagemagik needs to be installed
  • ffmpeg as well. Also think about remote storing of videos
    • but you can also store your videos remotely.
  • start a testing repo. For practice and for documentation.

Also, do a Git Tutorial! Check: http://academy.cba.mit.edu/classes/project_management/index.html

Getting started with your project.

There is a build in search engine to help you search the already made projects. Use that to think of a final project. The earlier you settle on it, the easier it will be.

Webdevelopment

  • First there is a server (NGINX for example)
  • then there is code: html, css etc. Mozilla has great templates in HTML5
  • Choose an editor: Vi(m), emacs etc.
  • Then there is javascript, bootstrap and jQuery (will be used to create interactivity)
    • javascript is ugly. Sadly it has become very important.
    • Bootstrap is a framework for JS
    • JQ is a frame work for JS
  • Markdown; let's you write a website with human readable symbols. It creates HTML from that.
    • you can embed HTML in markdown
  • Then there Site generators; tools to view your md files; MKDocs, Hugo, Jekyll etc.
    • I currently use MKdocs. This might change as need develops.
  • CI/CD - continues integration and continues documentation: this magic will be explained later. (but sounds like something I already do)
  • We're not gonna talk about CGI and PHP for security reasons. This underpins the need to migrate my own website away from Wordpress as well..

There is an MCU zoom room; one that you can walk into. Also on Saturdays for the open time.

Some process tips. - Use Spiral Development (make sure that after you are done with a small tasks; you have something working, before moving to something bigger) - I seem to already do this by default! Hahaha! - Read the mythical man-month book (no matter how many woman you put to work, it takes 9 months to make a baby) - Plan in advance what you are going to do.

To do list at the end of the talk