PROJECT MANAGEMENT LECTURE JAN 26, 2011

We followed this link as Neil made his presentation

SYNCHRONIZATION

Rsync is very good for backing up, although it only works one dimensionally
Unison allows for bidirectional synchronization
Not yet listed is clonezilla.org , which allows the backup of a complete computer

VERSION CONTROL

We will use Mercurial, as well as TortoiseHG (the GUI interface). Once you know one version control software, you essentially know them all. The power of version control is that you can manage a large project, and have a number of "working" archives. For example, you can have a production archive and a development archive. Once you are happy with the development archive, you can then merge it with the production archive. This allows one to do "what if" testing. It also allows multiple groups to work together. A record of the project development is maintained, so one can always revert to an earlier version of the archive.

Mercurial requires no central repository. It is peer to peer, and can be worked on offline, and then merged later into an existing archive. Directions on how to work with the MIT archive are available in the class archive.

People get into trouble when they have multiple "heads" in their working archives. Always make sure to merge heads, else you end up with parallel archives. Look for the teal font at the bottom of the tutorial made by Kenny for the sequence of mercurial commands to merge multiple heads.

Think Friar Duck when issuing commands in Mercurial - "Ho Ha Guard Turn Parry Dodge Spin Ha Thrust" - be mindful of the sequence of commands in your local working copy of the archive as in "Pull Update Merge Add Commit Push Heads Merge Update Commit"

Short History

RCS - One file

CVS -Groups of files (now subversion)

Subversion - based on a central server

GIT - What Linus Torvald used to build Linux kernel

Bazaar - What ubuntu developers use

CLASS ARCHIVE

This link brings you to an overview of Mercurial, tutorials as to how to use it, command line arguments, et cetera. Here is a link to one more that I also found useful

WEB DEVELOPMENT

VIM a good text editor, great for writing html pages

Open Office - has presentation software GUI, so you can do web pages by dragging around a mouse

Sea Monkey is also an open source web development platform.

Dreamweaver is popular and well documented, but you have to buy it

BLOGS, WIKIS, CMS

Pick your favorite. Wikis sit on top of text files which sits on top of the archive. Things like WordPress blogs are similar. Drupal is a Content Management System, does more than html, but adds some constraints as well. Same story with Moodle, although it is designed to support course teaching, and used in the academy.

You will have the most flexibility if you write your pages in html. You probably do not need to have a database management system either, this is not really needed until your site gets quite large. Just let your program of choice sit on flat files.

Try not to become a spam vector, if your site gets hijacked. Be mindful of security

VIDEOCONFERENCE

We may figure this out one day. Don't forget to mute your microphone when you are not speaking. We find it works best to unmute when we speak, and mute when we listen. And it is cheaper than a $2,000 polycom.

REMOTE DESKTOP

VNC allows you to operate your computer remotely, which is what Neil is doing in this videoconference.

PROJECT MANAGEMENT PROGRAMS

These all appear to be free, try them out so you can get it together and be more productive with your time.

PROJECT MANAGEMENT PRINCIPLES

I would urge you to listen to the lecture on this, once Alex gets it up at the following link

Basically, Neil gives an overview as to how to manage your time, and the approaches you should take to get things done within that time frame. He recommends a book that you could read in your free time, that is reflective of the concepts he is presenting

ASSIGNMENT

Put your project up as a web page in the academy archive using the tools discussed today. Follow the link given to find inspiring examples of how to assemble a web page from last years students at MIT. It is interesting to note that the initial thoughts for the semester project presented in week one may bear only tangential similarity to the final projects ultimately produced! All fun, clearly much is to be learned as one moves through the tools and techniques available in the fab lab.

COMMENTARY

The need for self guided online tutorials

The points summarized in Wikipedia on the Mythical Man Month are quite revealing. I have been inspired to actually buy a copy on eBay for $5.38 (which includes free shipping).

One of the issues I encounter when trying to get things to work in the fab lab, is that the bulk of my time is spent tracking down software and hardware communication issues. One can generate a nicely rendered file in a program like Inkscape, but run into a variety of problems when one attempts to output that file to one of the machines (in our lab, the most popular being the Epilog 50W Lasercutter). I usually start by "Googling" the problem - the Internet often yields a number of clues that one may pursue. Unfortunately, this approach can lead one to barking up a lot of trees, which may or may not contain any squirels. Although this approach may be productive, it can also be a major time waster. A better solution is to find someone who has made it work before, and have them demonstrate how its done. At the moment however, there are more folks who don't know than who do.

Which leads to the need to adequately document what has worked, and make these procedures easily available to fab lab users. Since it is unlikely that the population of people who know something will keep up with the population of people who know even less, the availability of self guided study examples is the only way I see to grow the capabilities of a fab lab.

Our lab is volunteer operated, and is still very much in the "ramp up" phase. There is a group of volunteers which shows up on a regular basis during our open lab times, and makes every effort to introduce new "walk ins" to the workings of the fab lab. Of course, this reduces time an experienced volunteer can spend becoming more "expert" in her endeavours. This is suspiciously similar to Brooks Law , which more or less states 1) that the more people get involved in a project, the more time will be spent in bringing them up to speed, hence slowing everything down and 2) "the number of different communication channels increases along with the square of the number of people (doubling the number of people results in four times as many different conversations)". In other words, there can be a lot of background noise and interruptions, which in the worst case leads to making small gains for time invested.