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.
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.
Teams for class/github
- Team 1:
- Team 2:
- Team 3:
- Team 4:
- Team 5:
- Team 6:
- Team 7:
Accounts
- Google (G+)
- GitHub
- PivotalTracker
Git
Git is a distributed version control and source code management system with a focus on speed.
- Saves your work, allowing you to revert
- Makes developing on teams MUCH easier
- Transports code (Goodbye FTP)
- Shares code (GitHub)
- "Who broke my code?"
- 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.
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?
- Nearly every tool you use is built atop a CLI
- Graphical interfaces are extremely limited
- Virtualization of servers means development revolves around interacting via text
- MASSIVELY powerful tools at your fingertips: git, scp, grep, compass, less, wget, rsync, ping
- Simple, fast, works everywhere
- The internet is Linux, we can speak it's language.
http://www.linux-mag.com/id/7096/
COMMAND LINE BASICS
- ls : shows contents of a folder ("list")
- cd : change directory
- mv : move or rename a file ("move")
- pwd : full path to location ("print working directory")
- mkdir : make directory
- vi file.txt : edits file.txt (more on vi commands later)
Keep these in mind as we work together.
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:
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 B
-
Complete the entire interactive tutorial here:
http://try.github.io/
- Screenshot your completion screen.
- Place this image in wdim351-curriculum/week_01 folder
- Commit this file
- 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/