SlideShare uma empresa Scribd logo
1 de 79
LESSON ONE
Web Apps 101
Course Overview
WHO WE ARE
Will Gaybrick
•   Currently: Thrive Capital / YLS ’12

•   Previously: Harvard ’07 (math) => finance (Blackstone) =>
    startups (hunch.com, jumo.com, milewise.com)

Bay Gross
•   Currently: BlueFusion / Yale ’13

•   Previously: Various web apps, magnum opus =>
    isitchickentendersday.com
WHY HACKYALE?

Good ideas + good developers => good
tech companies
•   Yale ⊃ many students with good ideas

•   Yale ⊅ many students who can implement those ideas
GOALS




Course Overview
GOALS

Practical, not theoretical / academic
•   Zero => prototype

•   Prototype => full application

•   Not training CTOs
GOALS

Focus on processes and psychology of web
development more than content
•   Learn by doing; learn by immersion

•   Memorization as the emergent byproduct of experience

•   We can’t make you successful developers

•   We can equip you with kernel of knowledge and key
    resources with which to makes yourselves successful
    developers
GOALS

Google is your friend
GOALS

80% of web development is knowing where
to look
Most common answer => Google
•   Things to Google:
         --Error messages
         --Syntax
         --Entire problems. Ex: “javascript dropdown menu”
Anatomy 101
[for web applications]
TERMINOLOGY

Client-server model
     •   Client == (you and your) browser

     •   Server == machine sending (or “serving”) you the
         data and files you request

“Host” ~== “server”
     •   “to host” (code, files, applications) ~== “to serve”

“Local” => hosted on the machine in question
“Remote” => hosted on a different machine
REQUEST-RESPONSE CYCLE
(1) Client (browser) makes a “request”
     •   “Request” == textual message whose syntax and
         semantics are defined by HyperText Transfer Protocol
         (“HTTP”)

(2) Server issues a “response”
     •   “Response” == textual message whose syntax and
         semantics are defined by HTTP

     •   Contains status code. Ex: 404 (“Not Found”), 200
         (“Okay”), 500 (“Internal Server Error”)

(3) Cycle repeats itself
THE CLIENT-SERVER MODEL
          REQUEST FOR


         - html, css, js
         - image
         - document
         - etc…




         RESPONSE FROM

CLIENT                           SERVER
         - requested
         content… or
         - some other
         reasonable response
         based on context (ex.
         404 Not Found)
KEY TECHNOLOGIES




             Anatomy 101
          [for web applications]
ON THE CLIENT SIDE
              REQUEST FOR


             - html, css, js
             - image
             - document
             - etc…




             RESPONSE FROM

CLIENT                               SERVER
             - requested
HTML         content… or
CSS          - some other
JAVASCRIPT   reasonable response
             based on context (ex.
             404 Not Found)
ON THE SERVER SIDE
              REQUEST FOR


             - html, css, js
             - image
             - document
             - etc…




             RESPONSE FROM

CLIENT                               SERVER
             - requested
                                     PYTHON
HTML         content… or
                                     RUBY (ON RAILS)
CSS          - some other
JAVASCRIPT   reasonable response     JAVA
             based on context (ex.
             404 Not Found)
JAVASCRIPT ON BOTH!
              REQUEST FOR


             - html, css, js
             - image
             - document
             - etc…




             RESPONSE FROM

CLIENT                               SERVER
             - requested
                                     PYTHON
HTML         content… or
                                     RUBY (ON RAILS)
CSS          - some other
JAVASCRIPT   reasonable response     JAVA
             based on context (ex.   JAVASCRIPT
             404 Not Found)
The Command Line
       [brief intro to
  operating systems]
OPERATING SYSTEMS

Operating systems sit between application
software and computer hardware
    •   Examples: Mac OSX, Linux (UNIX), Windows 7




                                              {
                                                     memory
            operating system                         CPU
                                                     hard disk
OPERATING SYSTEMS
“System calls” are the interface by which a
program communicates with an OS
       •   Ex: open, read, write, close, fork, kill

Applications consist of code:
       •   (1) “Lower level” languages (C, for example)
           making such calls directly; or

       •   (2) “Higher level” languages (Python, for example)
           making such calls indirectly via “compilation” into
           lower level languages
THE COMMAND LINE

•   The command line is a program that provides a text-only
    interface to communicate dynamically with the operating system

•   Several different command line programs or “shells”: BASH
    (most common), sh (Bourne shell)




                                                        {
                                                            memory
                   operating system                           CPU
                                                            hard disk
                          BASH, sh
THE COMMAND LINE

•   On OSX, the command line program is “Terminal” (in Utilities), a
    BASH implementation

•   On Windows7, cmd.exe (native) or “Cygwin” (open source
    BASH implementation)
THE COMMAND LINE
The Front End
[client side code]
Front-End Development


An interaction between three “languages”
    •   HTML - the content of the internet

    •   CSS - the style of the internet

    •   Javascript - the logic and action of the internet
HTML


The “content” of the internet
     •   just text, no formatting.
HTML


The “content” of the internet
     •   just text, no formatting.
HTML


The “content” of the internet
     •   just text, no formatting.
Coding in HTML


Tags delineate ‘code’ from content.
     • <div> I’m inside a tag! </div>

     • Tags have “properties,” and these
       properties are then passed on to the
       content within the tags
Popular Tags

• <div> the delineating blocks of html
      <div>This content will be in an div block!</div>


• <a> links
      <a href=”http://www.hackyale.com”>Home</a>


• <img> images
      <img src=”http://www.hackyale.com/logo.png” />


• <p> paragraphs
      <p>This text will be in a nice paragraph</p>
Form Tags

<form>
   First name: <input type="text" name="firstname" /><br />
   Last name: <input type="text" name="lastname" />
</form>


<form>
   <input type="radio" name="sex" value="male" /> Male<br />
   <input type="checkbox" name="sex" value="female" /> Female
</form>


<form name="input" action="/signup">
   Username: <input type="text" name="user" />
   <input type="submit" value="Submit" />
</form>
Form Tags

<form>
   First name: <input type="text" name="firstname" /><br />
   Last name: <input type="text" name="lastname" />
</form>


<form>
   <input type="radio" name="sex" value="male" /> Male<br />
   <input type="checkbox" name="sex" value="female" /> Female
</form>


<form name="input" action="/signup">
   Username: <input type="text" name="user" />
   <input type="submit" value="Submit" />
</form>
HTML in action!
HTML in action!




But there’s no styling...
Enter, CSS
            “Cascading Style Sheets”

<p> Hello World! </p>

<p> Paragraphs are great! </p>

<p> Totally </p>
Enter, CSS
            “Cascading Style Sheets”

<p> Hello World! </p>

<p> Paragraphs are great! </p>

<p> Totally </p>
Now make them red.
 Alright, no problem sir!
Now make them red.
            Alright, no problem sir!

<p style=”color:red”> Hello World! </p>
Now make them red.
            Alright, no problem sir!

<p style=”color:red”> Hello World! </p>

<p style=”color:red” > Paragraphs are great! </p>
Now make them red.
             Alright, no problem sir!

<p style=”color:red”> Hello World! </p>

<p style=”color:red” > Paragraphs are great! </p>

<p style=”color:red” > Totally </p>
Now make them red.
             Alright, no problem sir!

<p style=”color:red”> Hello World! </p>

<p style=”color:red” > Paragraphs are great! </p>

<p style=”color:red” > Totally </p>
Meh. Now make them blue.
  But I just changed them all!
Meh. Now make them blue.
           But I just changed them all!

<p style=”color:blue”> Hello World! </p>
Meh. Now make them blue.
           But I just changed them all!

<p style=”color:blue”> Hello World! </p>

<p style=”color:blu” > Paragraphs are great! </p>
Meh. Now make them blue.
           But I just changed them all!

<p style=”color:blue”> Hello World! </p>

<p style=”color:blu” > Paragraphs are great! </p>

<p style=”color:red” > Totally </p>
Meh. Now make them blue.
           But I just changed them all!

<p style=”color:blue”> Hello World! </p>

<p style=”color:blu” > Paragraphs are great! </p>

<p style=”color:red” > Totally </p>
In-line styling is sloppy
In-line styling is sloppy
  CSS lets us get “DRY” =>
  don’t repeat yourself!
Styling in CSS



Two Benefits
Styling in CSS



Two Benefits
    1. Cleaner code
Styling in CSS



Two Benefits
    1. Cleaner code

    2. Flexible code
Selectors in CSS


Styles are applied to selectors.
Selectors in CSS


Styles are applied to selectors.
     1. tags, i.e.: div, a, p
Selectors in CSS


Styles are applied to selectors.
     1. tags, i.e.: div, a, p

     2. classes, non-unique identifiers
Selectors in CSS


Styles are applied to selectors.
     1. tags, i.e.: div, a, p

     2. classes, non-unique identifiers

     3. ids, unique identifiers
Selectors in HTML
Selectors in CSS
Without CSS
With CSS
Javascript
[making web pages
         dynamic]
Overview

Javascript introduces logic into the client side
     •   Ex: If page element A is clicked, make page element
         B disappear

     •   Ex: When a person submits their name to this box
         (“input”), hide the input and display “Thank you!”
Brief History of Javascript
See: this excerpt from Metafilter
     •   Created by Brendan Eich at Netscape in less than
         two weeks => a little rough around the edges

     •   Has almost nothing to do with Java

     •   During the web 1.0 days, was much derided /
         blocked

     •   Web 2.0 was really all about Javascript

     •   Currently the most important language in existence
Javascript

A general purpose programming language
    •   Unlike HTML / CSS, which are domain specific

    •   Contains variables & logical statements

    •   “Event driven” => structured around “callbacks”

    •   A “callback” is a function or code snippet executed
        upon the occurrence of some specified event
Server Side Javascript


Thanks to Google & Joyent, Javascript is now
commonly used server side
    •   Google’s V8 engine => Javascript lightning fast

    •   Joyent => Node.js, a web application framework
        based on V8
Deployment
[going live with your
                code]
ESSENTIAL ASIDE: GIT
“Git” is a document version control tool
     •   Created by Linus Torvalds & team to manage
         distributed development of Linux kernel

     •   Consists of (1) a command line executable, and (2) a
         domain specific language (“DSL”) (“add,” “commit,”
         “push,” “pull,” “merge,” “checkout,” etc.)

     •   Maintains a local repository of “diffs” allowing you to
         reconstruct the state of your code at the moment of
         any “git commit [file or directory]” command
ESSENTIAL ASIDE: GIT
“Git” will be confusing at first
     •   Don’t get frustrated

     •   Don’t start by reading a Git reference

     •   You will grasp the basic commands quickly via
         example

     •   Then feel free to supplement your knowledge by
         reference to resources section of HackYale.com
GITHUB




         Deployment
[going live with your code]
GITHUB


Website (github.com) that hosts application
code
     •   Free if you share it

     •   Pay to protect it
GITHUB

As the name suggests, Github is integrated
with the git utility
    •   Genius customer acquisition strategy => slip
        seamlessly into existing workflow

    •   Send your code to github: git push [remote] [branch]

    •   Get some code from github: git pull [remote] [branch]
GITHUB

“Github is the hacker resume” -Clever person
GITHUB

We will be using Github
Part of your homework for this week is to
install git and make a Github profile
HEROKU




         Deployment
[going live with your code]
HEROKU


Cloud based service that hosts applications
     •   Hosting code != hosting applications

     •   A “front end” to Amazon EC2

     •   HackYale.com lives on Heroku
HEROKU


Incredibly fast deployment via command line:
     •   (1) $ gem install heroku

     •   (2) $ heroku create

     •   (3) $ git push heroku master
HEROKU
Fantastic business
    •   Integrated Insert to Githubto=> genius customer
                    with sell Heroku
                   taken
                          amount of time

        acquisitionSalesforce
                     strategy

    •   Free to host an app. Pay for “add-ons” and scale =>
        another genius customer acquisition

    •   Targeted Rails apps at outset => a third genius
        customer acquisition strategy

    •   Hosted on Amazon’s servers => no Capex or server
        maintenance costs => high margins

    •   Sold to Salesforce.com for $200mm after [X months]
HEROKU
                                            Lookup Rack middleware.
                                            Routes to server?




We will use Heroku
    •   Supports both Node.js and Rails

    •   More broadly, supports Rack middleware based
        applications

    •   Part of this week’s homework is to create an account
        on Heroku and deploy a “static” page
QUESTIONS?
contact will_and_bay@hackyale.com

Mais conteúdo relacionado

Mais procurados

Please Don't Touch the Slow Parts V3
Please Don't Touch the Slow Parts V3Please Don't Touch the Slow Parts V3
Please Don't Touch the Slow Parts V3Federico Galassi
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateLaura Scott
 
Linux, Apache, Mysql, PHP
Linux, Apache, Mysql, PHPLinux, Apache, Mysql, PHP
Linux, Apache, Mysql, PHPwebhostingguy
 
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)Clément Wehrung
 
Getting started with Django 1.8
Getting started with Django 1.8Getting started with Django 1.8
Getting started with Django 1.8rajkumar2011
 
ID01 Week 3
ID01 Week 3ID01 Week 3
ID01 Week 3mkontopo
 
Grok Drupal (7) Theming
Grok Drupal (7) ThemingGrok Drupal (7) Theming
Grok Drupal (7) ThemingPINGV
 
How to create a basic template
How to create a basic templateHow to create a basic template
How to create a basic templatevathur
 
Website designing company_in_delhi_phpwebdevelopment
Website designing company_in_delhi_phpwebdevelopmentWebsite designing company_in_delhi_phpwebdevelopment
Website designing company_in_delhi_phpwebdevelopmentCss Founder
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksKerem Karatal
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Michael Girouard
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Arun Gupta
 

Mais procurados (17)

Please Don't Touch the Slow Parts V3
Please Don't Touch the Slow Parts V3Please Don't Touch the Slow Parts V3
Please Don't Touch the Slow Parts V3
 
Grok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb updateGrok Drupal (7) Theming - 2011 Feb update
Grok Drupal (7) Theming - 2011 Feb update
 
Html and Xhtml
Html and XhtmlHtml and Xhtml
Html and Xhtml
 
Linux, Apache, Mysql, PHP
Linux, Apache, Mysql, PHPLinux, Apache, Mysql, PHP
Linux, Apache, Mysql, PHP
 
Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3Intro to HTML 5 / CSS 3
Intro to HTML 5 / CSS 3
 
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
ePub 3, HTML 5 & CSS 3 (+ Fixed-Layout)
 
Getting started with Django 1.8
Getting started with Django 1.8Getting started with Django 1.8
Getting started with Django 1.8
 
ID01 Week 3
ID01 Week 3ID01 Week 3
ID01 Week 3
 
Grok Drupal (7) Theming
Grok Drupal (7) ThemingGrok Drupal (7) Theming
Grok Drupal (7) Theming
 
HTML CSS & Javascript
HTML CSS & JavascriptHTML CSS & Javascript
HTML CSS & Javascript
 
How to create a basic template
How to create a basic templateHow to create a basic template
How to create a basic template
 
Website designing company_in_delhi_phpwebdevelopment
Website designing company_in_delhi_phpwebdevelopmentWebsite designing company_in_delhi_phpwebdevelopment
Website designing company_in_delhi_phpwebdevelopment
 
Day of code
Day of codeDay of code
Day of code
 
ePUB 3 and Publishing e-books
ePUB 3 and Publishing e-booksePUB 3 and Publishing e-books
ePUB 3 and Publishing e-books
 
Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5Creating And Consuming Web Services In Php 5
Creating And Consuming Web Services In Php 5
 
Develop webservice in PHP
Develop webservice in PHPDevelop webservice in PHP
Develop webservice in PHP
 
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
Hyperproductive JSF 2.0 @ JavaOne Brazil 2010
 

Destaque (6)

Week2
Week2Week2
Week2
 
Week 1
Week 1Week 1
Week 1
 
week2
week2week2
week2
 
Week3
Week3Week3
Week3
 
Week 1 (v3)
Week 1 (v3)Week 1 (v3)
Week 1 (v3)
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Semelhante a Week 1

6 3 tier architecture php
6 3 tier architecture php6 3 tier architecture php
6 3 tier architecture phpcefour
 
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and ScaleITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and ScaleIstanbul Tech Talks
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesUdita Plaha
 
Active Server Page(ASP)
Active Server Page(ASP)Active Server Page(ASP)
Active Server Page(ASP)Keshab Nath
 
Performance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesPerformance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesDoris Chen
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocratlinoj
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbonezonathen
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewDiacode
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX DesignersAshlimarie
 
Intro to php
Intro to phpIntro to php
Intro to phpSp Singh
 
Introduction_Web_Technologies
Introduction_Web_TechnologiesIntroduction_Web_Technologies
Introduction_Web_TechnologiesDeepak Raj
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat ClientPaul Klipp
 
Fundamentals of Web building
Fundamentals of Web buildingFundamentals of Web building
Fundamentals of Web buildingRC Morales
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Doris Chen
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariJoseph Scott
 
Synapse india reviews on php website development
Synapse india reviews on php website developmentSynapse india reviews on php website development
Synapse india reviews on php website developmentsaritasingh19866
 

Semelhante a Week 1 (20)

6 3 tier architecture php
6 3 tier architecture php6 3 tier architecture php
6 3 tier architecture php
 
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and ScaleITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
ITT 2015 - Simon Stewart - Building Android Apps at Speed and Scale
 
Crash Course HTML/Rails Slides
Crash Course HTML/Rails SlidesCrash Course HTML/Rails Slides
Crash Course HTML/Rails Slides
 
Active Server Page(ASP)
Active Server Page(ASP)Active Server Page(ASP)
Active Server Page(ASP)
 
Performance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best PracticesPerformance Optimization and JavaScript Best Practices
Performance Optimization and JavaScript Best Practices
 
Death of a Themer
Death of a ThemerDeath of a Themer
Death of a Themer
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
 
PHP and MySQL
PHP and MySQLPHP and MySQL
PHP and MySQL
 
Intro to-html-backbone
Intro to-html-backboneIntro to-html-backbone
Intro to-html-backbone
 
Front-End Frameworks: a quick overview
Front-End Frameworks: a quick overviewFront-End Frameworks: a quick overview
Front-End Frameworks: a quick overview
 
Ipc mysql php
Ipc mysql php Ipc mysql php
Ipc mysql php
 
Web Development for UX Designers
Web Development for UX DesignersWeb Development for UX Designers
Web Development for UX Designers
 
Intro to php
Intro to phpIntro to php
Intro to php
 
Introduction_Web_Technologies
Introduction_Web_TechnologiesIntroduction_Web_Technologies
Introduction_Web_Technologies
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
 
Fundamentals of Web building
Fundamentals of Web buildingFundamentals of Web building
Fundamentals of Web building
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
 
Synapse india reviews on php website development
Synapse india reviews on php website developmentSynapse india reviews on php website development
Synapse india reviews on php website development
 
Php
PhpPhp
Php
 

Último

USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxleah joy valeriano
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxlancelewisportillo
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 

Último (20)

USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptxMusic 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
Music 9 - 4th quarter - Vocal Music of the Romantic Period.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptxQ4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
Q4-PPT-Music9_Lesson-1-Romantic-Opera.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 

Week 1

  • 1.
  • 4. WHO WE ARE Will Gaybrick • Currently: Thrive Capital / YLS ’12 • Previously: Harvard ’07 (math) => finance (Blackstone) => startups (hunch.com, jumo.com, milewise.com) Bay Gross • Currently: BlueFusion / Yale ’13 • Previously: Various web apps, magnum opus => isitchickentendersday.com
  • 5. WHY HACKYALE? Good ideas + good developers => good tech companies • Yale ⊃ many students with good ideas • Yale ⊅ many students who can implement those ideas
  • 7. GOALS Practical, not theoretical / academic • Zero => prototype • Prototype => full application • Not training CTOs
  • 8. GOALS Focus on processes and psychology of web development more than content • Learn by doing; learn by immersion • Memorization as the emergent byproduct of experience • We can’t make you successful developers • We can equip you with kernel of knowledge and key resources with which to makes yourselves successful developers
  • 10. GOALS 80% of web development is knowing where to look Most common answer => Google • Things to Google: --Error messages --Syntax --Entire problems. Ex: “javascript dropdown menu”
  • 11. Anatomy 101 [for web applications]
  • 12. TERMINOLOGY Client-server model • Client == (you and your) browser • Server == machine sending (or “serving”) you the data and files you request “Host” ~== “server” • “to host” (code, files, applications) ~== “to serve” “Local” => hosted on the machine in question “Remote” => hosted on a different machine
  • 13. REQUEST-RESPONSE CYCLE (1) Client (browser) makes a “request” • “Request” == textual message whose syntax and semantics are defined by HyperText Transfer Protocol (“HTTP”) (2) Server issues a “response” • “Response” == textual message whose syntax and semantics are defined by HTTP • Contains status code. Ex: 404 (“Not Found”), 200 (“Okay”), 500 (“Internal Server Error”) (3) Cycle repeats itself
  • 14. THE CLIENT-SERVER MODEL REQUEST FOR - html, css, js - image - document - etc… RESPONSE FROM CLIENT SERVER - requested content… or - some other reasonable response based on context (ex. 404 Not Found)
  • 15. KEY TECHNOLOGIES Anatomy 101 [for web applications]
  • 16. ON THE CLIENT SIDE REQUEST FOR - html, css, js - image - document - etc… RESPONSE FROM CLIENT SERVER - requested HTML content… or CSS - some other JAVASCRIPT reasonable response based on context (ex. 404 Not Found)
  • 17. ON THE SERVER SIDE REQUEST FOR - html, css, js - image - document - etc… RESPONSE FROM CLIENT SERVER - requested PYTHON HTML content… or RUBY (ON RAILS) CSS - some other JAVASCRIPT reasonable response JAVA based on context (ex. 404 Not Found)
  • 18. JAVASCRIPT ON BOTH! REQUEST FOR - html, css, js - image - document - etc… RESPONSE FROM CLIENT SERVER - requested PYTHON HTML content… or RUBY (ON RAILS) CSS - some other JAVASCRIPT reasonable response JAVA based on context (ex. JAVASCRIPT 404 Not Found)
  • 19. The Command Line [brief intro to operating systems]
  • 20. OPERATING SYSTEMS Operating systems sit between application software and computer hardware • Examples: Mac OSX, Linux (UNIX), Windows 7 { memory operating system CPU hard disk
  • 21. OPERATING SYSTEMS “System calls” are the interface by which a program communicates with an OS • Ex: open, read, write, close, fork, kill Applications consist of code: • (1) “Lower level” languages (C, for example) making such calls directly; or • (2) “Higher level” languages (Python, for example) making such calls indirectly via “compilation” into lower level languages
  • 22. THE COMMAND LINE • The command line is a program that provides a text-only interface to communicate dynamically with the operating system • Several different command line programs or “shells”: BASH (most common), sh (Bourne shell) { memory operating system CPU hard disk BASH, sh
  • 23. THE COMMAND LINE • On OSX, the command line program is “Terminal” (in Utilities), a BASH implementation • On Windows7, cmd.exe (native) or “Cygwin” (open source BASH implementation)
  • 25. The Front End [client side code]
  • 26. Front-End Development An interaction between three “languages” • HTML - the content of the internet • CSS - the style of the internet • Javascript - the logic and action of the internet
  • 27. HTML The “content” of the internet • just text, no formatting.
  • 28. HTML The “content” of the internet • just text, no formatting.
  • 29. HTML The “content” of the internet • just text, no formatting.
  • 30. Coding in HTML Tags delineate ‘code’ from content. • <div> I’m inside a tag! </div> • Tags have “properties,” and these properties are then passed on to the content within the tags
  • 31. Popular Tags • <div> the delineating blocks of html <div>This content will be in an div block!</div> • <a> links <a href=”http://www.hackyale.com”>Home</a> • <img> images <img src=”http://www.hackyale.com/logo.png” /> • <p> paragraphs <p>This text will be in a nice paragraph</p>
  • 32. Form Tags <form> First name: <input type="text" name="firstname" /><br /> Last name: <input type="text" name="lastname" /> </form> <form> <input type="radio" name="sex" value="male" /> Male<br /> <input type="checkbox" name="sex" value="female" /> Female </form> <form name="input" action="/signup"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form>
  • 33. Form Tags <form> First name: <input type="text" name="firstname" /><br /> Last name: <input type="text" name="lastname" /> </form> <form> <input type="radio" name="sex" value="male" /> Male<br /> <input type="checkbox" name="sex" value="female" /> Female </form> <form name="input" action="/signup"> Username: <input type="text" name="user" /> <input type="submit" value="Submit" /> </form>
  • 35. HTML in action! But there’s no styling...
  • 36. Enter, CSS “Cascading Style Sheets” <p> Hello World! </p> <p> Paragraphs are great! </p> <p> Totally </p>
  • 37. Enter, CSS “Cascading Style Sheets” <p> Hello World! </p> <p> Paragraphs are great! </p> <p> Totally </p>
  • 38. Now make them red. Alright, no problem sir!
  • 39. Now make them red. Alright, no problem sir! <p style=”color:red”> Hello World! </p>
  • 40. Now make them red. Alright, no problem sir! <p style=”color:red”> Hello World! </p> <p style=”color:red” > Paragraphs are great! </p>
  • 41. Now make them red. Alright, no problem sir! <p style=”color:red”> Hello World! </p> <p style=”color:red” > Paragraphs are great! </p> <p style=”color:red” > Totally </p>
  • 42. Now make them red. Alright, no problem sir! <p style=”color:red”> Hello World! </p> <p style=”color:red” > Paragraphs are great! </p> <p style=”color:red” > Totally </p>
  • 43. Meh. Now make them blue. But I just changed them all!
  • 44. Meh. Now make them blue. But I just changed them all! <p style=”color:blue”> Hello World! </p>
  • 45. Meh. Now make them blue. But I just changed them all! <p style=”color:blue”> Hello World! </p> <p style=”color:blu” > Paragraphs are great! </p>
  • 46. Meh. Now make them blue. But I just changed them all! <p style=”color:blue”> Hello World! </p> <p style=”color:blu” > Paragraphs are great! </p> <p style=”color:red” > Totally </p>
  • 47. Meh. Now make them blue. But I just changed them all! <p style=”color:blue”> Hello World! </p> <p style=”color:blu” > Paragraphs are great! </p> <p style=”color:red” > Totally </p>
  • 49. In-line styling is sloppy CSS lets us get “DRY” => don’t repeat yourself!
  • 50. Styling in CSS Two Benefits
  • 51. Styling in CSS Two Benefits 1. Cleaner code
  • 52. Styling in CSS Two Benefits 1. Cleaner code 2. Flexible code
  • 53. Selectors in CSS Styles are applied to selectors.
  • 54. Selectors in CSS Styles are applied to selectors. 1. tags, i.e.: div, a, p
  • 55. Selectors in CSS Styles are applied to selectors. 1. tags, i.e.: div, a, p 2. classes, non-unique identifiers
  • 56. Selectors in CSS Styles are applied to selectors. 1. tags, i.e.: div, a, p 2. classes, non-unique identifiers 3. ids, unique identifiers
  • 62. Overview Javascript introduces logic into the client side • Ex: If page element A is clicked, make page element B disappear • Ex: When a person submits their name to this box (“input”), hide the input and display “Thank you!”
  • 63. Brief History of Javascript See: this excerpt from Metafilter • Created by Brendan Eich at Netscape in less than two weeks => a little rough around the edges • Has almost nothing to do with Java • During the web 1.0 days, was much derided / blocked • Web 2.0 was really all about Javascript • Currently the most important language in existence
  • 64. Javascript A general purpose programming language • Unlike HTML / CSS, which are domain specific • Contains variables & logical statements • “Event driven” => structured around “callbacks” • A “callback” is a function or code snippet executed upon the occurrence of some specified event
  • 65. Server Side Javascript Thanks to Google & Joyent, Javascript is now commonly used server side • Google’s V8 engine => Javascript lightning fast • Joyent => Node.js, a web application framework based on V8
  • 67. ESSENTIAL ASIDE: GIT “Git” is a document version control tool • Created by Linus Torvalds & team to manage distributed development of Linux kernel • Consists of (1) a command line executable, and (2) a domain specific language (“DSL”) (“add,” “commit,” “push,” “pull,” “merge,” “checkout,” etc.) • Maintains a local repository of “diffs” allowing you to reconstruct the state of your code at the moment of any “git commit [file or directory]” command
  • 68. ESSENTIAL ASIDE: GIT “Git” will be confusing at first • Don’t get frustrated • Don’t start by reading a Git reference • You will grasp the basic commands quickly via example • Then feel free to supplement your knowledge by reference to resources section of HackYale.com
  • 69. GITHUB Deployment [going live with your code]
  • 70. GITHUB Website (github.com) that hosts application code • Free if you share it • Pay to protect it
  • 71. GITHUB As the name suggests, Github is integrated with the git utility • Genius customer acquisition strategy => slip seamlessly into existing workflow • Send your code to github: git push [remote] [branch] • Get some code from github: git pull [remote] [branch]
  • 72. GITHUB “Github is the hacker resume” -Clever person
  • 73. GITHUB We will be using Github Part of your homework for this week is to install git and make a Github profile
  • 74. HEROKU Deployment [going live with your code]
  • 75. HEROKU Cloud based service that hosts applications • Hosting code != hosting applications • A “front end” to Amazon EC2 • HackYale.com lives on Heroku
  • 76. HEROKU Incredibly fast deployment via command line: • (1) $ gem install heroku • (2) $ heroku create • (3) $ git push heroku master
  • 77. HEROKU Fantastic business • Integrated Insert to Githubto=> genius customer with sell Heroku taken amount of time acquisitionSalesforce strategy • Free to host an app. Pay for “add-ons” and scale => another genius customer acquisition • Targeted Rails apps at outset => a third genius customer acquisition strategy • Hosted on Amazon’s servers => no Capex or server maintenance costs => high margins • Sold to Salesforce.com for $200mm after [X months]
  • 78. HEROKU Lookup Rack middleware. Routes to server? We will use Heroku • Supports both Node.js and Rails • More broadly, supports Rack middleware based applications • Part of this week’s homework is to create an account on Heroku and deploy a “static” page

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n