Rapid Web Development

Unit 1,

Class 1

Introduction & Gitocalypse

I'm chris



I mainly work in Drupal (PHP/HTML/CSS/JS).

I collect development frameworks like my wife collects shoes. 

I have launched many large sites. I would like to share with you how to do the same.

bring your own hardware

The Linux-y-er the better.

I cannot stress this enough.  The vast majority of the internet is built upon *nix code. You would be wise to become familiar with this world.

Class resources

  1. Class discussion/information: http://goo.gl/f8oGMe
  2. Slides: http://www.slid.es/illepic
  3. Curriculum: http://goo.gl/WcH8Ib
  4. Syllabus: http://goo.gl/LT655C
  5. Documents & materials: http://goo.gl/LhPuXS

What is "Rapid web dev"

Building something "from scratch" is for learning/personal projects. Or for very rich clients.

Frameworks collect the combined experience of a thousand people that came before us.

Methodologies exist for a reason: they work. Use them.

The internet is your playground

A lot of material is freely available online. That's where I learned it. We'll be using it.

"But can't I just go look it up and not take this class?"

Go nuts.

The sorting hat


Fill out this form


or 

Teams for class/github

  1. Team 1:
  2. Team 2:
  3. Team 3:
  4. Team 4:
  5. Team 5:
  6. Team 6: 
  7. Team 7:

Accounts

  1. Google (G+)
  2. GitHub
  3. PivotalTracker

Git

Git is a distributed version control and source code management system with a focus on speed.

  1. Saves your work, allowing you to revert
  2. Makes developing on teams MUCH easier
  3. Transports code (Goodbye FTP)
  4. Shares code (GitHub)
  5. "Who broke my code?"
  6. Linus Torvalds

if you learn one thing ...


Git will be involved in everything you do from now  on.

If not, find a new job.

Just kidding.

Kind of.

What is version control?


What is git?


Install git


Use SourceTree


Provides a command line for both Windows & OSX. Set up SourceTree with your GitHub account credentials.

A WORD ABOUT ORGANIZATION


Make a folder for this class. Call it "wdim351" or something. Put it somewhere you know how to get to. Do your work in that folder. Include week 1's repo in here as well.

WHY DOES THE COMMAND LINE MATTER?

  1. Nearly every tool you use is built atop a CLI
  2. Graphical interfaces are extremely limited
  3. Virtualization of servers means development revolves around interacting via text
  4. MASSIVELY powerful tools at your fingertips: git, scp, grep, compass, less, wget, rsync, ping
  5. Simple, fast, works everywhere
  6. The internet is Linux, we can speak it's language.
 

http://www.linux-mag.com/id/7096/

COMMAND LINE BASICS

  1. ls : shows contents of a folder ("list")
  2. cd : change directory
  3. mv : move or rename a file ("move")
  4. pwd : full path to location ("print working directory")
  5. mkdir : make directory
  6. vi file.txt : edits file.txt (more on vi commands later)

Keep these in mind as we work together.

Fork Curriculum


Your fork

You now have a fork of the class repo at:
https://github.com/YOURNAME/wdim351-curriculum

Navigate to a folder for this class, for example:
cd ~/wdim351 

Then pull this to your local computer with:
git clone https://github.com/YOURNAME/wdim351-curriculum 
Now you can work on your class/homework assignment in the week01 folder.

Quick Upstream

Now run the following:

git remote add upstream git@github.com:aipdx-wdim351/wdim351-curriculum.git

We'll go over the details of what is happening here in a later class.

Step back


"Why can't we just download a zip or something?"

"Why can't you just email me files?"

"This seems silly for trivial work?"

"How does this make us better designers/development/managers?"

Homework assignment A

  1. Read and study the following three sections at:
    https://www.atlassian.com/git/tutorial
    1. Git Basics
    2. Git Branches
    3. Remote repositories
  2. There will be a quiz on this next class covering:
    1. adding
    2. committing
    3. branching
    4. pushing
    5. pulling


Homework Assignment B

  1. Complete the entire interactive tutorial here: 
    http://try.github.io/
  2. Screenshot your completion screen.
  3. Place this image in wdim351-curriculum/week_01 folder
  4. Commit this file
  5. Push this file to your repo

Git resources

  • https://www.youtube.com/watch?v=U8GBXvdmHT4
  • http://ndpsoftware.com/git-cheatsheet.html
  • http://rogerdudler.github.com/git-guide/
  • http://www.cheatography.com/samcollett/cheat-sheets/git/

wdim351_week01

By Christopher Bloom

wdim351_week01

  • 3,123