David Montenegro

FAB ACADEMY 2015

Final Project | Assignments | Download | About | Contact

01_28 Principles and Practices

On wednesday 28.01.2015 we’ve got the first online lesson with Neil Gershenfeld, divided in Principles and Practices and Project Management.
The next lessons can be found on the Fab Academy account on Vimeo.

All the documentation can be found here and here.

For this week the assignment was

Make a website to house all your Fab Academy documentation

It should describe:
- who you are
- your potential final project.

For a long time I postponed to learn to make web pages because of different issues but this is the right time that I’ll make a web page on my own.

What I need is:

1.make a dual-boot with Linux Mint or Ubuntu (or whatever UNIX) alongside Windows 7

1.download Ruby 1.install Jekyll (a Ruby gem) 1.download/fork a theme for Jekyll 1.design the site structure 1.write the content and run it locally 1.upload the site to the local archive

Make a dual-boot with Linux Mint or Ubuntu

I’ve simply followed this tutorial. You can find a lot of tutorial like that simply googling “dualboot Linux”. Ensure to download a stable version of Linux from the official website.

Download Ruby

Just download and install Ruby ;)

Install Jekyll

Install Jekyll is very easy.
You’ve just to open your shell and type ~ $ gem install jekyll Now you can run jekyll on your system.

Now type ~ $ jekyll new thenameofyourstaticwebsite Doing so Jekyll create a standard folder system to start building your website, but I’ve used a different strategy: I’ve downloaded a theme for Jekyll

Download/fork a theme for Jekyll

I’ve searched online and I’ve found Solo, an easy and minimal theme for Jekill hosted on Github.
I’ve forked Solo on my own Github repository to have a copy, than I’ve downloaded the zip.

Inside I’ve found *_include
inside this folder you can put the “bricks” of your website and refer them from the layout files

*_layout
inside this folder you can put the different layout schemes of your webpages and refer them from the markdown (.md) files

*css
inside this folder you can find all the css files

*_config.yml
in this file you can store the instruction that Jekyll has to follow to build the site; simply type the title of your website to display it in every page.

*index.md
this is the future .html file; copy and modify this file to make other pages. Remember to follow the markdown syntax

*some other stuff like credits and references of the author.

Design the site structure and run it locally

After get confident with the folders and their file I started organizing my ideas as content structured for a website, so I made different sections: Assignments, Project description, About and Contacts. To see how it looks I just type in the shell jekyll serve Doing so Jekyll runs a local server; all you have to do now is open your web browser and type http://localhost:4000 and the browser will show you your site.

Andrew Munsell explain far better than me all this stuff in this tutorial.

If you want to use Bootstrap you can follow this tutorial http://www.tutorialrepublic.com/twitter-bootstrap-tutorial/

Probably the most important feature of the website is its weight: it has to be as light as possible and so organize properly the folder is a crucial strategic step.
To do so I have a 1st level main folder, several 2nd level folders (one per assignment) and inside the first folder I made the website. Doing so I have all the documentations (images and files) on my computer and can choose, compress and move just the content I’m going to use in the website.

Git and Mercurial

Develop a project implies many incremental steps, but not all of them will be implemented in the final version of the project.
For this reason can be useful think about the development as a main stream that collect all the validated progresses and n side stream where develop side features; when these features are ready they can be merged with the main stream, otherwise they stops as side stream.

This process is named version control and can involve a lot of contributors; to manage this issue it’s recommended to use version control software like Git or Mercurial.
To become familiar with these software I followed this tutorial.
They are shared online repository (or “repo”) where you can upload your progress and merge with others or start from someone else point “branching” his stream. The main difference between Git and Mercurial are shown in the images below

CentralizedVC
DistributedVC

Git is a centralized version control software and so all the contributors commit (or update) to the same repo while Mercurial is a distributed version control software, so every contributor commit or update) to its own repo and then can push (or pull) to (or from) the online server repo.
Sometimes some conflict may occur, especially with very large repos, so it’s a good practice to pull the whole repo, merge, fix the conflicts and than commit and push again. It’s a thug life.

I learned using these two software during the pre-courses held by Fiore before the Fab Academy started.

I made my GitHub repository where I updated my site during these months. You can find it here. I also made a BitBucket profile to train with Mercurial during the pre-courses.